Browse Source

Support for -h option in internal clients to print the parameters.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3274 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.1
sletz 15 years ago
parent
commit
ad0ca0971e
12 changed files with 346 additions and 241 deletions
  1. +4
    -0
      ChangeLog
  2. +231
    -0
      common/JackArgParser.cpp
  3. +61
    -0
      common/JackArgParser.h
  4. +13
    -9
      common/JackAudioAdapterFactory.cpp
  5. +1
    -2
      common/JackDriverLoader.cpp
  6. +1
    -0
      common/JackDriverLoader.h
  7. +14
    -9
      common/JackNetAdapter.cpp
  8. +8
    -3
      common/JackNetManager.cpp
  9. +0
    -192
      common/JackTools.cpp
  10. +0
    -26
      common/JackTools.h
  11. +1
    -0
      common/wscript
  12. +12
    -0
      macosx/Jackdmp.xcodeproj/project.pbxproj

+ 4
- 0
ChangeLog View File

@@ -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.


+ 231
- 0
common/JackArgParser.cpp View File

@@ -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;
}
}

}


+ 61
- 0
common/JackArgParser.h View File

@@ -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

+ 13
- 9
common/JackAudioAdapterFactory.cpp View File

@@ -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, &params);
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, &params );

if (parse_params) {
res = jack_internal_initialize ( jack_client, params );
parser.FreeParams ( params );
}
return res;
}



+ 1
- 2
common/JackDriverLoader.cpp View File

@@ -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];


+ 1
- 0
common/JackDriverLoader.h View File

@@ -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


+ 14
- 9
common/JackNetAdapter.cpp View File

@@ -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, &params);
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, &params );

if (parse_params) {
res = jack_internal_initialize ( jack_client, params );
parser.FreeParams ( params );
}
return res;
}



+ 8
- 3
common/JackNetManager.cpp View File

@@ -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, &params );
parse_params = parser.ParseParams ( desc, &params );

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;
}



+ 0
- 192
common/JackTools.cpp View File

@@ -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;
}
}

}


+ 0
- 26
common/JackTools.h View File

@@ -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)



+ 1
- 0
common/wscript View File

@@ -114,6 +114,7 @@ def build(bld):
'JackControlAPI.cpp',
'JackNetTool.cpp',
'JackNetInterface.cpp',
'JackArgParser.cpp',
]

if bld.env['IS_LINUX']:


+ 12
- 0
macosx/Jackdmp.xcodeproj/project.pbxproj View File

@@ -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;
};


Loading…
Cancel
Save