git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3274 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.1
| @@ -23,6 +23,10 @@ Michael Voigt | |||
| Jackdmp changes log | |||
| --------------------------- | |||
| 2009-01-29 Stephane Letz <letz@grame.fr> | |||
| * Support for "-h" option in internal clients to print the parameters. | |||
| 2009-01-28 Stephane Letz <letz@grame.fr> | |||
| * Support for BIG_ENDIAN machines in NetJack2. | |||
| @@ -0,0 +1,231 @@ | |||
| /* | |||
| Copyright (C) 2006-2008 Grame | |||
| This program is free software; you can redistribute it and/or modify | |||
| it under the terms of the GNU Lesser General Public License as published by | |||
| the Free Software Foundation; either version 2.1 of the License, or | |||
| (at your option) any later version. | |||
| This program is distributed in the hope that it will be useful, | |||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| GNU Lesser General Public License for more details. | |||
| You should have received a copy of the GNU Lesser General Public License | |||
| along with this program; if not, write to the Free Software | |||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
| */ | |||
| #include "JackDriverLoader.h" | |||
| #include "JackArgParser.h" | |||
| #include <stdlib.h> | |||
| #include <stdio.h> | |||
| #include <assert.h> | |||
| using namespace std; | |||
| namespace Jack { | |||
| // class JackArgParser *************************************************** | |||
| JackArgParser::JackArgParser ( const char* arg ) | |||
| { | |||
| jack_log ( "JackArgParser::JackArgParser, arg_string : '%s'", arg ); | |||
| fArgc = 0; | |||
| //if empty string | |||
| if ( strlen(arg) == 0 ) | |||
| return; | |||
| fArgString = string(arg); | |||
| //else parse the arg string | |||
| const size_t arg_len = fArgString.length(); | |||
| unsigned int i = 0; | |||
| size_t pos = 0; | |||
| size_t start = 0; | |||
| size_t copy_start = 0; | |||
| size_t copy_length = 0; | |||
| //we need a 'space terminated' string | |||
| fArgString += " "; | |||
| //first fill a vector with args | |||
| do { | |||
| //find the first non-space character from the actual position | |||
| start = fArgString.find_first_not_of ( ' ', start ); | |||
| //get the next quote or space position | |||
| pos = fArgString.find_first_of ( " \"" , start ); | |||
| //no more quotes or spaces, consider the end of the string | |||
| if ( pos == string::npos ) | |||
| pos = arg_len; | |||
| //if double quote | |||
| if ( fArgString[pos] == '\"' ) { | |||
| //first character : copy the substring | |||
| if ( pos == start ) { | |||
| copy_start = start + 1; | |||
| pos = fArgString.find ( '\"', ++pos ); | |||
| copy_length = pos - copy_start; | |||
| start = pos + 1; | |||
| } | |||
| //else there is someting before the quote, first copy that | |||
| else { | |||
| copy_start = start; | |||
| copy_length = pos - copy_start; | |||
| start = pos; | |||
| } | |||
| } | |||
| //if space | |||
| if ( fArgString[pos] == ' ' ) { | |||
| //short option descriptor | |||
| if ( ( fArgString[start] == '-' ) && ( fArgString[start + 1] != '-' ) ) { | |||
| copy_start = start; | |||
| copy_length = 2; | |||
| start += copy_length; | |||
| } | |||
| //else copy all the space delimitated string | |||
| else { | |||
| copy_start = start; | |||
| copy_length = pos - copy_start; | |||
| start = pos + 1; | |||
| } | |||
| } | |||
| //then push the substring to the args vector | |||
| fArgv.push_back ( fArgString.substr ( copy_start, copy_length ) ); | |||
| jack_log ( "JackArgParser::JackArgParser, add : '%s'", (*fArgv.rbegin()).c_str() ); | |||
| } while ( start < arg_len ); | |||
| //finally count the options | |||
| for ( i = 0; i < fArgv.size(); i++ ) | |||
| if ( fArgv[i].at(0) == '-' ) | |||
| fArgc++; | |||
| } | |||
| JackArgParser::~JackArgParser() | |||
| {} | |||
| string JackArgParser::GetArgString() | |||
| { | |||
| return fArgString; | |||
| } | |||
| int JackArgParser::GetNumArgv() | |||
| { | |||
| return fArgv.size(); | |||
| } | |||
| int JackArgParser::GetArgc() | |||
| { | |||
| return fArgc; | |||
| } | |||
| int JackArgParser::GetArgv ( vector<string>& argv ) | |||
| { | |||
| argv = fArgv; | |||
| return 0; | |||
| } | |||
| int JackArgParser::GetArgv ( char** argv ) | |||
| { | |||
| //argv must be NULL | |||
| if ( argv ) | |||
| return -1; | |||
| //else allocate and fill it | |||
| argv = (char**)calloc (fArgv.size(), sizeof(char*)); | |||
| for ( unsigned int i = 0; i < fArgv.size(); i++ ) | |||
| { | |||
| argv[i] = (char*)calloc(fArgv[i].length(), sizeof(char)); | |||
| fill_n ( argv[i], fArgv[i].length() + 1, 0 ); | |||
| fArgv[i].copy ( argv[i], fArgv[i].length() ); | |||
| } | |||
| return 0; | |||
| } | |||
| void JackArgParser::DeleteArgv ( const char** argv ) | |||
| { | |||
| unsigned int i; | |||
| for ( i = 0; i < fArgv.size(); i++ ) | |||
| free((void*)argv[i]); | |||
| free((void*)argv); | |||
| } | |||
| bool JackArgParser::ParseParams ( jack_driver_desc_t* desc, JSList** param_list ) | |||
| { | |||
| string options_list; | |||
| unsigned long i = 0; | |||
| unsigned int param = 0; | |||
| size_t param_id = 0; | |||
| JSList* params = NULL; | |||
| jack_driver_param_t* intclient_param; | |||
| for ( i = 0; i < desc->nparams; i++ ) | |||
| options_list += desc->params[i].character; | |||
| for ( param = 0; param < fArgv.size(); param++ ) | |||
| { | |||
| if ( fArgv[param][0] == '-' ) | |||
| { | |||
| //valid option | |||
| if ( ( param_id = options_list.find_first_of ( fArgv[param].at(1) ) ) != string::npos ) | |||
| { | |||
| intclient_param = static_cast<jack_driver_param_t*> ( calloc ( 1, sizeof ( jack_driver_param_t) ) ); | |||
| intclient_param->character = desc->params[param_id].character; | |||
| switch ( desc->params[param_id].type ) | |||
| { | |||
| case JackDriverParamInt: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| intclient_param->value.i = atoi ( fArgv[param + 1].c_str() ); | |||
| break; | |||
| case JackDriverParamUInt: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| intclient_param->value.ui = strtoul ( fArgv[param + 1].c_str(), NULL, 10 ); | |||
| break; | |||
| case JackDriverParamChar: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| intclient_param->value.c = fArgv[param + 1][0]; | |||
| break; | |||
| case JackDriverParamString: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| fArgv[param + 1].copy ( intclient_param->value.str, min(static_cast<int>(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX) ); | |||
| break; | |||
| case JackDriverParamBool: | |||
| intclient_param->value.i = true; | |||
| break; | |||
| } | |||
| //add to the list | |||
| params = jack_slist_append ( params, intclient_param ); | |||
| } | |||
| //invalid option | |||
| else { | |||
| if (fArgv[param][1] == 'h') { | |||
| fprintf(stdout, "Internal client parameters:\n"); | |||
| jack_print_driver_options (desc, stdout); | |||
| return false; | |||
| } else { | |||
| jack_error ( "Invalid option '%c'", fArgv[param][1] ); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| assert(param_list); | |||
| *param_list = params; | |||
| return true; | |||
| } | |||
| void JackArgParser::FreeParams ( JSList* param_list ) | |||
| { | |||
| JSList *node_ptr = param_list; | |||
| JSList *next_node_ptr; | |||
| while (node_ptr) { | |||
| next_node_ptr = node_ptr->next; | |||
| free(node_ptr->data); | |||
| free(node_ptr); | |||
| node_ptr = next_node_ptr; | |||
| } | |||
| } | |||
| } | |||
| @@ -0,0 +1,61 @@ | |||
| /* | |||
| Copyright (C) 2006-2008 Grame | |||
| This program is free software; you can redistribute it and/or modify | |||
| it under the terms of the GNU Lesser General Public License as published by | |||
| the Free Software Foundation; either version 2.1 of the License, or | |||
| (at your option) any later version. | |||
| This program is distributed in the hope that it will be useful, | |||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| GNU Lesser General Public License for more details. | |||
| You should have received a copy of the GNU Lesser General Public License | |||
| along with this program; if not, write to the Free Software | |||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |||
| */ | |||
| #ifndef __JackArgParser__ | |||
| #define __JackArgParser__ | |||
| #include "jslist.h" | |||
| #include "driver_interface.h" | |||
| #include "JackCompilerDeps.h" | |||
| #include "JackError.h" | |||
| #include <string> | |||
| #include <algorithm> | |||
| #include <vector> | |||
| #include <iostream> | |||
| #include <fstream> | |||
| namespace Jack | |||
| { | |||
| class SERVER_EXPORT JackArgParser | |||
| { | |||
| private: | |||
| std::string fArgString; | |||
| int fArgc; | |||
| std::vector<std::string> fArgv; | |||
| public: | |||
| JackArgParser ( const char* arg ); | |||
| ~JackArgParser(); | |||
| std::string GetArgString(); | |||
| int GetNumArgv(); | |||
| int GetArgc(); | |||
| int GetArgv ( std::vector<std::string>& argv ); | |||
| int GetArgv ( char** argv ); | |||
| void DeleteArgv ( const char** argv ); | |||
| bool ParseParams ( jack_driver_desc_t* desc, JSList** param_list ); | |||
| void FreeParams ( JSList* param_list ); | |||
| }; | |||
| } | |||
| #endif | |||
| @@ -18,7 +18,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| */ | |||
| #include "JackAudioAdapter.h" | |||
| #include "JackTools.h" | |||
| #include "JackArgParser.h" | |||
| #include <stdio.h> | |||
| #include <stdlib.h> | |||
| #include <assert.h> | |||
| @@ -83,14 +83,18 @@ extern "C" | |||
| SERVER_EXPORT int jack_initialize(jack_client_t* jack_client, const char* load_init) | |||
| { | |||
| JSList* params = NULL; | |||
| jack_driver_desc_t *desc = jack_get_descriptor(); | |||
| JackArgParser parser(load_init); | |||
| if (parser.GetArgc() > 0) | |||
| parser.ParseParams(desc, ¶ms); | |||
| int res = jack_internal_initialize(jack_client, params); | |||
| parser.FreeParams(params); | |||
| bool parse_params = true; | |||
| int res = 1; | |||
| jack_driver_desc_t* desc = jack_get_descriptor(); | |||
| Jack::JackArgParser parser ( load_init ); | |||
| if ( parser.GetArgc() > 0 ) | |||
| parse_params = parser.ParseParams ( desc, ¶ms ); | |||
| if (parse_params) { | |||
| res = jack_internal_initialize ( jack_client, params ); | |||
| parser.FreeParams ( params ); | |||
| } | |||
| return res; | |||
| } | |||
| @@ -32,8 +32,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| jack_driver_desc_t * jackctl_driver_get_desc(jackctl_driver_t * driver); | |||
| static void | |||
| jack_print_driver_options (jack_driver_desc_t * desc, FILE *file) | |||
| SERVER_EXPORT void jack_print_driver_options (jack_driver_desc_t* desc, FILE* file) | |||
| { | |||
| unsigned long i; | |||
| char arg_default[JACK_DRIVER_PARAM_STRING_MAX + 1]; | |||
| @@ -64,6 +64,7 @@ JSList * jack_internals_load (JSList * internals); | |||
| SERVER_EXPORT int jackctl_parse_driver_params (jackctl_driver * driver_ptr, int argc, char* argv[]); | |||
| SERVER_EXPORT void jack_free_driver_params(JSList * param_ptr); | |||
| SERVER_EXPORT void jack_print_driver_options(jack_driver_desc_t* desc, FILE* file); | |||
| #endif | |||
| @@ -20,6 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| #include "JackException.h" | |||
| #include "JackServerGlobals.h" | |||
| #include "JackEngineControl.h" | |||
| #include "JackArgParser.h" | |||
| namespace Jack | |||
| { | |||
| @@ -134,7 +135,7 @@ namespace Jack | |||
| { | |||
| jack_log ( "JackNetAdapter::Open" ); | |||
| jack_info ( "Net adapter started in %s mode %s Master's transport sync.", | |||
| jack_info ( "NetAdapter started in %s mode %s Master's transport sync.", | |||
| ( fParams.fSlaveSyncMode ) ? "sync" : "async", ( fParams.fTransportSync ) ? "with" : "without" ); | |||
| if ( fThread.StartSync() < 0 ) | |||
| @@ -556,14 +557,18 @@ extern "C" | |||
| SERVER_EXPORT int jack_initialize ( jack_client_t* jack_client, const char* load_init ) | |||
| { | |||
| JSList* params = NULL; | |||
| jack_driver_desc_t *desc = jack_get_descriptor(); | |||
| JackArgParser parser(load_init); | |||
| if (parser.GetArgc() > 0) | |||
| parser.ParseParams (desc, ¶ms); | |||
| int res = jack_internal_initialize(jack_client, params); | |||
| parser.FreeParams(params); | |||
| bool parse_params = true; | |||
| int res = 1; | |||
| jack_driver_desc_t* desc = jack_get_descriptor(); | |||
| Jack::JackArgParser parser ( load_init ); | |||
| if ( parser.GetArgc() > 0 ) | |||
| parse_params = parser.ParseParams ( desc, ¶ms ); | |||
| if (parse_params) { | |||
| res = jack_internal_initialize ( jack_client, params ); | |||
| parser.FreeParams ( params ); | |||
| } | |||
| return res; | |||
| } | |||
| @@ -17,6 +17,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||
| */ | |||
| #include "JackNetManager.h" | |||
| #include "JackArgParser.h" | |||
| using namespace std; | |||
| @@ -743,14 +744,18 @@ extern "C" | |||
| SERVER_EXPORT int jack_initialize ( jack_client_t* jack_client, const char* load_init ) | |||
| { | |||
| JSList* params = NULL; | |||
| bool parse_params = true; | |||
| int res = 1; | |||
| jack_driver_desc_t* desc = jack_get_descriptor(); | |||
| Jack::JackArgParser parser ( load_init ); | |||
| if ( parser.GetArgc() > 0 ) | |||
| parser.ParseParams ( desc, ¶ms ); | |||
| parse_params = parser.ParseParams ( desc, ¶ms ); | |||
| int res = jack_internal_initialize ( jack_client, params ); | |||
| parser.FreeParams ( params ); | |||
| if (parse_params) { | |||
| res = jack_internal_initialize ( jack_client, params ); | |||
| parser.FreeParams ( params ); | |||
| } | |||
| return res; | |||
| } | |||
| @@ -210,197 +210,5 @@ namespace Jack { | |||
| new_name[i] = '\0'; | |||
| } | |||
| // class JackArgParser *************************************************** | |||
| JackArgParser::JackArgParser ( const char* arg ) | |||
| { | |||
| jack_log ( "JackArgParser::JackArgParser, arg_string : '%s'", arg ); | |||
| fArgc = 0; | |||
| //if empty string | |||
| if ( strlen(arg) == 0 ) | |||
| return; | |||
| fArgString = string(arg); | |||
| //else parse the arg string | |||
| const size_t arg_len = fArgString.length(); | |||
| unsigned int i = 0; | |||
| size_t pos = 0; | |||
| size_t start = 0; | |||
| size_t copy_start = 0; | |||
| size_t copy_length = 0; | |||
| //we need a 'space terminated' string | |||
| fArgString += " "; | |||
| //first fill a vector with args | |||
| do { | |||
| //find the first non-space character from the actual position | |||
| start = fArgString.find_first_not_of ( ' ', start ); | |||
| //get the next quote or space position | |||
| pos = fArgString.find_first_of ( " \"" , start ); | |||
| //no more quotes or spaces, consider the end of the string | |||
| if ( pos == string::npos ) | |||
| pos = arg_len; | |||
| //if double quote | |||
| if ( fArgString[pos] == '\"' ) { | |||
| //first character : copy the substring | |||
| if ( pos == start ) { | |||
| copy_start = start + 1; | |||
| pos = fArgString.find ( '\"', ++pos ); | |||
| copy_length = pos - copy_start; | |||
| start = pos + 1; | |||
| } | |||
| //else there is someting before the quote, first copy that | |||
| else { | |||
| copy_start = start; | |||
| copy_length = pos - copy_start; | |||
| start = pos; | |||
| } | |||
| } | |||
| //if space | |||
| if ( fArgString[pos] == ' ' ) { | |||
| //short option descriptor | |||
| if ( ( fArgString[start] == '-' ) && ( fArgString[start + 1] != '-' ) ) { | |||
| copy_start = start; | |||
| copy_length = 2; | |||
| start += copy_length; | |||
| } | |||
| //else copy all the space delimitated string | |||
| else { | |||
| copy_start = start; | |||
| copy_length = pos - copy_start; | |||
| start = pos + 1; | |||
| } | |||
| } | |||
| //then push the substring to the args vector | |||
| fArgv.push_back ( fArgString.substr ( copy_start, copy_length ) ); | |||
| jack_log ( "JackArgParser::JackArgParser, add : '%s'", (*fArgv.rbegin()).c_str() ); | |||
| } while ( start < arg_len ); | |||
| //finally count the options | |||
| for ( i = 0; i < fArgv.size(); i++ ) | |||
| if ( fArgv[i].at(0) == '-' ) | |||
| fArgc++; | |||
| } | |||
| JackArgParser::~JackArgParser() | |||
| {} | |||
| string JackArgParser::GetArgString() | |||
| { | |||
| return fArgString; | |||
| } | |||
| int JackArgParser::GetNumArgv() | |||
| { | |||
| return fArgv.size(); | |||
| } | |||
| int JackArgParser::GetArgc() | |||
| { | |||
| return fArgc; | |||
| } | |||
| int JackArgParser::GetArgv ( vector<string>& argv ) | |||
| { | |||
| argv = fArgv; | |||
| return 0; | |||
| } | |||
| int JackArgParser::GetArgv ( char** argv ) | |||
| { | |||
| //argv must be NULL | |||
| if ( argv ) | |||
| return -1; | |||
| //else allocate and fill it | |||
| argv = (char**)calloc (fArgv.size(), sizeof(char*)); | |||
| for ( unsigned int i = 0; i < fArgv.size(); i++ ) | |||
| { | |||
| argv[i] = (char*)calloc(fArgv[i].length(), sizeof(char)); | |||
| fill_n ( argv[i], fArgv[i].length() + 1, 0 ); | |||
| fArgv[i].copy ( argv[i], fArgv[i].length() ); | |||
| } | |||
| return 0; | |||
| } | |||
| void JackArgParser::DeleteArgv ( const char** argv ) | |||
| { | |||
| unsigned int i; | |||
| for ( i = 0; i < fArgv.size(); i++ ) | |||
| free((void*)argv[i]); | |||
| free((void*)argv); | |||
| } | |||
| void JackArgParser::ParseParams ( jack_driver_desc_t* desc, JSList** param_list ) | |||
| { | |||
| string options_list; | |||
| unsigned long i = 0; | |||
| unsigned int param = 0; | |||
| size_t param_id = 0; | |||
| JSList* params = NULL; | |||
| jack_driver_param_t* intclient_param; | |||
| for ( i = 0; i < desc->nparams; i++ ) | |||
| options_list += desc->params[i].character; | |||
| for ( param = 0; param < fArgv.size(); param++ ) | |||
| { | |||
| if ( fArgv[param][0] == '-' ) | |||
| { | |||
| //valid option | |||
| if ( ( param_id = options_list.find_first_of ( fArgv[param].at(1) ) ) != string::npos ) | |||
| { | |||
| intclient_param = static_cast<jack_driver_param_t*> ( calloc ( 1, sizeof ( jack_driver_param_t) ) ); | |||
| intclient_param->character = desc->params[param_id].character; | |||
| switch ( desc->params[param_id].type ) | |||
| { | |||
| case JackDriverParamInt: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| intclient_param->value.i = atoi ( fArgv[param + 1].c_str() ); | |||
| break; | |||
| case JackDriverParamUInt: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| intclient_param->value.ui = strtoul ( fArgv[param + 1].c_str(), NULL, 10 ); | |||
| break; | |||
| case JackDriverParamChar: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| intclient_param->value.c = fArgv[param + 1][0]; | |||
| break; | |||
| case JackDriverParamString: | |||
| if (param + 1 < fArgv.size()) // something to parse | |||
| fArgv[param + 1].copy ( intclient_param->value.str, min(static_cast<int>(fArgv[param + 1].length()), JACK_DRIVER_PARAM_STRING_MAX) ); | |||
| break; | |||
| case JackDriverParamBool: | |||
| intclient_param->value.i = true; | |||
| break; | |||
| } | |||
| //add to the list | |||
| params = jack_slist_append ( params, intclient_param ); | |||
| } | |||
| //invalid option | |||
| else | |||
| jack_error ( "Invalid option '%c'", fArgv[param][1] ); | |||
| } | |||
| } | |||
| assert(param_list); | |||
| *param_list = params; | |||
| } | |||
| void JackArgParser::FreeParams ( JSList* param_list ) | |||
| { | |||
| JSList *node_ptr = param_list; | |||
| JSList *next_node_ptr; | |||
| while (node_ptr) { | |||
| next_node_ptr = node_ptr->next; | |||
| free(node_ptr->data); | |||
| free(node_ptr); | |||
| node_ptr = next_node_ptr; | |||
| } | |||
| } | |||
| } | |||
| @@ -63,32 +63,6 @@ namespace Jack | |||
| static void RewriteName ( const char* name, char* new_name ); | |||
| }; | |||
| /*! | |||
| \brief Internal cient command line parser. | |||
| */ | |||
| class SERVER_EXPORT JackArgParser | |||
| { | |||
| private: | |||
| std::string fArgString; | |||
| int fArgc; | |||
| std::vector<std::string> fArgv; | |||
| public: | |||
| JackArgParser ( const char* arg ); | |||
| ~JackArgParser(); | |||
| std::string GetArgString(); | |||
| int GetNumArgv(); | |||
| int GetArgc(); | |||
| int GetArgv ( std::vector<std::string>& argv ); | |||
| int GetArgv ( char** argv ); | |||
| void DeleteArgv ( const char** argv ); | |||
| void ParseParams ( jack_driver_desc_t* desc, JSList** param_list ); | |||
| void FreeParams ( JSList* param_list ); | |||
| }; | |||
| /*! | |||
| \brief Generic monitoring class. Saves data to GnuPlot files ('.plt' and '.log' datafile) | |||
| @@ -114,6 +114,7 @@ def build(bld): | |||
| 'JackControlAPI.cpp', | |||
| 'JackNetTool.cpp', | |||
| 'JackNetInterface.cpp', | |||
| 'JackArgParser.cpp', | |||
| ] | |||
| if bld.env['IS_LINUX']: | |||
| @@ -566,6 +566,10 @@ | |||
| 4BE5FED10E725C320020B576 /* JackCoreAudioAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE5FECF0E725C320020B576 /* JackCoreAudioAdapter.cpp */; }; | |||
| 4BE5FED20E725C320020B576 /* JackCoreAudioAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BE5FED00E725C320020B576 /* JackCoreAudioAdapter.h */; }; | |||
| 4BE6C6AD0A3E0A65005A203A /* test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE6C6AC0A3E0A65005A203A /* test.cpp */; }; | |||
| 4BF284180F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */; }; | |||
| 4BF284190F31B4BC00B05BE3 /* JackArgParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */; }; | |||
| 4BF2841A0F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */; }; | |||
| 4BF2841B0F31B4BC00B05BE3 /* JackArgParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */; }; | |||
| 4BF4BAB10E3480AB00403CDF /* JackAudioAdapterFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF4BAB00E3480AB00403CDF /* JackAudioAdapterFactory.cpp */; }; | |||
| 4BF520530CB8D0E80037470E /* timestamps.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF520520CB8D0E80037470E /* timestamps.c */; }; | |||
| 4BF520540CB8D0E80037470E /* timestamps.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BF520520CB8D0E80037470E /* timestamps.c */; }; | |||
| @@ -1334,6 +1338,8 @@ | |||
| 4BE6C6A30A3E096F005A203A /* jack_test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_test; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4BE6C6AC0A3E0A65005A203A /* test.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = test.cpp; path = ../tests/test.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4BE99D300AD7A04800C59091 /* jack_cpu */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_cpu; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackArgParser.cpp; path = ../common/JackArgParser.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackArgParser.h; path = ../common/JackArgParser.h; sourceTree = SOURCE_ROOT; }; | |||
| 4BF3937C0626BF3600CC67FA /* JackMacLibClientRPC.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JackMacLibClientRPC.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4BF4BAB00E3480AB00403CDF /* JackAudioAdapterFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackAudioAdapterFactory.cpp; path = ../common/JackAudioAdapterFactory.cpp; sourceTree = SOURCE_ROOT; }; | |||
| 4BF520520CB8D0E80037470E /* timestamps.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = timestamps.c; path = ../common/timestamps.c; sourceTree = SOURCE_ROOT; }; | |||
| @@ -2296,6 +2302,8 @@ | |||
| 4B765CC805ECE17900571F78 /* Tools */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 4BF284160F31B4BC00B05BE3 /* JackArgParser.cpp */, | |||
| 4BF284170F31B4BC00B05BE3 /* JackArgParser.h */, | |||
| 4BF5FBC80E878D24003D2374 /* JackMachTime.c */, | |||
| 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */, | |||
| 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */, | |||
| @@ -3098,6 +3106,7 @@ | |||
| 4B8F3D4C0E06C4A10096D19C /* JackEngineTiming.h in Headers */, | |||
| 4B4E9AFB0E5F1090000A3278 /* JackControlAPI.h in Headers */, | |||
| 4BC3B6A70E703B2E0066E42F /* JackPosixThread.h in Headers */, | |||
| 4BF2841B0F31B4BC00B05BE3 /* JackArgParser.h in Headers */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| @@ -3325,6 +3334,7 @@ | |||
| BA222AEE0DC883B3001A17F4 /* JackNetManager.h in Headers */, | |||
| 4B76C76D0E5AB2DB00E2AC21 /* JackNetInterface.h in Headers */, | |||
| 4BC3B6BE0E703BCC0066E42F /* JackNetUnixSocket.h in Headers */, | |||
| 4BF284190F31B4BC00B05BE3 /* JackArgParser.h in Headers */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| @@ -5757,6 +5767,7 @@ | |||
| 4BC3B6A60E703B2E0066E42F /* JackPosixThread.cpp in Sources */, | |||
| 4BC3B6AC0E703B690066E42F /* JackProcessSync.cpp in Sources */, | |||
| 4BF5FBCA0E878D24003D2374 /* JackMachTime.c in Sources */, | |||
| 4BF2841A0F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||
| @@ -6010,6 +6021,7 @@ | |||
| 4B76C76C0E5AB2DB00E2AC21 /* JackNetInterface.cpp in Sources */, | |||
| 4BC3B6BD0E703BCC0066E42F /* JackNetUnixSocket.cpp in Sources */, | |||
| 4BF5FBC90E878D24003D2374 /* JackMachTime.c in Sources */, | |||
| 4BF284180F31B4BC00B05BE3 /* JackArgParser.cpp in Sources */, | |||
| ); | |||
| runOnlyForDeploymentPostprocessing = 0; | |||
| }; | |||