diff --git a/common/JackAudioAdapterFactory.cpp b/common/JackAudioAdapterFactory.cpp index a76d90ac..85d14d97 100644 --- a/common/JackAudioAdapterFactory.cpp +++ b/common/JackAudioAdapterFactory.cpp @@ -86,13 +86,9 @@ extern "C" jack_driver_desc_t *desc = jack_get_descriptor(); JackArgParser parser(load_init); - - if (parser.GetArgc() > 0) - { - if (parser.ParseParams(desc, ¶ms) != 0) - jack_error("Internal client : JackArgParser::ParseParams error."); - } - + if (parser.GetArgc() > 0) + parser.ParseParams(desc, ¶ms); + int res = jack_internal_initialize(jack_client, params); parser.FreeParams(params); return res; @@ -102,8 +98,7 @@ extern "C" { Jack::JackAudioAdapter* adapter = static_cast(arg); - if (adapter) - { + if (adapter) { jack_log("Unloading audioadapter"); adapter->Close(); delete adapter; diff --git a/common/JackNetAdapter.cpp b/common/JackNetAdapter.cpp index cf18550e..e00da30f 100644 --- a/common/JackNetAdapter.cpp +++ b/common/JackNetAdapter.cpp @@ -547,12 +547,10 @@ extern "C" JSList* params = NULL; jack_driver_desc_t *desc = jack_get_descriptor(); - JackArgParser parser ( load_init ); - - if ( parser.GetArgc() > 0 ) - if ( parser.ParseParams ( desc, ¶ms ) != 0 ) - jack_error ( "Internal client : JackArgParser::ParseParams error." ); - + JackArgParser parser(load_init); + if (parser.GetArgc() > 0) + parser.ParseParams (desc, ¶ms); + int res = jack_internal_initialize(jack_client, params); parser.FreeParams(params); return res; @@ -562,8 +560,7 @@ extern "C" { Jack::JackAudioAdapter* adapter = static_cast ( arg ); - if ( adapter ) - { + if (adapter) { jack_log ( "Unloading netadapter" ); adapter->Close(); delete adapter; diff --git a/common/JackNetManager.cpp b/common/JackNetManager.cpp index a5899b70..3d64e9e7 100644 --- a/common/JackNetManager.cpp +++ b/common/JackNetManager.cpp @@ -742,14 +742,11 @@ extern "C" { JSList* params = NULL; jack_driver_desc_t* desc = jack_get_descriptor(); - Jack::JackArgParser parser ( load_init ); - - if ( parser.GetArgc() > 0 ) - { - if ( parser.ParseParams ( desc, ¶ms ) < 0 ) - jack_error ( "Internal client JackArgParser::ParseParams error." ); - } - + + Jack::JackArgParser parser(load_init); + if (parser.GetArgc() > 0) + parser.ParseParams(desc, ¶ms); + int res = jack_internal_initialize(jack_client, params); parser.FreeParams(params); return res; @@ -757,8 +754,7 @@ extern "C" EXPORT void jack_finish ( void* arg ) { - if ( master_manager ) - { + if (master_manager) { jack_log ( "Unloading Master Manager" ); delete master_manager; master_manager = NULL; diff --git a/common/JackTools.cpp b/common/JackTools.cpp index 213d0d39..e4fc9604 100644 --- a/common/JackTools.cpp +++ b/common/JackTools.cpp @@ -26,6 +26,7 @@ #include "JackTools.h" #include #include +#include #ifdef WIN32 #include @@ -38,7 +39,8 @@ namespace Jack { #define DEFAULT_TMP_DIR "/tmp" char* jack_tmpdir = (char*)DEFAULT_TMP_DIR; - int JackTools::GetPID() { + int JackTools::GetPID() + { #ifdef WIN32 return _getpid(); #else @@ -46,7 +48,8 @@ namespace Jack { #endif } - int JackTools::GetUID() { + int JackTools::GetUID() + { #ifdef WIN32 return _getpid(); //#error "No getuid function available" @@ -55,7 +58,8 @@ namespace Jack { #endif } - const char* JackTools::DefaultServerName() { + const char* JackTools::DefaultServerName() + { const char* server_name; if ((server_name = getenv("JACK_DEFAULT_SERVER")) == NULL) server_name = JACK_DEFAULT_SERVER_NAME; @@ -65,22 +69,26 @@ namespace Jack { /* returns the name of the per-user subdirectory of jack_tmpdir */ #ifdef WIN32 - char* JackTools::UserDir() { + char* JackTools::UserDir() + { return ""; } - char* JackTools::ServerDir(const char* server_name, char* server_dir) { + char* JackTools::ServerDir(const char* server_name, char* server_dir) + { return ""; } void JackTools::CleanupFiles(const char* server_name) {} - int JackTools::GetTmpdir() { + int JackTools::GetTmpdir() + { return 0; } #else - char* JackTools::UserDir() { + char* JackTools::UserDir() + { static char user_dir[PATH_MAX + 1] = ""; /* format the path name on the first call */ @@ -96,7 +104,8 @@ namespace Jack { } /* returns the name of the per-server subdirectory of jack_user_dir() */ - char* JackTools::ServerDir(const char* server_name, char* server_dir) { + char* JackTools::ServerDir(const char* server_name, char* server_dir) + { /* format the path name into the suppled server_dir char array, * assuming that server_dir is at least as large as PATH_MAX+1 */ @@ -104,7 +113,8 @@ namespace Jack { return server_dir; } - void JackTools::CleanupFiles(const char* server_name) { + void JackTools::CleanupFiles(const char* server_name) + { DIR* dir; struct dirent *dirent; char dir_name[PATH_MAX + 1] = ""; @@ -322,7 +332,7 @@ namespace Jack { free((void*)argv); } - int JackArgParser::ParseParams ( jack_driver_desc_t* desc, JSList** param_list ) + void JackArgParser::ParseParams ( jack_driver_desc_t* desc, JSList** param_list ) { string options_list; unsigned long i = 0; @@ -347,26 +357,27 @@ namespace Jack { switch ( desc->params[param_id].type ) { case JackDriverParamInt: - intclient_param->value.i = atoi ( fArgv[param + 1].c_str() ); + if (param + 1 < fArgv.size()) // something to parse + intclient_param->value.i = atoi ( fArgv[param + 1].c_str() ); break; + case JackDriverParamUInt: - intclient_param->value.ui = strtoul ( fArgv[param + 1].c_str(), NULL, 10 ); + if (param + 1 < fArgv.size()) // something to parse + intclient_param->value.ui = strtoul ( fArgv[param + 1].c_str(), NULL, 10 ); break; + case JackDriverParamChar: - intclient_param->value.c = fArgv[param + 1][0]; + if (param + 1 < fArgv.size()) // something to parse + intclient_param->value.c = fArgv[param + 1][0]; break; + case JackDriverParamString: - fArgv[param + 1].copy ( intclient_param->value.str, min(static_cast(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX) ); + if (param + 1 < fArgv.size()) // something to parse + fArgv[param + 1].copy ( intclient_param->value.str, min(static_cast(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX) ); break; + case JackDriverParamBool: - if ( ( fArgv[param + 1].compare ( "false" ) == 0 ) || - ( fArgv[param + 1].compare ( "off" ) == 0 ) || - ( fArgv[param + 1].compare ( "no" ) == 0 ) || - ( fArgv[param + 1].compare ( "0" ) == 0 ) || - ( fArgv[param + 1].compare ( "(null)" ) == 0 ) ) - intclient_param->value.i = false; - else - intclient_param->value.i = true; + intclient_param->value.i = true; break; } //add to the list @@ -378,10 +389,8 @@ namespace Jack { } } - if ( param_list ) - *param_list = params; - - return 0; + assert(param_list); + *param_list = params; } void JackArgParser::FreeParams ( JSList* param_list ) diff --git a/common/JackTools.h b/common/JackTools.h index 464eada4..5cbf381e 100644 --- a/common/JackTools.h +++ b/common/JackTools.h @@ -85,7 +85,7 @@ namespace Jack int GetArgv ( std::vector& argv ); int GetArgv ( char** argv ); void DeleteArgv ( const char** argv ); - int ParseParams ( jack_driver_desc_t* desc, JSList** param_list ); + void ParseParams ( jack_driver_desc_t* desc, JSList** param_list ); void FreeParams ( JSList* param_list ); };