git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4002 0c269be4-1314-0410-8aa9-9f06e86f4224tags/v1.9.6
| @@ -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) { | ||||
| @@ -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,7 +55,60 @@ 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_status_t my_status; | |||||
| JackClient* client; | |||||
| if (client_name == NULL) { | |||||
| jack_error("jack_client_new called with a NULL client_name"); | |||||
| return NULL; | |||||
| } | |||||
| jack_log("jack_client_new %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_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 { | |||||
| 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_varargs_t va; /* variable arguments */ | ||||
| jack_status_t my_status; | jack_status_t my_status; | ||||
| @@ -111,10 +167,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,7 +51,58 @@ 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_status_t my_status; | |||||
| JackClient* client; | |||||
| if (client_name == NULL) { | |||||
| jack_error("jack_client_new called with a NULL client_name"); | |||||
| return NULL; | |||||
| } | |||||
| jack_log("jack_client_new %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_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 { | |||||
| 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_varargs_t va; /* variable arguments */ | ||||
| jack_status_t my_status; | jack_status_t my_status; | ||||