diff -cx .svn milkytracker-0.90.85/src/milkyplay/drivers/jack/AudioDriver_JACK.cpp milkytracker-trunk/src/milkyplay/drivers/jack/AudioDriver_JACK.cpp *** milkytracker-0.90.85/src/milkyplay/drivers/jack/AudioDriver_JACK.cpp 2009-03-28 11:19:41.392162000 +0000 --- milkytracker-trunk/src/milkyplay/drivers/jack/AudioDriver_JACK.cpp 2010-01-03 18:48:15.616918068 +0000 *************** *** 102,124 **** // Each function has to be cast.. surely there must be an easier way? dlerror(); jack_port_get_buffer = (void* (*)(jack_port_t*, jack_nframes_t)) ! dlsym(libJack, "jack_port_get_buffer"); jack_client_new = (jack_client_t* (*)(const char*)) ! dlsym(libJack, "jack_client_new"); jack_port_register = (jack_port_t* (*)(jack_client_t*, const char*, const char*, long unsigned int, long unsigned int)) ! dlsym(libJack, "jack_port_register"); jack_set_process_callback = (int (*)(jack_client_t*, int (*)(jack_nframes_t, void*), void*)) ! dlsym(libJack, "jack_set_process_callback"); jack_get_buffer_size = (jack_nframes_t (*)(jack_client_t*)) ! dlsym(libJack, "jack_get_buffer_size"); jack_deactivate = (int (*)(jack_client_t*)) ! dlsym(libJack, "jack_deactivate"); jack_client_close = (int (*)(jack_client_t*)) ! dlsym(libJack, "jack_client_close"); jack_activate = (int (*)(jack_client_t*)) ! dlsym(libJack, "jack_activate"); jack_get_sample_rate = (jack_nframes_t (*)(jack_client_t *)) ! dlsym(libJack, "jack_get_sample_rate"); if(dlerror()) { fprintf(stderr, "JACK: An error occured whilst loading symbols, aborting.\n"); return -1; --- 102,130 ---- // Each function has to be cast.. surely there must be an easier way? dlerror(); jack_port_get_buffer = (void* (*)(jack_port_t*, jack_nframes_t)) ! dlsym(libJack, "jack_port_get_buffer"); jack_client_new = (jack_client_t* (*)(const char*)) ! dlsym(libJack, "jack_client_new"); jack_port_register = (jack_port_t* (*)(jack_client_t*, const char*, const char*, long unsigned int, long unsigned int)) ! dlsym(libJack, "jack_port_register"); jack_set_process_callback = (int (*)(jack_client_t*, int (*)(jack_nframes_t, void*), void*)) ! dlsym(libJack, "jack_set_process_callback"); jack_get_buffer_size = (jack_nframes_t (*)(jack_client_t*)) ! dlsym(libJack, "jack_get_buffer_size"); jack_deactivate = (int (*)(jack_client_t*)) ! dlsym(libJack, "jack_deactivate"); jack_client_close = (int (*)(jack_client_t*)) ! dlsym(libJack, "jack_client_close"); jack_activate = (int (*)(jack_client_t*)) ! dlsym(libJack, "jack_activate"); jack_get_sample_rate = (jack_nframes_t (*)(jack_client_t *)) ! dlsym(libJack, "jack_get_sample_rate"); ! jack_get_ports = (const char** (*)(jack_client_t *, const char *, const char *, unsigned long)) ! dlsym(libJack, "jack_get_ports"); ! jack_connect = (int (*)(jack_client_t *, const char *source_port, const char *destination_port)) ! dlsym(libJack, "jack_connect"); ! jack_port_name = (const char* (*)(const jack_port_t *)) ! dlsym(libJack, "jack_port_name"); if(dlerror()) { fprintf(stderr, "JACK: An error occured whilst loading symbols, aborting.\n"); return -1; *************** *** 179,184 **** --- 185,196 ---- mp_sint32 AudioDriver_JACK::start() { + jack_get_ports = (const char** (*)(jack_client_t *, const char *, const char *, unsigned long)) + dlsym(libJack, "jack_get_ports"); + jack_connect = (int (*)(jack_client_t *, const char *source_port, const char *destination_port)) + dlsym(libJack, "jack_connect"); + jack_port_name = (const char* (*)(const jack_port_t *)) + dlsym(libJack, "jack_port_name"); jack_activate(hJack); deviceHasStarted = true; return 0; diff -cx .svn milkytracker-0.90.85/src/milkyplay/drivers/jack/AudioDriver_JACK.h milkytracker-trunk/src/milkyplay/drivers/jack/AudioDriver_JACK.h *** milkytracker-0.90.85/src/milkyplay/drivers/jack/AudioDriver_JACK.h 2009-03-28 11:19:41.392162000 +0000 --- milkytracker-trunk/src/milkyplay/drivers/jack/AudioDriver_JACK.h 2010-01-03 18:38:35.835648568 +0000 *************** *** 57,74 **** jack_client_t *(*jack_client_new) (const char *client_name); int (*jack_client_close) (jack_client_t *client); int (*jack_set_process_callback) (jack_client_t *client, ! JackProcessCallback process_callback, ! void *arg); int (*jack_activate) (jack_client_t *client); int (*jack_deactivate) (jack_client_t *client); jack_port_t *(*jack_port_register) (jack_client_t *client, ! const char *port_name, ! const char *port_type, ! unsigned long flags, ! unsigned long buffer_size); void *(*jack_port_get_buffer) (jack_port_t *, jack_nframes_t); jack_nframes_t (*jack_get_buffer_size) (jack_client_t *); jack_nframes_t (*jack_get_sample_rate) (jack_client_t *); public: AudioDriver_JACK(); --- 57,83 ---- jack_client_t *(*jack_client_new) (const char *client_name); int (*jack_client_close) (jack_client_t *client); int (*jack_set_process_callback) (jack_client_t *client, ! JackProcessCallback process_callback, ! void *arg); int (*jack_activate) (jack_client_t *client); int (*jack_deactivate) (jack_client_t *client); jack_port_t *(*jack_port_register) (jack_client_t *client, ! const char *port_name, ! const char *port_type, ! unsigned long flags, ! unsigned long buffer_size); void *(*jack_port_get_buffer) (jack_port_t *, jack_nframes_t); jack_nframes_t (*jack_get_buffer_size) (jack_client_t *); jack_nframes_t (*jack_get_sample_rate) (jack_client_t *); + const char ** (*jack_get_ports) (jack_client_t *, + const char *port_name_pattern, + const char *type_name_pattern, + unsigned long flags); + int (*jack_connect) (jack_client_t *, + const char *source_port, + const char *destination_port); + const char* (*jack_port_name) (const jack_port_t *); + public: AudioDriver_JACK();