git-svn-id: http://subversion.jackaudio.org/jack/jack2/branches/libjacknet@4005 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.8
@@ -29,11 +29,23 @@ Arnold Krille | |||||
--------------------------- | --------------------------- | ||||
Jackdmp changes log | Jackdmp changes log | ||||
--------------------------- | --------------------------- | ||||
2010-04-016 Stephane Letz <letz@grame.fr> | |||||
* Make jack_connect/jack_disconnect wait for effective port connection/disconnection. | |||||
2010-04-07 Stephane Letz <letz@grame.fr> | |||||
* Remove call to exit in library code. | |||||
2010-03-26 Stephane Letz <letz@grame.fr> | |||||
* ffado-portname-sync.patch from ticket #163 applied. | |||||
2010-03-24 Stephane Letz <letz@grame.fr> | 2010-03-24 Stephane Letz <letz@grame.fr> | ||||
* On Windows, now use TRE library for regexp (BSD license instead of GPL license). | * On Windows, now use TRE library for regexp (BSD license instead of GPL license). | ||||
2010-03-19 Stephane Letz <letz@grame.fr> | 2010-03-19 Stephane Letz <letz@grame.fr> | ||||
* Fix some file header to have library side code use LGPL. | * Fix some file header to have library side code use LGPL. | ||||
@@ -56,9 +56,9 @@ extern "C" | |||||
const char * | const char * | ||||
jack_get_version_string(); | jack_get_version_string(); | ||||
EXPORT jack_client_t * jack_client_open_aux (const char *client_name, | |||||
jack_client_t * jack_client_new_aux (const char *client_name, | |||||
jack_options_t options, | jack_options_t options, | ||||
jack_status_t *status, va_list ap); | |||||
jack_status_t *status); | |||||
EXPORT jack_client_t * jack_client_open (const char *client_name, | EXPORT jack_client_t * jack_client_open (const char *client_name, | ||||
jack_options_t options, | jack_options_t options, | ||||
jack_status_t *status, ...); | jack_status_t *status, ...); | ||||
@@ -300,7 +300,7 @@ EXPORT jack_client_t* jack_client_new(const char* client_name) | |||||
int options = JackUseExactName; | int options = JackUseExactName; | ||||
if (getenv("JACK_START_SERVER") == NULL) | if (getenv("JACK_START_SERVER") == NULL) | ||||
options |= JackNoStartServer; | options |= JackNoStartServer; | ||||
jack_client_t* res = jack_client_open_aux(client_name, (jack_options_t)options, NULL, NULL); | |||||
jack_client_t* res = jack_client_new_aux(client_name, (jack_options_t)options, NULL); | |||||
JackGlobals::fOpenMutex->Unlock(); | JackGlobals::fOpenMutex->Unlock(); | ||||
return res; | return res; | ||||
} catch (std::bad_alloc& e) { | } catch (std::bad_alloc& e) { | ||||
@@ -317,11 +317,7 @@ EXPORT void* jack_port_get_buffer(jack_port_t* port, jack_nframes_t frames) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_get_buffer"); | JackGlobals::CheckContext("jack_port_get_buffer"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_get_buffer called with an incorrect port %ld", myport); | jack_error("jack_port_get_buffer called with an incorrect port %ld", myport); | ||||
@@ -337,11 +333,7 @@ EXPORT const char* jack_port_name(const jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_name"); | JackGlobals::CheckContext("jack_port_name"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_name called with an incorrect port %ld", myport); | jack_error("jack_port_name called with an incorrect port %ld", myport); | ||||
@@ -357,11 +349,7 @@ EXPORT const char* jack_port_short_name(const jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_short_name"); | JackGlobals::CheckContext("jack_port_short_name"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_short_name called with an incorrect port %ld", myport); | jack_error("jack_port_short_name called with an incorrect port %ld", myport); | ||||
@@ -377,11 +365,7 @@ EXPORT int jack_port_flags(const jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_flags"); | JackGlobals::CheckContext("jack_port_flags"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_flags called with an incorrect port %ld", myport); | jack_error("jack_port_flags called with an incorrect port %ld", myport); | ||||
@@ -397,11 +381,7 @@ EXPORT const char* jack_port_type(const jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_type"); | JackGlobals::CheckContext("jack_port_type"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_flags called an incorrect port %ld", myport); | jack_error("jack_port_flags called an incorrect port %ld", myport); | ||||
@@ -417,11 +397,7 @@ EXPORT jack_port_type_id_t jack_port_type_id(const jack_port_t *port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_type_id"); | JackGlobals::CheckContext("jack_port_type_id"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_type_id called an incorrect port %ld", myport); | jack_error("jack_port_type_id called an incorrect port %ld", myport); | ||||
@@ -437,11 +413,7 @@ EXPORT int jack_port_connected(const jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_connected"); | JackGlobals::CheckContext("jack_port_connected"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_connected called with an incorrect port %ld", myport); | jack_error("jack_port_connected called with an incorrect port %ld", myport); | ||||
@@ -458,11 +430,7 @@ EXPORT int jack_port_connected_to(const jack_port_t* port, const char* port_name | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_connected_to"); | JackGlobals::CheckContext("jack_port_connected_to"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t src = (jack_port_id_t)port_aux; | jack_port_id_t src = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(src)) { | if (!CheckPort(src)) { | ||||
jack_error("jack_port_connected_to called with an incorrect port %ld", src); | jack_error("jack_port_connected_to called with an incorrect port %ld", src); | ||||
@@ -488,21 +456,13 @@ EXPORT int jack_port_tie(jack_port_t* src, jack_port_t* dst) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_tie"); | JackGlobals::CheckContext("jack_port_tie"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t src_aux = (uint64_t)src; | |||||
#else | |||||
uint32_t src_aux = (uint32_t)src; | |||||
#endif | |||||
uintptr_t src_aux = (uintptr_t)src; | |||||
jack_port_id_t mysrc = (jack_port_id_t)src_aux; | jack_port_id_t mysrc = (jack_port_id_t)src_aux; | ||||
if (!CheckPort(mysrc)) { | if (!CheckPort(mysrc)) { | ||||
jack_error("jack_port_tie called with a NULL src port"); | jack_error("jack_port_tie called with a NULL src port"); | ||||
return -1; | return -1; | ||||
} | } | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t dst_aux = (uint64_t)dst; | |||||
#else | |||||
uint32_t dst_aux = (uint32_t)dst; | |||||
#endif | |||||
uintptr_t dst_aux = (uintptr_t)dst; | |||||
jack_port_id_t mydst = (jack_port_id_t)dst_aux; | jack_port_id_t mydst = (jack_port_id_t)dst_aux; | ||||
if (!CheckPort(mydst)) { | if (!CheckPort(mydst)) { | ||||
jack_error("jack_port_tie called with a NULL dst port"); | jack_error("jack_port_tie called with a NULL dst port"); | ||||
@@ -522,11 +482,7 @@ EXPORT int jack_port_untie(jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_untie"); | JackGlobals::CheckContext("jack_port_untie"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_untie called with an incorrect port %ld", myport); | jack_error("jack_port_untie called with an incorrect port %ld", myport); | ||||
@@ -542,11 +498,7 @@ EXPORT jack_nframes_t jack_port_get_latency(jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_get_latency"); | JackGlobals::CheckContext("jack_port_get_latency"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_get_latency called with an incorrect port %ld", myport); | jack_error("jack_port_get_latency called with an incorrect port %ld", myport); | ||||
@@ -563,11 +515,7 @@ EXPORT void jack_port_set_latency(jack_port_t* port, jack_nframes_t frames) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_set_latency"); | JackGlobals::CheckContext("jack_port_set_latency"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_set_latency called with an incorrect port %ld", myport); | jack_error("jack_port_set_latency called with an incorrect port %ld", myport); | ||||
@@ -585,11 +533,7 @@ EXPORT int jack_recompute_total_latency(jack_client_t* ext_client, jack_port_t* | |||||
#endif | #endif | ||||
JackClient* client = (JackClient*)ext_client; | JackClient* client = (JackClient*)ext_client; | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (client == NULL) { | if (client == NULL) { | ||||
jack_error("jack_recompute_total_latencies called with a NULL client"); | jack_error("jack_recompute_total_latencies called with a NULL client"); | ||||
@@ -630,11 +574,7 @@ EXPORT int jack_port_set_name(jack_port_t* port, const char* name) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_set_name"); | JackGlobals::CheckContext("jack_port_set_name"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_set_name called with an incorrect port %ld", myport); | jack_error("jack_port_set_name called with an incorrect port %ld", myport); | ||||
@@ -660,11 +600,7 @@ EXPORT int jack_port_set_alias(jack_port_t* port, const char* name) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_set_alias"); | JackGlobals::CheckContext("jack_port_set_alias"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_set_alias called with an incorrect port %ld", myport); | jack_error("jack_port_set_alias called with an incorrect port %ld", myport); | ||||
@@ -683,11 +619,7 @@ EXPORT int jack_port_unset_alias(jack_port_t* port, const char* name) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_unset_alias"); | JackGlobals::CheckContext("jack_port_unset_alias"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_unset_alias called with an incorrect port %ld", myport); | jack_error("jack_port_unset_alias called with an incorrect port %ld", myport); | ||||
@@ -706,11 +638,7 @@ EXPORT int jack_port_get_aliases(const jack_port_t* port, char* const aliases[2] | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_get_aliases"); | JackGlobals::CheckContext("jack_port_get_aliases"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_get_aliases called with an incorrect port %ld", myport); | jack_error("jack_port_get_aliases called with an incorrect port %ld", myport); | ||||
@@ -726,11 +654,7 @@ EXPORT int jack_port_request_monitor(jack_port_t* port, int onoff) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_request_monitor"); | JackGlobals::CheckContext("jack_port_request_monitor"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_request_monitor called with an incorrect port %ld", myport); | jack_error("jack_port_request_monitor called with an incorrect port %ld", myport); | ||||
@@ -769,11 +693,7 @@ EXPORT int jack_port_ensure_monitor(jack_port_t* port, int onoff) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_ensure_monitor"); | JackGlobals::CheckContext("jack_port_ensure_monitor"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_ensure_monitor called with an incorrect port %ld", myport); | jack_error("jack_port_ensure_monitor called with an incorrect port %ld", myport); | ||||
@@ -789,11 +709,7 @@ EXPORT int jack_port_monitoring_input(jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_monitoring_input"); | JackGlobals::CheckContext("jack_port_monitoring_input"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_monitoring_input called with an incorrect port %ld", myport); | jack_error("jack_port_monitoring_input called with an incorrect port %ld", myport); | ||||
@@ -1128,11 +1044,7 @@ EXPORT jack_port_t* jack_port_register(jack_client_t* ext_client, const char* po | |||||
jack_error("jack_port_register called with a NULL port name or a NULL port_type"); | jack_error("jack_port_register called with a NULL port name or a NULL port_type"); | ||||
return NULL; | return NULL; | ||||
} else { | } else { | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
return (jack_port_t *)((uint64_t)client->PortRegister(port_name, port_type, flags, buffer_size)); | |||||
#else | |||||
return (jack_port_t *)client->PortRegister(port_name, port_type, flags, buffer_size); | |||||
#endif | |||||
return (jack_port_t *)((uintptr_t)client->PortRegister(port_name, port_type, flags, buffer_size)); | |||||
} | } | ||||
} | } | ||||
@@ -1146,11 +1058,7 @@ EXPORT int jack_port_unregister(jack_client_t* ext_client, jack_port_t* port) | |||||
jack_error("jack_port_unregister called with a NULL client"); | jack_error("jack_port_unregister called with a NULL client"); | ||||
return -1; | return -1; | ||||
} | } | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_unregister called with an incorrect port %ld", myport); | jack_error("jack_port_unregister called with an incorrect port %ld", myport); | ||||
@@ -1169,11 +1077,7 @@ EXPORT int jack_port_is_mine(const jack_client_t* ext_client, const jack_port_t* | |||||
jack_error("jack_port_is_mine called with a NULL client"); | jack_error("jack_port_is_mine called with a NULL client"); | ||||
return -1; | return -1; | ||||
} | } | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_is_mine called with an incorrect port %ld", myport); | jack_error("jack_port_is_mine called with an incorrect port %ld", myport); | ||||
@@ -1187,11 +1091,7 @@ EXPORT const char** jack_port_get_connections(const jack_port_t* port) | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_port_get_connections"); | JackGlobals::CheckContext("jack_port_get_connections"); | ||||
#endif | #endif | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_get_connections called with an incorrect port %ld", myport); | jack_error("jack_port_get_connections called with an incorrect port %ld", myport); | ||||
@@ -1215,11 +1115,7 @@ EXPORT const char** jack_port_get_all_connections(const jack_client_t* ext_clien | |||||
return NULL; | return NULL; | ||||
} | } | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_get_all_connections called with an incorrect port %ld", myport); | jack_error("jack_port_get_all_connections called with an incorrect port %ld", myport); | ||||
@@ -1242,11 +1138,7 @@ EXPORT jack_nframes_t jack_port_get_total_latency(jack_client_t* ext_client, jac | |||||
return 0; | return 0; | ||||
} | } | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)port; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)port; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)port; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_get_total_latency called with an incorrect port %ld", myport); | jack_error("jack_port_get_total_latency called with an incorrect port %ld", myport); | ||||
@@ -1307,11 +1199,7 @@ EXPORT int jack_port_disconnect(jack_client_t* ext_client, jack_port_t* src) | |||||
jack_error("jack_port_disconnect called with a NULL client"); | jack_error("jack_port_disconnect called with a NULL client"); | ||||
return -1; | return -1; | ||||
} | } | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
uint64_t port_aux = (uint64_t)src; | |||||
#else | |||||
uint32_t port_aux = (uint32_t)src; | |||||
#endif | |||||
uintptr_t port_aux = (uintptr_t)src; | |||||
jack_port_id_t myport = (jack_port_id_t)port_aux; | jack_port_id_t myport = (jack_port_id_t)port_aux; | ||||
if (!CheckPort(myport)) { | if (!CheckPort(myport)) { | ||||
jack_error("jack_port_disconnect called with an incorrect port %ld", myport); | jack_error("jack_port_disconnect called with an incorrect port %ld", myport); | ||||
@@ -1383,11 +1271,7 @@ EXPORT jack_port_t* jack_port_by_name(jack_client_t* ext_client, const char* por | |||||
if (!manager) | if (!manager) | ||||
return NULL; | return NULL; | ||||
int res = manager->GetPort(portname); // returns a port index at least > 1 | int res = manager->GetPort(portname); // returns a port index at least > 1 | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
return (res == NO_PORT) ? NULL : (jack_port_t*)((uint64_t)res); | |||||
#else | |||||
return (res == NO_PORT) ? NULL : (jack_port_t*)res; | |||||
#endif | |||||
return (res == NO_PORT) ? NULL : (jack_port_t*)((uintptr_t)res); | |||||
} | } | ||||
} | } | ||||
@@ -1397,11 +1281,7 @@ EXPORT jack_port_t* jack_port_by_id(jack_client_t* ext_client, jack_port_id_t id | |||||
JackGlobals::CheckContext("jack_port_by_id"); | JackGlobals::CheckContext("jack_port_by_id"); | ||||
#endif | #endif | ||||
/* jack_port_t* type is actually the port index */ | /* jack_port_t* type is actually the port index */ | ||||
#if defined(__x86_64__) || defined(__ppc64__) | |||||
return (jack_port_t*)((uint64_t)id); | |||||
#else | |||||
return (jack_port_t*)id; | |||||
#endif | |||||
return (jack_port_t*)((uintptr_t)id); | |||||
} | } | ||||
EXPORT int jack_engine_takeover_timebase(jack_client_t* ext_client) | EXPORT int jack_engine_takeover_timebase(jack_client_t* ext_client) | ||||
@@ -59,30 +59,6 @@ | |||||
#define JACK_DEFAULT_SERVER_NAME "default" | #define JACK_DEFAULT_SERVER_NAME "default" | ||||
#ifdef WIN32 | |||||
#define jack_server_dir "server" | |||||
#define jack_client_dir "client" | |||||
#define ADDON_DIR "jack" | |||||
#endif | |||||
#ifdef __APPLE__ | |||||
#define jack_server_dir "/tmp" | |||||
#define jack_client_dir "/tmp" | |||||
#define JACK_DEFAULT_DRIVER "coreaudio" | |||||
#endif | |||||
#ifdef __linux__ | |||||
#define jack_server_dir "/dev/shm" | |||||
#define jack_client_dir "/dev/shm" | |||||
#define JACK_DEFAULT_DRIVER "alsa" | |||||
#endif | |||||
#if defined(__sun__) || defined(sun) | |||||
#define jack_server_dir "/tmp" | |||||
#define jack_client_dir "/tmp" | |||||
#define JACK_DEFAULT_DRIVER "oss" | |||||
#endif | |||||
#define jack_server_entry "jackdmp_entry" | #define jack_server_entry "jackdmp_entry" | ||||
#define jack_client_entry "jack_client" | #define jack_client_entry "jack_client" | ||||
@@ -152,7 +152,7 @@ jack_parse_driver_params (jack_driver_desc_t * desc, int argc, char* argv[], JSL | |||||
fprintf (stderr, "Options for driver '%s':\n", desc->name); | fprintf (stderr, "Options for driver '%s':\n", desc->name); | ||||
jack_print_driver_options (desc, stderr); | jack_print_driver_options (desc, stderr); | ||||
exit (1); | |||||
return 1; | |||||
} | } | ||||
for (param_index = 0; param_index < desc->nparams; param_index++) { | for (param_index = 0; param_index < desc->nparams; param_index++) { | ||||
@@ -36,7 +36,10 @@ extern "C" | |||||
{ | { | ||||
#endif | #endif | ||||
EXPORT jack_client_t * jack_client_open_aux (const char *client_name, | |||||
jack_client_t * jack_client_new_aux (const char *client_name, | |||||
jack_options_t options, | |||||
jack_status_t *status); | |||||
jack_client_t * jack_client_open_aux (const char *client_name, | |||||
jack_options_t options, | jack_options_t options, | ||||
jack_status_t *status, va_list ap); | jack_status_t *status, va_list ap); | ||||
EXPORT jack_client_t * jack_client_open (const char *client_name, | EXPORT jack_client_t * jack_client_open (const char *client_name, | ||||
@@ -52,18 +55,18 @@ extern "C" | |||||
JackLibGlobals* JackLibGlobals::fGlobals = NULL; | JackLibGlobals* JackLibGlobals::fGlobals = NULL; | ||||
int JackLibGlobals::fClientCount = 0; | int JackLibGlobals::fClientCount = 0; | ||||
EXPORT jack_client_t* jack_client_open_aux(const char* client_name, jack_options_t options, jack_status_t* status, va_list ap) | |||||
jack_client_t* jack_client_new_aux(const char* client_name, jack_options_t options, jack_status_t* status) | |||||
{ | { | ||||
jack_varargs_t va; /* variable arguments */ | jack_varargs_t va; /* variable arguments */ | ||||
jack_status_t my_status; | jack_status_t my_status; | ||||
JackClient* client; | JackClient* client; | ||||
if (client_name == NULL) { | if (client_name == NULL) { | ||||
jack_error("jack_client_open called with a NULL client_name"); | |||||
jack_error("jack_client_new called with a NULL client_name"); | |||||
return NULL; | return NULL; | ||||
} | } | ||||
jack_log("jack_client_open %s", client_name); | |||||
jack_log("jack_client_new %s", client_name); | |||||
if (status == NULL) /* no status from caller? */ | if (status == NULL) /* no status from caller? */ | ||||
status = &my_status; /* use local status word */ | status = &my_status; /* use local status word */ | ||||
@@ -77,11 +80,60 @@ EXPORT jack_client_t* jack_client_open_aux(const char* client_name, jack_options | |||||
} | } | ||||
/* parse variable arguments */ | /* parse variable arguments */ | ||||
if (ap) { | |||||
jack_varargs_parse(options, ap, &va); | |||||
jack_varargs_init(&va); | |||||
JackLibGlobals::Init(); // jack library initialisation | |||||
if (try_start_server(&va, options, status)) { | |||||
jack_error("jack server is not running or cannot be started"); | |||||
JackLibGlobals::Destroy(); // jack library destruction | |||||
return 0; | |||||
} | |||||
if (JACK_DEBUG) { | |||||
client = new JackDebugClient(new JackLibClient(GetSynchroTable())); // Debug mode | |||||
} else { | } else { | ||||
jack_varargs_init(&va); | |||||
client = new JackLibClient(GetSynchroTable()); | |||||
} | |||||
int res = client->Open(va.server_name, client_name, options, status); | |||||
if (res < 0) { | |||||
delete client; | |||||
JackLibGlobals::Destroy(); // jack library destruction | |||||
int my_status1 = (JackFailure | JackServerError); | |||||
*status = (jack_status_t)my_status1; | |||||
return NULL; | |||||
} else { | |||||
return (jack_client_t*)client; | |||||
} | |||||
} | |||||
jack_client_t* jack_client_open_aux(const char* client_name, jack_options_t options, jack_status_t* status, va_list ap) | |||||
{ | |||||
jack_varargs_t va; /* variable arguments */ | |||||
jack_status_t my_status; | |||||
JackClient* client; | |||||
if (client_name == NULL) { | |||||
jack_error("jack_client_open called with a NULL client_name"); | |||||
return NULL; | |||||
} | } | ||||
jack_log("jack_client_open %s", client_name); | |||||
if (status == NULL) /* no status from caller? */ | |||||
status = &my_status; /* use local status word */ | |||||
*status = (jack_status_t)0; | |||||
/* validate parameters */ | |||||
if ((options & ~JackOpenOptions)) { | |||||
int my_status1 = *status | (JackFailure | JackInvalidOption); | |||||
*status = (jack_status_t)my_status1; | |||||
return NULL; | |||||
} | |||||
/* parse variable arguments */ | |||||
jack_varargs_parse(options, ap, &va); | |||||
JackLibGlobals::Init(); // jack library initialisation | JackLibGlobals::Init(); // jack library initialisation | ||||
@@ -111,10 +163,10 @@ EXPORT jack_client_t* jack_client_open_aux(const char* client_name, jack_options | |||||
EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options_t options, jack_status_t* status, ...) | EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options_t options, jack_status_t* status, ...) | ||||
{ | { | ||||
try { | |||||
#ifdef __CLIENTDEBUG__ | #ifdef __CLIENTDEBUG__ | ||||
JackGlobals::CheckContext("jack_client_open"); | JackGlobals::CheckContext("jack_client_open"); | ||||
#endif | #endif | ||||
try { | |||||
assert(JackGlobals::fOpenMutex); | assert(JackGlobals::fOpenMutex); | ||||
JackGlobals::fOpenMutex->Lock(); | JackGlobals::fOpenMutex->Lock(); | ||||
va_list ap; | va_list ap; | ||||
@@ -33,7 +33,10 @@ extern "C" | |||||
{ | { | ||||
#endif | #endif | ||||
EXPORT jack_client_t * jack_client_open_aux (const char *client_name, | |||||
jack_client_t * jack_client_new_aux (const char *client_name, | |||||
jack_options_t options, | |||||
jack_status_t *status); | |||||
jack_client_t * jack_client_open_aux (const char *client_name, | |||||
jack_options_t options, | jack_options_t options, | ||||
jack_status_t *status, va_list ap); | jack_status_t *status, va_list ap); | ||||
EXPORT jack_client_t * jack_client_open (const char *client_name, | EXPORT jack_client_t * jack_client_open (const char *client_name, | ||||
@@ -48,18 +51,18 @@ extern "C" | |||||
using namespace Jack; | using namespace Jack; | ||||
EXPORT jack_client_t* jack_client_open_aux(const char* client_name, jack_options_t options, jack_status_t* status, va_list ap) | |||||
jack_client_t* jack_client_new_aux(const char* client_name, jack_options_t options, jack_status_t* status) | |||||
{ | { | ||||
jack_varargs_t va; /* variable arguments */ | jack_varargs_t va; /* variable arguments */ | ||||
jack_status_t my_status; | jack_status_t my_status; | ||||
JackClient* client; | JackClient* client; | ||||
if (client_name == NULL) { | if (client_name == NULL) { | ||||
jack_error("jack_client_open called with a NULL client_name"); | |||||
jack_error("jack_client_new called with a NULL client_name"); | |||||
return NULL; | return NULL; | ||||
} | } | ||||
jack_log("jack_client_open %s", client_name); | |||||
jack_log("jack_client_new %s", client_name); | |||||
if (status == NULL) /* no status from caller? */ | if (status == NULL) /* no status from caller? */ | ||||
status = &my_status; /* use local status word */ | status = &my_status; /* use local status word */ | ||||
@@ -73,12 +76,59 @@ EXPORT jack_client_t* jack_client_open_aux(const char* client_name, jack_options | |||||
} | } | ||||
/* parse variable arguments */ | /* parse variable arguments */ | ||||
if (ap) { | |||||
jack_varargs_parse(options, ap, &va); | |||||
jack_varargs_init(&va); | |||||
if (!JackServerGlobals::Init()) { // jack server initialisation | |||||
int my_status1 = (JackFailure | JackServerError); | |||||
*status = (jack_status_t)my_status1; | |||||
return NULL; | |||||
} | |||||
if (JACK_DEBUG) { | |||||
client = new JackDebugClient(new JackInternalClient(JackServerGlobals::fInstance, GetSynchroTable())); // Debug mode | |||||
} else { | } else { | ||||
jack_varargs_init(&va); | |||||
client = new JackInternalClient(JackServerGlobals::fInstance, GetSynchroTable()); | |||||
} | |||||
int res = client->Open(va.server_name, client_name, options, status); | |||||
if (res < 0) { | |||||
delete client; | |||||
JackServerGlobals::Destroy(); // jack server destruction | |||||
int my_status1 = (JackFailure | JackServerError); | |||||
*status = (jack_status_t)my_status1; | |||||
return NULL; | |||||
} else { | |||||
return (jack_client_t*)client; | |||||
} | |||||
} | |||||
jack_client_t* jack_client_open_aux(const char* client_name, jack_options_t options, jack_status_t* status, va_list ap) | |||||
{ | |||||
jack_varargs_t va; /* variable arguments */ | |||||
jack_status_t my_status; | |||||
JackClient* client; | |||||
if (client_name == NULL) { | |||||
jack_error("jack_client_open called with a NULL client_name"); | |||||
return NULL; | |||||
} | } | ||||
jack_log("jack_client_open %s", client_name); | |||||
if (status == NULL) /* no status from caller? */ | |||||
status = &my_status; /* use local status word */ | |||||
*status = (jack_status_t)0; | |||||
/* validate parameters */ | |||||
if ((options & ~JackOpenOptions)) { | |||||
int my_status1 = *status | (JackFailure | JackInvalidOption); | |||||
*status = (jack_status_t)my_status1; | |||||
return NULL; | |||||
} | |||||
/* parse variable arguments */ | |||||
jack_varargs_parse(options, ap, &va); | |||||
if (!JackServerGlobals::Init()) { // jack server initialisation | if (!JackServerGlobals::Init()) { // jack server initialisation | ||||
int my_status1 = (JackFailure | JackServerError); | int my_status1 = (JackFailure | JackServerError); | ||||
*status = (jack_status_t)my_status1; | *status = (jack_status_t)my_status1; | ||||
@@ -732,7 +732,7 @@ int jack_port_connected_to (const jack_port_t *port, | |||||
* @return a null-terminated array of full port names to which the @a | * @return a null-terminated array of full port names to which the @a | ||||
* port is connected. If none, returns NULL. | * port is connected. If none, returns NULL. | ||||
* | * | ||||
* The caller is responsible for calling free(3) on any non-NULL | |||||
* The caller is responsible for calling jack_free(3) on any non-NULL | |||||
* returned value. | * returned value. | ||||
* | * | ||||
* @param port locally owned jack_port_t pointer. | * @param port locally owned jack_port_t pointer. | ||||
@@ -745,7 +745,7 @@ const char ** jack_port_get_connections (const jack_port_t *port) JACK_OPTIONAL_ | |||||
* @return a null-terminated array of full port names to which the @a | * @return a null-terminated array of full port names to which the @a | ||||
* port is connected. If none, returns NULL. | * port is connected. If none, returns NULL. | ||||
* | * | ||||
* The caller is responsible for calling free(3) on any non-NULL | |||||
* The caller is responsible for calling jack_free(3) on any non-NULL | |||||
* returned value. | * returned value. | ||||
* | * | ||||
* This differs from jack_port_get_connections() in two important | * This differs from jack_port_get_connections() in two important | ||||
@@ -996,7 +996,7 @@ int jack_port_type_size(void) JACK_OPTIONAL_WEAK_EXPORT; | |||||
* If zero, no selection based on flags will be carried out. | * If zero, no selection based on flags will be carried out. | ||||
* | * | ||||
* @return a NULL-terminated array of ports that match the specified | * @return a NULL-terminated array of ports that match the specified | ||||
* arguments. The caller is responsible for calling free(3) any | |||||
* arguments. The caller is responsible for calling jack_free(3) any | |||||
* non-NULL returned value. | * non-NULL returned value. | ||||
* | * | ||||
* @see jack_port_name_size(), jack_port_type_size() | * @see jack_port_name_size(), jack_port_type_size() | ||||
@@ -99,7 +99,13 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { | |||||
jack_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); | jack_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); | ||||
jack_error("info.si_addr = %p", info->si_addr); | jack_error("info.si_addr = %p", info->si_addr); | ||||
for(i = 0; i < NGREG; i++) | for(i = 0; i < NGREG; i++) | ||||
jack_error("reg[%02d] = 0x" REGFORMAT, i, ucontext->uc_mcontext.gregs[i]); | |||||
jack_error("reg[%02d] = 0x" REGFORMAT, i, | |||||
#if defined(__powerpc__) | |||||
ucontext->uc_mcontext.uc_regs[i] | |||||
#else | |||||
ucontext->uc_mcontext.gregs[i] | |||||
#endif | |||||
); | |||||
#if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) | #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) | ||||
# if defined(SIGSEGV_STACK_IA64) | # if defined(SIGSEGV_STACK_IA64) | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
Copyright (C) 2002 Jeremy Hall | Copyright (C) 2002 Jeremy Hall | ||||
This program is free software; you can redistribute it and/or modify | This program is free software; you can redistribute it and/or modify | ||||
it under the terms of the GNU General Public License as published by | it under the terms of the GNU General Public License as published by | ||||
the Free Software Foundation; either version 2 of the License, or | the Free Software Foundation; either version 2 of the License, or | ||||
@@ -29,9 +29,16 @@ | |||||
jack_port_t *input_port; | jack_port_t *input_port; | ||||
jack_port_t *output_port; | jack_port_t *output_port; | ||||
int connecting, disconnecting; | int connecting, disconnecting; | ||||
int done = 0; | |||||
#define TRUE 1 | #define TRUE 1 | ||||
#define FALSE 0 | #define FALSE 0 | ||||
void port_connect_callback(jack_port_id_t a, jack_port_id_t b, int connect, void* arg) | |||||
{ | |||||
done = 1; | |||||
} | |||||
int | int | ||||
main (int argc, char *argv[]) | main (int argc, char *argv[]) | ||||
{ | { | ||||
@@ -43,7 +50,7 @@ main (int argc, char *argv[]) | |||||
} else { | } else { | ||||
my_name ++; | my_name ++; | ||||
} | } | ||||
printf("name %s\n", my_name); | printf("name %s\n", my_name); | ||||
if (strstr(my_name, "jack_disconnect")) { | if (strstr(my_name, "jack_disconnect")) { | ||||
@@ -70,7 +77,9 @@ main (int argc, char *argv[]) | |||||
return 1; | return 1; | ||||
} | } | ||||
/* display the current sample rate. once the client is activated | |||||
jack_set_port_connect_callback(client, port_connect_callback, NULL); | |||||
/* display the current sample rate. once the client is activated | |||||
(see below), you should rely on your own sample rate | (see below), you should rely on your own sample rate | ||||
callback (see above) for this value. | callback (see above) for this value. | ||||
*/ | */ | ||||
@@ -85,7 +94,7 @@ main (int argc, char *argv[]) | |||||
fprintf (stderr, "ERROR %s not a valid port\n", argv[2]); | fprintf (stderr, "ERROR %s not a valid port\n", argv[2]); | ||||
goto error; | goto error; | ||||
} | } | ||||
/* tell the JACK server that we are ready to roll */ | /* tell the JACK server that we are ready to roll */ | ||||
if (jack_activate (client)) { | if (jack_activate (client)) { | ||||
@@ -109,12 +118,22 @@ main (int argc, char *argv[]) | |||||
goto error; | goto error; | ||||
} | } | ||||
} | } | ||||
// Wait for connection/disconnection to be effective | |||||
while(!done) { | |||||
#ifdef WIN32 | |||||
Sleep(10); | |||||
#else | |||||
usleep(10000); | |||||
#endif | |||||
} | |||||
jack_deactivate (client); | jack_deactivate (client); | ||||
jack_client_close (client); | jack_client_close (client); | ||||
return 0; | return 0; | ||||
error: | error: | ||||
if (client) | |||||
if (client) | |||||
jack_client_close (client); | jack_client_close (client); | ||||
return 1; | return 1; | ||||
} | } | ||||
@@ -503,11 +503,12 @@ init_sockaddr_in (struct sockaddr_in *name , const char *hostname , uint16_t por | |||||
if (hostinfo == NULL) { | if (hostinfo == NULL) { | ||||
fprintf (stderr, "init_sockaddr_in: unknown host: %s.\n", hostname); | fprintf (stderr, "init_sockaddr_in: unknown host: %s.\n", hostname); | ||||
fflush( stderr ); | fflush( stderr ); | ||||
return; | |||||
} | } | ||||
#ifdef WIN32 | #ifdef WIN32 | ||||
name->sin_addr.s_addr = inet_addr( hostname ); | |||||
name->sin_addr.s_addr = inet_addr( hostname ); | |||||
#else | #else | ||||
name->sin_addr = *(struct in_addr *) hostinfo->h_addr ; | |||||
name->sin_addr = *(struct in_addr *) hostinfo->h_addr ; | |||||
#endif | #endif | ||||
} | } | ||||
else | else | ||||
@@ -622,15 +623,15 @@ main (int argc, char *argv[]) | |||||
case 'b': | case 'b': | ||||
bitdepth = atoi (optarg); | bitdepth = atoi (optarg); | ||||
break; | break; | ||||
case 'c': | |||||
#if HAVE_CELT | |||||
bitdepth = 1000; | |||||
case 'c': | |||||
#if HAVE_CELT | |||||
bitdepth = 1000; | |||||
factor = atoi (optarg); | factor = atoi (optarg); | ||||
#else | |||||
#else | |||||
printf( "not built with celt supprt\n" ); | printf( "not built with celt supprt\n" ); | ||||
exit(10); | exit(10); | ||||
#endif | |||||
break; | |||||
#endif | |||||
break; | |||||
case 'm': | case 'm': | ||||
mtu = atoi (optarg); | mtu = atoi (optarg); | ||||
break; | break; | ||||
@@ -677,18 +678,17 @@ main (int argc, char *argv[]) | |||||
} | } | ||||
init_sockaddr_in ((struct sockaddr_in *) &destaddr, peer_ip, peer_port); | init_sockaddr_in ((struct sockaddr_in *) &destaddr, peer_ip, peer_port); | ||||
if(bind_port) { | |||||
if (bind_port) { | |||||
init_sockaddr_in ((struct sockaddr_in *) &bindaddr, NULL, bind_port); | init_sockaddr_in ((struct sockaddr_in *) &bindaddr, NULL, bind_port); | ||||
if( bind (outsockfd, &bindaddr, sizeof (bindaddr)) ) { | if( bind (outsockfd, &bindaddr, sizeof (bindaddr)) ) { | ||||
fprintf (stderr, "bind failure\n" ); | |||||
} | |||||
fprintf (stderr, "bind failure\n" ); | |||||
} | |||||
} | } | ||||
if(reply_port) | |||||
{ | |||||
if (reply_port) { | |||||
init_sockaddr_in ((struct sockaddr_in *) &bindaddr, NULL, reply_port); | init_sockaddr_in ((struct sockaddr_in *) &bindaddr, NULL, reply_port); | ||||
if( bind (insockfd, &bindaddr, sizeof (bindaddr)) ) { | if( bind (insockfd, &bindaddr, sizeof (bindaddr)) ) { | ||||
fprintf (stderr, "bind failure\n" ); | |||||
} | |||||
fprintf (stderr, "bind failure\n" ); | |||||
} | |||||
} | } | ||||
/* try to become a client of the JACK server */ | /* try to become a client of the JACK server */ | ||||
@@ -59,7 +59,7 @@ def configure(conf): | |||||
conf.env['BUILD_EXAMPLE_CLIENT_REC'] = conf.is_defined('HAVE_SNDFILE') | conf.env['BUILD_EXAMPLE_CLIENT_REC'] = conf.is_defined('HAVE_SNDFILE') | ||||
conf.env['BUILD_EXAMPLE_ALSA_IO'] = conf.is_defined('HAVE_SAMPLERATE') | |||||
conf.env['BUILD_EXAMPLE_ALSA_IO'] = conf.is_defined('HAVE_SAMPLERATE') and conf.is_defined('HAVE_ALSA') | |||||
def build(bld): | def build(bld): | ||||
if bld.env['IS_LINUX']: | if bld.env['IS_LINUX']: | ||||
@@ -42,9 +42,9 @@ static inline int CAS(register UInt32 value, register UInt32 newvalue, register | |||||
"1: \n" | "1: \n" | ||||
" li %0, 0 \n" | " li %0, 0 \n" | ||||
"2: \n" | "2: \n" | ||||
: "=r" (result) | |||||
: "r" (addr), "r" (value), "r" (newvalue), "r" (tmp) | |||||
); | |||||
: "=r" (result) | |||||
: "r" (addr), "r" (value), "r" (newvalue), "r" (tmp) | |||||
); | |||||
return result; | return result; | ||||
} | } | ||||
@@ -61,13 +61,23 @@ static inline char CAS(volatile UInt32 value, UInt32 newvalue, volatile void* ad | |||||
"# CAS \n\t" | "# CAS \n\t" | ||||
LOCK "cmpxchg %2, (%1) \n\t" | LOCK "cmpxchg %2, (%1) \n\t" | ||||
"sete %0 \n\t" | "sete %0 \n\t" | ||||
: "=a" (ret) | |||||
: "c" (addr), "d" (newvalue), "a" (value) | |||||
); | |||||
: "=a" (ret) | |||||
: "c" (addr), "d" (newvalue), "a" (value) | |||||
); | |||||
return ret; | return ret; | ||||
} | } | ||||
#endif | #endif | ||||
#if !defined(__i386__) && !defined(__x86_64__) && !defined(__PPC__) | |||||
#warning using builtin gcc (version > 4.1) atomic | |||||
static inline char CAS(volatile UInt32 value, UInt32 newvalue, volatile void* addr) | |||||
{ | |||||
return __sync_bool_compare_and_swap (&addr, value, newvalue); | |||||
} | |||||
#endif | |||||
#endif | #endif | ||||
@@ -20,6 +20,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
#ifndef __JackPlatformPlug_linux__ | #ifndef __JackPlatformPlug_linux__ | ||||
#define __JackPlatformPlug_linux__ | #define __JackPlatformPlug_linux__ | ||||
#define jack_server_dir "/dev/shm" | |||||
#define jack_client_dir "/dev/shm" | |||||
#define JACK_DEFAULT_DRIVER "alsa" | |||||
namespace Jack | namespace Jack | ||||
{ | { | ||||
struct JackRequest; | struct JackRequest; | ||||
@@ -260,7 +260,7 @@ JackAlsaDriver::alsa_driver_hw_specific (alsa_driver_t *driver, int hw_monitorin | |||||
return 0; | return 0; | ||||
} | } | ||||
void | |||||
int | |||||
JackAlsaDriver::alsa_driver_setup_io_function_pointers (alsa_driver_t *driver) | JackAlsaDriver::alsa_driver_setup_io_function_pointers (alsa_driver_t *driver) | ||||
{ | { | ||||
if (driver->playback_handle) { | if (driver->playback_handle) { | ||||
@@ -340,7 +340,7 @@ JackAlsaDriver::alsa_driver_setup_io_function_pointers (alsa_driver_t *driver) | |||||
default: | default: | ||||
jack_error ("impossible sample width (%d) discovered!", | jack_error ("impossible sample width (%d) discovered!", | ||||
driver->playback_sample_bytes); | driver->playback_sample_bytes); | ||||
exit (1); | |||||
return -1; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -364,6 +364,8 @@ JackAlsaDriver::alsa_driver_setup_io_function_pointers (alsa_driver_t *driver) | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
return 0; | |||||
} | } | ||||
int | int | ||||
@@ -779,7 +781,7 @@ JackAlsaDriver::alsa_driver_set_parameters (alsa_driver_t *driver, | |||||
default: | default: | ||||
jack_error ("programming error: unhandled format " | jack_error ("programming error: unhandled format " | ||||
"type for playback"); | "type for playback"); | ||||
exit (1); | |||||
return -1; | |||||
} | } | ||||
} | } | ||||
@@ -797,7 +799,7 @@ JackAlsaDriver::alsa_driver_set_parameters (alsa_driver_t *driver, | |||||
default: | default: | ||||
jack_error ("programming error: unhandled format " | jack_error ("programming error: unhandled format " | ||||
"type for capture"); | "type for capture"); | ||||
exit (1); | |||||
return -1; | |||||
} | } | ||||
} | } | ||||
@@ -836,7 +838,8 @@ JackAlsaDriver::alsa_driver_set_parameters (alsa_driver_t *driver, | |||||
driver->user_nchannels = driver->playback_nchannels; | driver->user_nchannels = driver->playback_nchannels; | ||||
} | } | ||||
alsa_driver_setup_io_function_pointers (driver); | |||||
if (alsa_driver_setup_io_function_pointers (driver) != 0) | |||||
return -1; | |||||
/* Allocate and initialize structures that rely on the | /* Allocate and initialize structures that rely on the | ||||
channels counts. | channels counts. | ||||
@@ -53,7 +53,7 @@ class JackAlsaDriver : public JackAudioDriver | |||||
int alsa_driver_generic_hardware(alsa_driver_t *driver); | int alsa_driver_generic_hardware(alsa_driver_t *driver); | ||||
int alsa_driver_hw_specific(alsa_driver_t *driver, int hw_monitoring, | int alsa_driver_hw_specific(alsa_driver_t *driver, int hw_monitoring, | ||||
int hw_metering); | int hw_metering); | ||||
void alsa_driver_setup_io_function_pointers (alsa_driver_t *driver); | |||||
int alsa_driver_setup_io_function_pointers (alsa_driver_t *driver); | |||||
int alsa_driver_configure_stream(alsa_driver_t *driver, char *device_name, | int alsa_driver_configure_stream(alsa_driver_t *driver, char *device_name, | ||||
const char *stream_name, | const char *stream_name, | ||||
snd_pcm_t *handle, | snd_pcm_t *handle, | ||||
@@ -103,6 +103,20 @@ static inline cycles_t get_cycles (void) | |||||
#endif | #endif | ||||
/* everything else but x86, amd64 or ppc */ | |||||
#if !defined (__PPC__) && !defined (__x86_64__) && !defined (__i386__) | |||||
#warning No suitable get_cycles() implementation. Returning 0 instead | |||||
typedef unsigned long long cycles_t; | |||||
static inline cycles_t get_cycles(void) | |||||
{ | |||||
return 0; | |||||
} | |||||
#endif | |||||
#endif | #endif | ||||
#endif /* __jack_cycles_h__ */ | #endif /* __jack_cycles_h__ */ |
@@ -429,7 +429,7 @@ int JackFFADODriver::Attach() | |||||
driver->capture_channels[chn].stream_type = ffado_streaming_get_capture_stream_type(driver->dev, chn); | driver->capture_channels[chn].stream_type = ffado_streaming_get_capture_stream_type(driver->dev, chn); | ||||
if (driver->capture_channels[chn].stream_type == ffado_stream_type_audio) { | if (driver->capture_channels[chn].stream_type == ffado_stream_type_audio) { | ||||
snprintf(buf, sizeof(buf) - 1, "%s:%s", fClientControl.fName, portname); | |||||
snprintf(buf, sizeof(buf) - 1, "firewire_pcm:%s_in", portname); | |||||
printMessage ("Registering audio capture port %s", buf); | printMessage ("Registering audio capture port %s", buf); | ||||
if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | ||||
JACK_DEFAULT_AUDIO_TYPE, | JACK_DEFAULT_AUDIO_TYPE, | ||||
@@ -455,7 +455,7 @@ int JackFFADODriver::Attach() | |||||
fCaptureChannels++; | fCaptureChannels++; | ||||
} else if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) { | } else if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) { | ||||
snprintf(buf, sizeof(buf) - 1, "%s:%s", fClientControl.fName, portname); | |||||
snprintf(buf, sizeof(buf) - 1, "firewire_pcm:%s_in", portname); | |||||
printMessage ("Registering midi capture port %s", buf); | printMessage ("Registering midi capture port %s", buf); | ||||
if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | ||||
JACK_DEFAULT_MIDI_TYPE, | JACK_DEFAULT_MIDI_TYPE, | ||||
@@ -502,7 +502,7 @@ int JackFFADODriver::Attach() | |||||
driver->playback_channels[chn].stream_type = ffado_streaming_get_playback_stream_type(driver->dev, chn); | driver->playback_channels[chn].stream_type = ffado_streaming_get_playback_stream_type(driver->dev, chn); | ||||
if (driver->playback_channels[chn].stream_type == ffado_stream_type_audio) { | if (driver->playback_channels[chn].stream_type == ffado_stream_type_audio) { | ||||
snprintf(buf, sizeof(buf) - 1, "%s:%s", fClientControl.fName, portname); | |||||
snprintf(buf, sizeof(buf) - 1, "firewire_pcm:%s_out", portname); | |||||
printMessage ("Registering audio playback port %s", buf); | printMessage ("Registering audio playback port %s", buf); | ||||
if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | ||||
JACK_DEFAULT_AUDIO_TYPE, | JACK_DEFAULT_AUDIO_TYPE, | ||||
@@ -530,7 +530,7 @@ int JackFFADODriver::Attach() | |||||
jack_log("JackFFADODriver::Attach fPlaybackPortList[i] %ld ", port_index); | jack_log("JackFFADODriver::Attach fPlaybackPortList[i] %ld ", port_index); | ||||
fPlaybackChannels++; | fPlaybackChannels++; | ||||
} else if (driver->playback_channels[chn].stream_type == ffado_stream_type_midi) { | } else if (driver->playback_channels[chn].stream_type == ffado_stream_type_midi) { | ||||
snprintf(buf, sizeof(buf) - 1, "%s:%s", fClientControl.fName, portname); | |||||
snprintf(buf, sizeof(buf) - 1, "firewire_pcm:%s_out", portname); | |||||
printMessage ("Registering midi playback port %s", buf); | printMessage ("Registering midi playback port %s", buf); | ||||
if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | if ((port_index = fGraphManager->AllocatePort(fClientControl.fRefNum, buf, | ||||
JACK_DEFAULT_MIDI_TYPE, | JACK_DEFAULT_MIDI_TYPE, | ||||
@@ -41,10 +41,10 @@ static inline int CAS(register UInt32 value, register UInt32 newvalue, register | |||||
"1: \n" | "1: \n" | ||||
" li %0, 0 \n" | " li %0, 0 \n" | ||||
"2: \n" | "2: \n" | ||||
: "=r" (result) | |||||
: "r" (addr), "r" (value), "r" (newvalue) | |||||
: "r0" | |||||
); | |||||
: "=r" (result) | |||||
: "r" (addr), "r" (value), "r" (newvalue) | |||||
: "r0" | |||||
); | |||||
return result; | return result; | ||||
} | } | ||||
@@ -61,9 +61,9 @@ static inline char CAS(volatile UInt32 value, UInt32 newvalue, volatile void* ad | |||||
"# CAS \n\t" | "# CAS \n\t" | ||||
LOCK "cmpxchg %2, (%1) \n\t" | LOCK "cmpxchg %2, (%1) \n\t" | ||||
"sete %0 \n\t" | "sete %0 \n\t" | ||||
: "=a" (ret) | |||||
: "c" (addr), "d" (newvalue), "a" (value) | |||||
); | |||||
: "=a" (ret) | |||||
: "c" (addr), "d" (newvalue), "a" (value) | |||||
); | |||||
return ret; | return ret; | ||||
} | } | ||||
@@ -22,6 +22,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
#include <TargetConditionals.h> | #include <TargetConditionals.h> | ||||
#define jack_server_dir "/tmp" | |||||
#define jack_client_dir "/tmp" | |||||
#define JACK_DEFAULT_DRIVER "coreaudio" | |||||
namespace Jack | namespace Jack | ||||
{ | { | ||||
class JackPosixMutex; | class JackPosixMutex; | ||||
@@ -7950,16 +7950,17 @@ | |||||
LIBRARY_STYLE = DYNAMIC; | LIBRARY_STYLE = DYNAMIC; | ||||
MACH_O_TYPE = mh_dylib; | MACH_O_TYPE = mh_dylib; | ||||
OTHER_CFLAGS = ""; | OTHER_CFLAGS = ""; | ||||
OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT_API_0_7", | |||||
"-DHAVE_CELT", | |||||
"-DMACH_RPC_MACH_SEMA", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackservermp, | Jackservermp, | ||||
"-framework", | "-framework", | ||||
CoreAudio, | |||||
"-framework", | |||||
CoreServices, | CoreServices, | ||||
"-framework", | |||||
AudioUnit, | |||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PREBINDING = NO; | PREBINDING = NO; | ||||
@@ -8000,8 +8001,13 @@ | |||||
MACH_O_TYPE = mh_dylib; | MACH_O_TYPE = mh_dylib; | ||||
MACOSX_DEPLOYMENT_TARGET = 10.4; | MACOSX_DEPLOYMENT_TARGET = 10.4; | ||||
OTHER_CFLAGS = ""; | OTHER_CFLAGS = ""; | ||||
OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT_API_0_7", | |||||
"-DHAVE_CELT", | |||||
"-DMACH_RPC_MACH_SEMA", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackservermp, | Jackservermp, | ||||
"-framework", | "-framework", | ||||
@@ -8037,7 +8043,11 @@ | |||||
LIBRARY_STYLE = DYNAMIC; | LIBRARY_STYLE = DYNAMIC; | ||||
MACH_O_TYPE = mh_dylib; | MACH_O_TYPE = mh_dylib; | ||||
OTHER_CFLAGS = ""; | OTHER_CFLAGS = ""; | ||||
OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT_API_0_7", | |||||
"-DHAVE_CELT", | |||||
"-DMACH_RPC_MACH_SEMA", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
"-framework", | "-framework", | ||||
Jackdmp, | Jackdmp, | ||||
@@ -8087,17 +8097,19 @@ | |||||
INSTALL_PATH = /usr/local/lib; | INSTALL_PATH = /usr/local/lib; | ||||
LIBRARY_STYLE = DYNAMIC; | LIBRARY_STYLE = DYNAMIC; | ||||
MACH_O_TYPE = mh_dylib; | MACH_O_TYPE = mh_dylib; | ||||
OTHER_CFLAGS = ""; | |||||
OTHER_CPLUSPLUSFLAGS = "-DMACH_RPC_MACH_SEMA"; | |||||
OTHER_CFLAGS = "-DJACK_32_64"; | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DJACK_32_64", | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
"-DMACH_RPC_MACH_SEMA", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackservermp, | Jackservermp, | ||||
"-framework", | "-framework", | ||||
CoreAudio, | |||||
"-framework", | |||||
CoreServices, | CoreServices, | ||||
"-framework", | |||||
AudioUnit, | |||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PREBINDING = NO; | PREBINDING = NO; | ||||
@@ -8137,10 +8149,13 @@ | |||||
MACOSX_DEPLOYMENT_TARGET = 10.4; | MACOSX_DEPLOYMENT_TARGET = 10.4; | ||||
OTHER_CFLAGS = "-DJACK_32_64"; | OTHER_CFLAGS = "-DJACK_32_64"; | ||||
OTHER_CPLUSPLUSFLAGS = ( | OTHER_CPLUSPLUSFLAGS = ( | ||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
"-DMACH_RPC_MACH_SEMA", | "-DMACH_RPC_MACH_SEMA", | ||||
"-DJACK_32_64", | "-DJACK_32_64", | ||||
); | ); | ||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackservermp, | Jackservermp, | ||||
"-framework", | "-framework", | ||||
@@ -8216,8 +8231,17 @@ | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | ||||
GCC_OPTIMIZATION_LEVEL = 0; | GCC_OPTIMIZATION_LEVEL = 0; | ||||
HEADER_SEARCH_PATHS = ../common; | HEADER_SEARCH_PATHS = ../common; | ||||
OTHER_CFLAGS = ""; | |||||
OTHER_CFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
); | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
"$(OTHER_CFLAGS)", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackmp, | Jackmp, | ||||
"-framework", | "-framework", | ||||
@@ -8249,8 +8273,17 @@ | |||||
GCC_ENABLE_FIX_AND_CONTINUE = NO; | GCC_ENABLE_FIX_AND_CONTINUE = NO; | ||||
HEADER_SEARCH_PATHS = ../common; | HEADER_SEARCH_PATHS = ../common; | ||||
MACOSX_DEPLOYMENT_TARGET = 10.4; | MACOSX_DEPLOYMENT_TARGET = 10.4; | ||||
OTHER_CFLAGS = ""; | |||||
OTHER_CFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
); | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
"$(OTHER_CFLAGS)", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackmp, | Jackmp, | ||||
"-framework", | "-framework", | ||||
@@ -8280,6 +8313,11 @@ | |||||
FRAMEWORK_SEARCH_PATHS = ""; | FRAMEWORK_SEARCH_PATHS = ""; | ||||
HEADER_SEARCH_PATHS = ../common; | HEADER_SEARCH_PATHS = ../common; | ||||
OTHER_CFLAGS = ""; | OTHER_CFLAGS = ""; | ||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
"$(OTHER_CFLAGS)", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
"-framework", | "-framework", | ||||
Jackmp, | Jackmp, | ||||
@@ -8311,8 +8349,13 @@ | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | ||||
GCC_OPTIMIZATION_LEVEL = 0; | GCC_OPTIMIZATION_LEVEL = 0; | ||||
HEADER_SEARCH_PATHS = ../common; | HEADER_SEARCH_PATHS = ../common; | ||||
OTHER_CFLAGS = ""; | |||||
OTHER_CFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
); | |||||
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackmp, | Jackmp, | ||||
"-framework", | "-framework", | ||||
@@ -8342,8 +8385,13 @@ | |||||
GCC_ENABLE_FIX_AND_CONTINUE = NO; | GCC_ENABLE_FIX_AND_CONTINUE = NO; | ||||
HEADER_SEARCH_PATHS = ../common; | HEADER_SEARCH_PATHS = ../common; | ||||
MACOSX_DEPLOYMENT_TARGET = 10.4; | MACOSX_DEPLOYMENT_TARGET = 10.4; | ||||
OTHER_CFLAGS = ""; | |||||
OTHER_CFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
); | |||||
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
libcelt.a, | |||||
"-framework", | "-framework", | ||||
Jackmp, | Jackmp, | ||||
"-framework", | "-framework", | ||||
@@ -8372,7 +8420,15 @@ | |||||
); | ); | ||||
FRAMEWORK_SEARCH_PATHS = ""; | FRAMEWORK_SEARCH_PATHS = ""; | ||||
HEADER_SEARCH_PATHS = ../common; | HEADER_SEARCH_PATHS = ../common; | ||||
OTHER_CFLAGS = ""; | |||||
OTHER_CFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
); | |||||
OTHER_CPLUSPLUSFLAGS = ( | |||||
"-DHAVE_CELT", | |||||
"-DHAVE_CELT_API_0_7", | |||||
"$(OTHER_CFLAGS)", | |||||
); | |||||
OTHER_LDFLAGS = ( | OTHER_LDFLAGS = ( | ||||
"-framework", | "-framework", | ||||
Jackmp, | Jackmp, | ||||
@@ -40,11 +40,13 @@ static MIDITimeStamp MIDIGetCurrentHostTime() | |||||
void JackCoreMidiDriver::ReadProcAux(const MIDIPacketList *pktlist, jack_ringbuffer_t* ringbuffer) | void JackCoreMidiDriver::ReadProcAux(const MIDIPacketList *pktlist, jack_ringbuffer_t* ringbuffer) | ||||
{ | { | ||||
// Write the number of packets | // Write the number of packets | ||||
size_t size = jack_ringbuffer_write(ringbuffer, (char*)&pktlist->numPackets, sizeof(UInt32)); | |||||
if (size != sizeof(UInt32)) { | |||||
size_t size = jack_ringbuffer_write_space(ringbuffer); | |||||
if (size < sizeof(UInt32)) { | |||||
jack_error("ReadProc : ring buffer is full, skip events..."); | jack_error("ReadProc : ring buffer is full, skip events..."); | ||||
return; | return; | ||||
} | |||||
} | |||||
jack_ringbuffer_write(ringbuffer, (char*)&pktlist->numPackets, sizeof(UInt32)); | |||||
for (unsigned int i = 0; i < pktlist->numPackets; ++i) { | for (unsigned int i = 0; i < pktlist->numPackets; ++i) { | ||||
@@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
#include "JackFifo.h" | #include "JackFifo.h" | ||||
#include "JackTools.h" | #include "JackTools.h" | ||||
#include "JackError.h" | #include "JackError.h" | ||||
#include "JackConstants.h" | |||||
#include "JackPlatformPlug.h" | |||||
#include <sys/types.h> | #include <sys/types.h> | ||||
#include <sys/stat.h> | #include <sys/stat.h> | ||||
#include <unistd.h> | #include <unistd.h> | ||||
@@ -20,6 +20,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||||
#ifndef __JackPlatformPlug_sun__ | #ifndef __JackPlatformPlug_sun__ | ||||
#define __JackPlatformPlug_sun__ | #define __JackPlatformPlug_sun__ | ||||
#define jack_server_dir "/tmp" | |||||
#define jack_client_dir "/tmp" | |||||
#define JACK_DEFAULT_DRIVER "oss" | |||||
namespace Jack | namespace Jack | ||||
{ | { | ||||
struct JackRequest; | struct JackRequest; | ||||
@@ -21,6 +21,10 @@ | |||||
#ifndef __JackPlatformPlug_WIN32__ | #ifndef __JackPlatformPlug_WIN32__ | ||||
#define __JackPlatformPlug_WIN32__ | #define __JackPlatformPlug_WIN32__ | ||||
#define jack_server_dir "server" | |||||
#define jack_client_dir "client" | |||||
#define ADDON_DIR "jack" | |||||
namespace Jack | namespace Jack | ||||
{ | { | ||||
struct JackRequest; | struct JackRequest; | ||||