diff --git a/ChangeLog b/ChangeLog index fe079232..fa496293 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,10 @@ Marc-Olivier Barre Jackdmp changes log --------------------------- +2008-03-07 Stephane Letz + + * Define an internal jack_client_open_aux needed for library wrapper feature. + 2008-03-06 Stephane Letz * Marc-Olivier Barre scons patch (3). diff --git a/common/JackAPI.cpp b/common/JackAPI.cpp index 808b661e..312b580a 100644 --- a/common/JackAPI.cpp +++ b/common/JackAPI.cpp @@ -48,7 +48,10 @@ extern "C" { #endif - EXPORT jack_client_t * jack_client_open (const char *client_name, + EXPORT jack_client_t * jack_client_open_aux (const char *client_name, + jack_options_t options, + jack_status_t *status, ...); + EXPORT jack_client_t * jack_client_open (const char *client_name, jack_options_t options, jack_status_t *status, ...); EXPORT jack_client_t * jack_client_new (const char *client_name); @@ -260,7 +263,7 @@ EXPORT jack_client_t* jack_client_new(const char* client_name) int options = JackUseExactName; if (getenv("JACK_START_SERVER") == NULL) options |= JackNoStartServer; - return jack_client_open(client_name, (jack_options_t)options, NULL); + return jack_client_open_aux(client_name, (jack_options_t)options, NULL); } EXPORT void* jack_port_get_buffer(jack_port_t* port, jack_nframes_t frames) diff --git a/common/JackAPIWrapper.cpp b/common/JackAPIWrapper.cpp index 5641219b..19605df0 100644 --- a/common/JackAPIWrapper.cpp +++ b/common/JackAPIWrapper.cpp @@ -31,10 +31,6 @@ extern "C" { #endif - EXPORT jack_client_t * jack_client_open (const char *client_name, - jack_options_t options, - jack_status_t *status, ...); - EXPORT jack_client_t * jack_client_new (const char *client_name); EXPORT int jack_client_name_size (void); EXPORT char* jack_get_client_name (jack_client_t *client); EXPORT int jack_internal_client_new (const char *client_name, @@ -828,6 +824,8 @@ typedef jack_client_t * (*jack_client_open_fun_def)(const char *client_name, jac static jack_client_open_fun_def jack_client_open_fun = 0; EXPORT jack_client_t * jack_client_open(const char *client_name, jack_options_t options, jack_status_t *status, ...) { + // TODO : in "autodstart mode", has to load jackdrc file and figure out which server has to be started... + // Library check... if (!open_library()) return 0; diff --git a/common/JackLibAPI.cpp b/common/JackLibAPI.cpp index 359710fe..92c4e00f 100644 --- a/common/JackLibAPI.cpp +++ b/common/JackLibAPI.cpp @@ -39,7 +39,10 @@ extern "C" { #endif - EXPORT jack_client_t * jack_client_open (const char *client_name, + EXPORT jack_client_t * jack_client_open_aux (const char *client_name, + jack_options_t options, + jack_status_t *status, ...); + EXPORT jack_client_t * jack_client_open (const char *client_name, jack_options_t options, jack_status_t *status, ...); EXPORT int jack_client_close (jack_client_t *client); @@ -51,7 +54,7 @@ extern "C" JackLibGlobals* JackLibGlobals::fGlobals = NULL; int JackLibGlobals::fClientCount = 0; -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_aux(const char* ext_client_name, jack_options_t options, jack_status_t* status, ...) { va_list ap; /* variable argument pointer */ jack_varargs_t va; /* variable arguments */ @@ -80,7 +83,7 @@ EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options JackLog("jack_client_open %s\n", client_name); if (client_name == NULL) { - jack_error("jack_client_new called with a NULL client_name"); + jack_error("jack_client_open called with a NULL client_name"); return NULL; } @@ -116,6 +119,15 @@ EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options } } +EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options_t options, jack_status_t* status, ...) +{ + va_list ap; + va_start(ap, status); + jack_client_t* res = jack_client_open_aux(ext_client_name, options, status, ap); + va_end(ap); + return res; +} + EXPORT int jack_client_close(jack_client_t* ext_client) { JackLog("jack_client_close\n"); diff --git a/common/JackServerAPI.cpp b/common/JackServerAPI.cpp index b99ce34d..0bb4e6dc 100644 --- a/common/JackServerAPI.cpp +++ b/common/JackServerAPI.cpp @@ -42,6 +42,9 @@ extern "C" { #endif + EXPORT jack_client_t * jack_client_open_aux (const char *client_name, + jack_options_t options, + jack_status_t *status, ...); EXPORT jack_client_t * jack_client_open (const char *client_name, jack_options_t options, jack_status_t *status, ...); @@ -53,7 +56,7 @@ extern "C" using namespace Jack; -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_aux(const char* ext_client_name, jack_options_t options, jack_status_t* status, ...) { va_list ap; /* variable argument pointer */ jack_varargs_t va; /* variable arguments */ @@ -81,7 +84,7 @@ EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options JackLog("jack_client_open %s\n", client_name); if (client_name == NULL) { - jack_error("jack_client_new called with a NULL client_name"); + jack_error("jack_client_open called with a NULL client_name"); return NULL; } @@ -113,6 +116,15 @@ EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options } } +EXPORT jack_client_t* jack_client_open(const char* ext_client_name, jack_options_t options, jack_status_t* status, ...) +{ + va_list ap; + va_start(ap, status); + jack_client_t* res = jack_client_open_aux(ext_client_name, options, status, ap); + va_end(ap); + return res; +} + EXPORT int jack_client_close(jack_client_t* ext_client) { JackLog("jack_client_close\n");