diff --git a/ChangeLog b/ChangeLog index 4621c0c7..7be8e615 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,6 +23,7 @@ Fernando Lopez-Lezcano 2008-05-26 Stephane Letz * Merge control branch. + * Cleanup example clients : use jack_client_open and install a proper 'quit' signal handler. 2008-05-24 Stephane Letz diff --git a/common/jack/control.h b/common/jack/control.h index dea09561..ca644150 100644 --- a/common/jack/control.h +++ b/common/jack/control.h @@ -28,361 +28,10 @@ #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED #define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED -#include - -#ifdef WIN32 -typedef unsigned long sigset_t; -#endif - -/** Parameter types, intentionally similar to jack_driver_param_type_t */ -typedef enum -{ - JackParamInt = 1, /**< @brief value type is a signed integer */ - JackParamUInt, /**< @brief value type is an unsigned integer */ - JackParamChar, /**< @brief value type is a char */ - JackParamString, /**< @brief value type is a string with max size of ::JACK_PARAM_STRING_MAX+1 chars */ - JackParamBool, /**< @brief value type is a boolean */ -} jackctl_param_type_t; - -/** @brief Max value that jackctl_param_type_t type can have */ -#define JACK_PARAM_MAX (JackParamBool + 1) - -/** @brief Max length of string parameter value, excluding terminating nul char */ -#define JACK_PARAM_STRING_MAX 63 - -/** @brief Type for parameter value */ -/* intentionally similar to jack_driver_param_value_t */ -union jackctl_parameter_value -{ - uint32_t ui; /**< @brief member used for ::JackParamUInt */ - int32_t i; /**< @brief member used for ::JackParamInt */ - char c; /**< @brief member used for ::JackParamChar */ - char str[JACK_PARAM_STRING_MAX + 1]; /**< @brief member used for ::JackParamString */ - bool b; /**< @brief member used for ::JackParamBool */ -}; - -/** opaque type for server object */ -typedef struct jackctl_server jackctl_server_t; - -/** opaque type for driver object */ -typedef struct jackctl_driver jackctl_driver_t; - -/** opaque type for parameter object */ -typedef struct jackctl_parameter jackctl_parameter_t; - -#ifdef __cplusplus -extern "C" { -#endif -#if 0 -} /* Adjust editor indent */ -#endif - -/** - * Call this function to setup process signal handling. As a general - * rule, it is required for proper operation for the server object. - * - * @param flags signals setup flags, use 0 for none. Currently no - * flags are defined - * - * @return the configurated signal set. - */ -sigset_t -jackctl_setup_signals( - unsigned int flags); - -/** - * Call this function to wait on a signal set. - * - * @param signals signals set to wait on - */ - -void -jackctl_wait_signals( - sigset_t signals); - -/** - * Call this function to create server object. - * - * @return server object handle, NULL if creation of server object - * failed. Successfully created server object must be destroyed with - * paired call to ::jackctl_server_destroy - */ -jackctl_server_t * -jackctl_server_create(); -/** - * Call this function to destroy server object. - * - * @param server server object handle to destroy - */ -void -jackctl_server_destroy( - jackctl_server_t * server); - -/** - * Call this function to get list of available drivers. List node data - * pointers is a driver object handle (::jackctl_driver_t). - * - * @param server server object handle to get drivers for - * - * @return Single linked list of driver object handles. Must not be - * modified. Always same for same server object. - */ -const JSList * -jackctl_server_get_drivers_list( - jackctl_server_t * server); - -/** - * Call this function to start JACK server - * - * @param server server object handle - * @param driver driver to use - * - * @return success status: true - success, false - fail - */ -bool -jackctl_server_start( - jackctl_server_t * server, - jackctl_driver_t * driver); - -/** - * Call this function to stop JACK server - * - * @param server server object handle - * - * @return success status: true - success, false - fail - */ -bool -jackctl_server_stop( - jackctl_server_t * server); - -/** - * Call this function to get list of server parameters. List node data - * pointers is a parameter object handle (::jackctl_parameter_t). - * - * @param server server object handle to get parameters for - * - * @return Single linked list of parameter object handles. Must not be - * modified. Always same for same server object. - */ -const JSList * -jackctl_server_get_parameters( - jackctl_server_t * server); - -/** - * Call this function to get name of driver. - * - * @param driver driver object handle to get name of - * - * @return driver name. Must not be modified. Always same for same - * driver object. - */ -const char * -jackctl_driver_get_name( - jackctl_driver_t * driver); - -/** - * Call this function to get list of driver parameters. List node data - * pointers is a parameter object handle (::jackctl_parameter_t). - * - * @param driver driver object handle to get parameters for - * - * @return Single linked list of parameter object handles. Must not be - * modified. Always same for same driver object. - */ -const JSList * -jackctl_driver_get_parameters( - jackctl_driver_t * driver); - -/** - * Call this function to get parameter name. - * - * @param parameter parameter object handle to get name of - * - * @return parameter name. Must not be modified. Always same for same - * parameter object. - */ -const char * -jackctl_parameter_get_name( - jackctl_parameter_t * parameter); - -/** - * Call this function to get parameter short description. - * - * @param parameter parameter object handle to get short description of - * - * @return parameter short description. Must not be modified. Always - * same for same parameter object. - */ -const char * -jackctl_parameter_get_short_description( - jackctl_parameter_t * parameter); - -/** - * Call this function to get parameter long description. - * - * @param parameter parameter object handle to get long description of - * - * @return parameter long description. Must not be modified. Always - * same for same parameter object. - */ -const char * -jackctl_parameter_get_long_description( - jackctl_parameter_t * parameter); - -/** - * Call this function to get parameter type. - * - * @param parameter parameter object handle to get type of - * - * @return parameter type. Always same for same parameter object. - */ -jackctl_param_type_t -jackctl_parameter_get_type( - jackctl_parameter_t * parameter); - -/** - * Call this function to get parameter character. - * - * @param parameter parameter object handle to get character of - * - * @return character. - */ -char -jackctl_parameter_get_id( - jackctl_parameter_t * parameter); - -/** - * Call this function to check whether parameter has been set, or its - * default value is being used. - * - * @param parameter parameter object handle to check - * - * @return true - parameter is set, false - parameter is using default - * value. - */ -bool -jackctl_parameter_is_set( - jackctl_parameter_t * parameter); - -/** - * Call this function to reset parameter to its default value. - * - * @param parameter parameter object handle to reset value of - * - * @return success status: true - success, false - fail - */ -bool -jackctl_parameter_reset( - jackctl_parameter_t * parameter); - -/** - * Call this function to get parameter value. - * - * @param parameter parameter object handle to get value of - * - * @return parameter value. - */ -union jackctl_parameter_value -jackctl_parameter_get_value( - jackctl_parameter_t * parameter); - -/** - * Call this function to set parameter value. - * - * @param parameter parameter object handle to get value of - * @param value_ptr pointer to variable containing parameter value - * - * @return success status: true - success, false - fail - */ -bool -jackctl_parameter_set_value( - jackctl_parameter_t * parameter, - const union jackctl_parameter_value * value_ptr); - -/** - * Call this function to get parameter default value. - * - * @param parameter parameter object handle to get default value of - * - * @return parameter default value. - */ -union jackctl_parameter_value -jackctl_parameter_get_default_value( - jackctl_parameter_t * parameter); - -/** - * Call this function to log an error message. - * - * @param format string - */ -void -jack_error( - const char *format, - ...); - -/** - * Call this function to log an information message. - * - * @param format string - */ -void -jack_info( - const char *format, - ...); - -/** - * Call this function to log an information message but only when - * verbose mode is enabled. - * - * @param format string - */ -void -jack_log( - const char *format, - ...); - -#if 0 -{ /* Adjust editor indent */ -#endif -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED */ -/* -*- Mode: C ; c-basic-offset: 4 -*- */ -/* - JACK control API - - Copyright (C) 2008 Nedko Arnaudov - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2 of the License. - - 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ -/** - * @file jack/control.h - * @ingroup publicheader - * @brief JACK control API - * - */ - -#ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED -#define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED +#include -#include - -#ifdef WIN32 -typedef unsigned long sigset_t; +#ifdef WIN32 +typedef unsigned long sigset_t; #endif /** Parameter types, intentionally similar to jack_driver_param_type_t */ diff --git a/example-clients/connect.c b/example-clients/connect.c index 3159028a..20ad0f45 100644 --- a/example-clients/connect.c +++ b/example-clients/connect.c @@ -57,8 +57,6 @@ main (int argc, char *argv[]) fprintf(stderr, "ERROR! client should be called jack_connect or jack_disconnect. client is called %s\n", my_name); return 1; } - - printf("connecting %ld\n",connecting); if (argc != 3) { fprintf (stderr, "usage: %s \n", my_name); @@ -69,7 +67,7 @@ main (int argc, char *argv[]) /* try to become a client of the JACK server */ - if ((client = jack_client_new (my_name)) == 0) { + if ((client = jack_client_open (my_name, JackNullOption, NULL)) == 0) { fprintf (stderr, "jack server not running?\n"); return 1; } diff --git a/example-clients/control.c b/example-clients/control.c index c008c6d0..98b41090 100644 --- a/example-clients/control.c +++ b/example-clients/control.c @@ -19,7 +19,7 @@ static int Jack_Graph_Order_Callback(void *arg) const char **ports; int i; - printf("Jack_Graph_Order_Callback count = %ld\n", reorder++); + printf("Jack_Graph_Order_Callback count = %d\n", reorder++); ports = jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsOutput); if (ports) { @@ -45,7 +45,6 @@ main (int argc, char *argv[]) { jack_options_t options = JackNullOption; jack_status_t status; - char c; /* open a client connection to the JACK server */ diff --git a/example-clients/freewheel.c b/example-clients/freewheel.c index 9bac8fd6..c0892833 100644 --- a/example-clients/freewheel.c +++ b/example-clients/freewheel.c @@ -31,20 +31,20 @@ char *package; /* program name */ jack_client_t *client; int onoff; -void jack_shutdown(void *arg) +static void jack_shutdown(void *arg) { fprintf(stderr, "JACK shut down, exiting ...\n"); exit(1); } -void signal_handler(int sig) +static void signal_handler(int sig) { jack_client_close(client); fprintf(stderr, "signal received, exiting ...\n"); exit(0); } -void parse_arguments(int argc, char *argv[]) +static void parse_arguments(int argc, char *argv[]) { if (argc < 2) { fprintf(stderr, "usage: %s y|n\n", package); @@ -61,32 +61,24 @@ void parse_arguments(int argc, char *argv[]) int main (int argc, char *argv[]) { - //parse_arguments (argc, argv); + parse_arguments (argc, argv); /* become a JACK client */ - if ((client = jack_client_new ("freewheel1")) == 0) { + if ((client = jack_client_open ("freewheel", JackNullOption, NULL)) == 0) { fprintf (stderr, "JACK server not running?\n"); exit(1); } - /* signal (SIGQUIT, signal_handler); signal (SIGTERM, signal_handler); signal (SIGHUP, signal_handler); signal (SIGINT, signal_handler); - */ + jack_on_shutdown (client, jack_shutdown, 0); - - /* + if (jack_set_freewheel (client, onoff)) { fprintf (stderr, "failed to reset freewheel mode\n"); } - */ - - jack_set_freewheel (client, 1); - sleep(5); - jack_set_freewheel (client, 0); - sleep(5); jack_client_close(client); return 0; diff --git a/example-clients/ipload.c b/example-clients/ipload.c index 9301d4b6..287bf12e 100644 --- a/example-clients/ipload.c +++ b/example-clients/ipload.c @@ -16,7 +16,7 @@ char *load_init = ""; char *server_name = NULL; int wait_opt = 0; -void +static void signal_handler (int sig) { jack_status_t status; @@ -31,7 +31,7 @@ signal_handler (int sig) exit (0); } -void +static void show_usage () { fprintf (stderr, "usage: %s [ options ] client-name [ load-name " @@ -45,7 +45,7 @@ show_usage () ); } -int +static int parse_args (int argc, char *argv[]) { int c; @@ -169,7 +169,8 @@ main (int argc, char *argv[]) sleep (1); } } - + + jack_client_close(client); return 0; } diff --git a/example-clients/ipunload.c b/example-clients/ipunload.c index a49418c2..25fa846c 100644 --- a/example-clients/ipunload.c +++ b/example-clients/ipunload.c @@ -69,7 +69,8 @@ main (int argc, char *argv[]) } else { fprintf (stdout, "%s unloaded.\n", client_name); } - + + jack_client_close(client); return 0; } diff --git a/example-clients/lsp.c b/example-clients/lsp.c index b190a76b..ceed975c 100644 --- a/example-clients/lsp.c +++ b/example-clients/lsp.c @@ -5,20 +5,17 @@ #endif #include #include - -//#include - #include char * my_name; -void +static void show_version (void) { //fprintf (stderr, "%s: JACK Audio Connection Kit version " VERSION "\n", my_name); } -void +static void show_usage (void) { show_version (); @@ -54,7 +51,7 @@ main (int argc, char *argv[]) int show_type = 0; int c; int option_index; - char* aliases[2]; + char* aliases[2]; jack_port_t *port; struct option long_options[] = { @@ -129,9 +126,7 @@ main (int argc, char *argv[]) return 1; } - ports = jack_get_ports (client, NULL, NULL, 0); - - //jack_port_t *port; + ports = jack_get_ports (client, NULL, NULL, 0); for (i = 0; ports[i]; ++i) { // skip over any that don't match ALL of the strings presented at command line diff --git a/example-clients/metro.c b/example-clients/metro.c index 07a9ab1b..fa6bd59b 100644 --- a/example-clients/metro.c +++ b/example-clients/metro.c @@ -19,20 +19,19 @@ #include #include #include -#ifndef WIN32 #include -#endif #include #include #include + #include +#include typedef jack_default_audio_sample_t sample_t; const double PI = 3.14; jack_client_t *client; -jack_port_t *input_port; jack_port_t *output_port; unsigned long sr; int freq = 880; @@ -43,32 +42,41 @@ long offset = 0; int transport_aware = 0; jack_transport_state_t transport_state; -void +static void signal_handler(int sig) +{ + jack_client_close(client); + fprintf(stderr, "signal received, exiting ...\n"); + exit(0); +} + +static void usage () + { fprintf (stderr, "\n" - "usage: jack_metro \n" - " [ --frequency OR -f frequency (in Hz) ]\n" - " [ --amplitude OR -A maximum amplitude (between 0 and 1) ]\n" - " [ --duration OR -D duration (in ms) ]\n" - " [ --attack OR -a attack (in percent of duration) ]\n" - " [ --decay OR -d decay (in percent of duration) ]\n" - " [ --name OR -n jack name for metronome client ]\n" - " [ --transport OR -t transport aware ]\n" - " --bpm OR -b beats per minute\n" - ); +"usage: jack_metro \n" +" [ --frequency OR -f frequency (in Hz) ]\n" +" [ --amplitude OR -A maximum amplitude (between 0 and 1) ]\n" +" [ --duration OR -D duration (in ms) ]\n" +" [ --attack OR -a attack (in percent of duration) ]\n" +" [ --decay OR -d decay (in percent of duration) ]\n" +" [ --name OR -n jack name for metronome client ]\n" +" [ --transport OR -t transport aware ]\n" +" --bpm OR -b beats per minute\n" +); } -void +static void process_silence (jack_nframes_t nframes) { sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes); memset (buffer, 0, sizeof (jack_default_audio_sample_t) * nframes); } -int -process_audio (jack_nframes_t nframes, void *arg) +static void +process_audio (jack_nframes_t nframes) { + sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes); jack_nframes_t frames_left = nframes; @@ -81,17 +89,9 @@ process_audio (jack_nframes_t nframes, void *arg) memcpy (buffer + (nframes - frames_left), wave + offset, sizeof (sample_t) * frames_left); offset += frames_left; } - - return 0; -} - -void jack_port_register_cb(jack_port_id_t port, int mode, void *arg) -{ - printf("jack_port_register port = %ld mode = %ld\n", port, mode); } -/* -int +static int process (jack_nframes_t nframes, void *arg) { if (transport_aware) { @@ -108,8 +108,8 @@ process (jack_nframes_t nframes, void *arg) process_audio (nframes); return 0; } -*/ -int + +static int sample_rate_change () { printf("Sample rate has changed! Exiting...\n"); exit(-1); @@ -118,6 +118,7 @@ sample_rate_change () { int main (int argc, char *argv[]) { + sample_t scale; int i, attack_length, decay_length; double *amp; @@ -129,6 +130,7 @@ main (int argc, char *argv[]) char *client_name = 0; char *bpm_string = "bpm"; int verbose = 0; + jack_status_t status; const char *options = "f:A:D:a:d:b:n:thv"; struct option long_options[] = @@ -145,7 +147,7 @@ main (int argc, char *argv[]) {"verbose", 0, 0, 'v'}, {0, 0, 0, 0} }; - + while ((opt = getopt_long (argc, argv, options, long_options, &option_index)) != EOF) { switch (opt) { case 'f': @@ -203,7 +205,6 @@ main (int argc, char *argv[]) return -1; } } - if (!got_bpm) { fprintf (stderr, "bpm not specified\n"); usage (); @@ -215,16 +216,14 @@ main (int argc, char *argv[]) client_name = (char *) malloc (9 * sizeof (char)); strcpy (client_name, "metro"); } - if ((client = jack_client_new (client_name)) == 0) { + if ((client = jack_client_open (client_name, JackNoStartServer, &status)) == 0) { fprintf (stderr, "jack server not running?\n"); return 1; } - - jack_set_process_callback (client, process_audio, 0); + jack_set_process_callback (client, process, 0); output_port = jack_port_register (client, bpm_string, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); - input_port = jack_port_register (client, "metro_in", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); - - sr = jack_get_sample_rate (client); + + sr = jack_get_sample_rate (client); /* setup wave table parameters */ wave_length = 60 * sr / bpm; @@ -234,9 +233,7 @@ main (int argc, char *argv[]) scale = 2 * PI * freq / sr; if (tone_length >= wave_length) { - //fprintf (stderr, "invalid duration (tone length = %" PRIu32 - // ", wave length = %" PRIu32 "\n", tone_length, - // wave_length); + fprintf (stderr, "invalid duration (tone length = %u, wave length = %u\n", tone_length, wave_length); return -1; } if (attack_length + decay_length > (int)tone_length) { @@ -251,51 +248,35 @@ main (int argc, char *argv[]) for (i = 0; i < attack_length; i++) { amp[i] = max_amp * i / ((double) attack_length); } - for (i = attack_length; i < (int) tone_length - decay_length; i++) { + for (i = attack_length; i < (int)tone_length - decay_length; i++) { amp[i] = max_amp; } for (i = (int)tone_length - decay_length; i < (int)tone_length; i++) { amp[i] = - max_amp * (i - (double) tone_length) / ((double) decay_length); } - for (i = 0; i < (int) tone_length; i++) { + for (i = 0; i < (int)tone_length; i++) { wave[i] = amp[i] * sin (scale * i); } - for (i = tone_length; i < (int) wave_length; i++) { + for (i = tone_length; i < (int)wave_length; i++) { wave[i] = 0; } - - if (jack_set_port_registration_callback(client, jack_port_register_cb, 0) != 0) { - printf("Error when calling jack_set_port_registration_callback() !\n"); - } - - if (jack_activate (client)) { + + if (jack_activate (client)) { fprintf (stderr, "cannot activate client"); return 1; } -#ifdef WIN32 - // Connection can only be done after activation - jack_connect(client,jack_port_name(output_port), "portaudio:winmme:in1"); - jack_connect(client,jack_port_name(output_port), "portaudio:winmme:in2"); - jack_connect(client,"portaudio:winmme:out2", jack_port_name(input_port)); -#else - // Connection can only be done after activation - jack_connect(client,jack_port_name(output_port), "coreaudio:Built-in Audio:in2"); - jack_connect(client,"coreaudio:Built-in Audio:out2", jack_port_name(input_port)); -#endif - - while ((getchar() != 'q')) { - //while (1) { - //sleep(1); - //printf("jack_frame_time %ld\n", (long)jack_frame_time(client)); - //usleep(2000); + /* install a signal handler to properly quits jack client */ + signal(SIGQUIT, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGHUP, signal_handler); + signal(SIGINT, signal_handler); + + /* run until interrupted */ + while (1) { + sleep(1); }; - - if (jack_deactivate (client)) { - fprintf (stderr, "cannot deactivate client"); - return 1; - } - + jack_client_close(client); - return 0; + exit (0); } diff --git a/example-clients/midiseq.c b/example-clients/midiseq.c index 072b00e9..9d78b01a 100644 --- a/example-clients/midiseq.c +++ b/example-clients/midiseq.c @@ -32,7 +32,14 @@ jack_nframes_t num_notes; jack_nframes_t loop_nsamp; jack_nframes_t loop_index; -void usage() +static void signal_handler(int sig) +{ + jack_client_close(client); + fprintf(stderr, "signal received, exiting ...\n"); + exit(0); +} + +static void usage() { fprintf(stderr, "usage: jack_midiseq name nsamp [startindex note nsamp] ...... [startindex note nsamp]\n"); fprintf(stderr, "eg: jack_midiseq Sequencer 24000 0 60 8000 12000 63 8000\n"); @@ -40,7 +47,7 @@ void usage() fprintf(stderr, "that lasts for 12000 samples, then a d4# that starts at 1/4 sec that lasts for 800 samples\n"); } -int process(jack_nframes_t nframes, void *arg) +static int process(jack_nframes_t nframes, void *arg) { int i,j; void* port_buf = jack_port_get_buffer(output_port, nframes); @@ -83,7 +90,7 @@ int main(int narg, char **args) usage(); exit(1); } - if((client = jack_client_new (args[1])) == 0) + if((client = jack_client_open (args[1], JackNullOption, NULL)) == 0) { fprintf (stderr, "jack server not running?\n"); return 1; @@ -109,10 +116,18 @@ int main(int narg, char **args) fprintf (stderr, "cannot activate client"); return 1; } + + /* install a signal handler to properly quits jack client */ + signal(SIGQUIT, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGHUP, signal_handler); + signal(SIGINT, signal_handler); - while (1) - { + /* run until interrupted */ + while (1) { sleep(1); }; - + + jack_client_close(client); + exit (0); } diff --git a/example-clients/midisine.c b/example-clients/midisine.c index 871d4e8b..4acb9f22 100644 --- a/example-clients/midisine.c +++ b/example-clients/midisine.c @@ -33,7 +33,16 @@ jack_default_audio_sample_t note_on; unsigned char note = 0; jack_default_audio_sample_t note_frqs[128]; -void calc_note_frqs(jack_default_audio_sample_t srate) +jack_client_t *client; + +static void signal_handler(int sig) +{ + jack_client_close(client); + fprintf(stderr, "signal received, exiting ...\n"); + exit(0); +} + +static void calc_note_frqs(jack_default_audio_sample_t srate) { int i; for(i=0; i<128; i++) @@ -42,7 +51,7 @@ void calc_note_frqs(jack_default_audio_sample_t srate) } } -int process(jack_nframes_t nframes, void *arg) +static int process(jack_nframes_t nframes, void *arg) { int i; void* port_buf = jack_port_get_buffer(input_port, nframes); @@ -88,23 +97,21 @@ int process(jack_nframes_t nframes, void *arg) return 0; } -int srate(jack_nframes_t nframes, void *arg) +static int srate(jack_nframes_t nframes, void *arg) { printf("the sample rate is now %" PRIu32 "/sec\n", nframes); calc_note_frqs((jack_default_audio_sample_t)nframes); return 0; } -void jack_shutdown(void *arg) +static void jack_shutdown(void *arg) { exit(1); } int main(int narg, char **args) { - jack_client_t *client; - - if ((client = jack_client_new("midisine")) == 0) + if ((client = jack_client_open("midisine", JackNullOption, NULL)) == 0) { fprintf(stderr, "jack server not running?\n"); return 1; @@ -126,10 +133,15 @@ int main(int narg, char **args) fprintf(stderr, "cannot activate client"); return 1; } + + /* install a signal handler to properly quits jack client */ + signal(SIGQUIT, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGHUP, signal_handler); + signal(SIGINT, signal_handler); /* run until interrupted */ - while(1) - { + while(1) { sleep(1); } jack_client_close(client); diff --git a/example-clients/mp_tw.cpp b/example-clients/mp_tw.cpp deleted file mode 100644 index c8180db5..00000000 --- a/example-clients/mp_tw.cpp +++ /dev/null @@ -1,204 +0,0 @@ - -/** @file mp_thread_client.c - * - * @brief This simple client demonstrates the use of "jack_thread_wait" function in a multi-threaded context. - - A set of threads (the jack process thread + n helper threads) are used to work on a global queue of tasks. - The last finishing thread gives control back to libjack using the "jack_thread_wait" function. Other threads suspend - on a condition variable and are resumed next cycle by the libjack suspended thread. -*/ - -#include -#include -#include -#include -#include -#include - -#define __SMP__ 1 - -#include -#include -#include - -#include "JackAtomic.h" - -jack_port_t *input_port; -jack_port_t *output_port; -jack_client_t *client; -int buffer_size; - -#define WORK_AT_EACH_CYCLE 1000 -#define WORK_AT_EACH_LOOP 15 -static SInt32 cycle_work_count = 0; - -pthread_cond_t cond; -pthread_mutex_t mutex; - -jack_nframes_t last_time = 0; -static int print_count = 50; -int result = 0; - -typedef struct thread_context -{ - pthread_t thread; - int num; -}; - -// Simulate workload -static int fib(int n) -{ - if (n < 2) - return n; - else - return fib(n - 2) + fib(n - 1); -} - -static void do_some_work(void *arg) -{ - result = fib(WORK_AT_EACH_LOOP); -} - -static void resume_all_threads(void *arg) -{ - thread_context* context = (thread_context*)arg; - - jack_nframes_t cur_time = jack_frame_time(client); - if (--print_count == 0) { - printf("resume_all_threads from thread = %ld jack_frame_time = %u jack_cpu_load = %f\n", context->num, (cur_time - last_time), jack_cpu_load(client)); - print_count = 50; - } - pthread_mutex_lock(&mutex); // Hum... - pthread_cond_broadcast(&cond); - pthread_mutex_unlock(&mutex); // Hum... - cycle_work_count = WORK_AT_EACH_CYCLE; - last_time = cur_time; -} - -static void suspend_jack_thread(void *arg) -{ - jack_thread_wait(client, 0); - resume_all_threads(arg); -} - -static void suspend_worker_thread(void *arg) -{ - pthread_mutex_lock(&mutex); // Hum... - pthread_cond_wait(&cond, &mutex); - pthread_mutex_unlock(&mutex); // Hum... -} - -static void * worker_aux_thread(void *arg) -{ - while (1) { - - int val = DEC_ATOMIC(&cycle_work_count); - - if (val == 1) { // Last thread - suspend_jack_thread(arg); - } else if (val < 1) { - suspend_worker_thread(arg); - } else { - do_some_work(arg); - } - } - - return 0; -} - -static void * worker_thread(void *arg) -{ - suspend_worker_thread(arg); // Start in "suspended" state - worker_aux_thread(arg); - return 0; -} - -// Example of audio process -int process(jack_nframes_t nframes, void *arg) -{ - resume_all_threads(arg); - worker_aux_thread(arg); - return 0; -} - -/** - * JACK calls this shutdown_callback if the server ever shuts down or - * decides to disconnect the client. - */ -void jack_shutdown (void *arg) -{ - exit(1); -} - -int main (int argc, char *argv[]) -{ - thread_context* worker_threads; - int n, nthreads = 0; - - if (argc == 2) - nthreads = atoi(argv[1]); - - worker_threads = (thread_context *) malloc (sizeof (thread_context) * nthreads); - - /* open a client connection to the JACK server */ - if ((client = jack_client_open("mp_thread_test", JackNoStartServer, NULL)) == NULL) { - fprintf(stderr, "Cannot open client\n"); - exit(1); - } - - buffer_size = jack_get_buffer_size(client); - - /* tell the JACK server to call the 'callback' function - */ - worker_threads[0].num = 0; - jack_set_process_callback(client, process, &worker_threads[0]); - - /* tell the JACK server to call `jack_shutdown()' if - it ever shuts down, either entirely, or if it - just decides to stop calling us. - */ - jack_on_shutdown(client, jack_shutdown, 0); - - pthread_mutex_init(&mutex, NULL); - pthread_cond_init(&cond, NULL); - - input_port = jack_port_register(client, "input", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0); - output_port = jack_port_register(client, "output", JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0); - - if ((input_port == NULL) || (output_port == NULL)) { - fprintf(stderr, "no more JACK ports available\n"); - exit(1); - } - - fprintf(stderr, "Creating %d threads\n", nthreads); - - for (n = 1; n <= nthreads; ++n) { - worker_threads[n].num = n; - if (jack_client_create_thread(client, &worker_threads[n].thread, 90, 1, worker_thread, &worker_threads[n]) < 0) - exit(1); - jack_acquire_real_time_scheduling (worker_threads[n].thread, 90); - } - - /* Tell the JACK server that we are ready to roll. Our - * process() callback will start running now. */ - - if (jack_activate(client)) { - fprintf(stderr, "cannot activate client"); - exit(1); - } - - while (1) { - #ifdef WIN32 - Sleep(1000); - #else - sleep(1); - #endif - } - - jack_client_close(client); - - pthread_mutex_destroy(&mutex); - pthread_cond_destroy(&cond); - - exit(0); -} diff --git a/example-clients/tw.c b/example-clients/tw.c index 2c6a2804..8b84cd23 100644 --- a/example-clients/tw.c +++ b/example-clients/tw.c @@ -23,6 +23,13 @@ volatile enum { Exit } client_state = Init; +static void signal_handler(int sig) +{ + jack_client_close(client); + fprintf(stderr, "signal received, exiting ...\n"); + exit(0); +} + /** * The process callback for this JACK application is called in a * special realtime thread once for each audio cycle. @@ -30,7 +37,7 @@ volatile enum { * This client follows a simple rule: when the JACK transport is * running, copy the input port to the output. When it stops, exit. */ -int +static int _process (jack_nframes_t nframes) { jack_default_audio_sample_t *in, *out; @@ -57,38 +64,55 @@ _process (jack_nframes_t nframes) return 0; } -/* -int -process (jack_nframes_t nframes, void* arg) +static void* jack_thread(void *arg) { jack_client_t* client = (jack_client_t*) arg; - - while ((nframes = jack_thread_wait (client, _process (nframes))) != 0); - + + while (1) { + jack_nframes_t frames = jack_cycle_wait (client); + int status = _process(frames); + jack_cycle_signal (client, status); + // possibly do something else after signaling next clients in the graph + } + return 0; } -*/ -int -process (jack_nframes_t nframes, void* arg) +/* +static void* jack_thread(void *arg) { jack_client_t* client = (jack_client_t*) arg; - do { - int status = _process(nframes); + while (1) { + jack_nframes_t frames; + int status; + // cycle 1 + frames = jack_cycle_wait (client); + status = _process(frames); + jack_cycle_signal (client, status); + // cycle 2 + frames = jack_cycle_wait (client); + status = _process(frames); + jack_cycle_signal (client, status); + // cycle 3 + frames = jack_cycle_wait (client); + status = _process(frames); jack_cycle_signal (client, status); - // possibly do something else after signaling next clients in the graph - nframes = jack_cycle_wait (client); - } while (nframes != 0); + // cycle 4 + frames = jack_cycle_wait (client); + status = _process(frames); + jack_cycle_signal (client, status); + } return 0; } +*/ /** * JACK calls this shutdown_callback if the server ever shuts down or * decides to disconnect the client. */ -void +static void jack_shutdown (void *arg) { exit (1); @@ -139,9 +163,9 @@ main (int argc, char *argv[]) /* tell the JACK server to call `process()' whenever there is work to be done. - */ - - jack_set_process_callback (client, process, client); + */ + if (jack_set_process_thread(client, jack_thread, client) < 0) + exit(1); /* tell the JACK server to call `jack_shutdown()' if it ever shuts down, either entirely, or if it @@ -211,6 +235,12 @@ main (int argc, char *argv[]) } free (ports); + + /* install a signal handler to properly quits jack client */ + signal(SIGQUIT, signal_handler); + signal(SIGTERM, signal_handler); + signal(SIGHUP, signal_handler); + signal(SIGINT, signal_handler); /* keep running until the transport stops */ diff --git a/example-clients/tw1.c b/example-clients/tw1.c deleted file mode 100644 index 1d28783f..00000000 --- a/example-clients/tw1.c +++ /dev/null @@ -1,250 +0,0 @@ -/** @file simple_client.c - * - * @brief This simple client demonstrates the basic features of JACK - * as they would be used by many applications. - */ - -#include -#include -#include -#include -#include - -#include -#include - -jack_port_t *input_port; -jack_port_t *output_port; -jack_client_t *client; - -/* a simple state machine for this client */ -volatile enum { - Init, - Run, - Exit -} client_state = Init; - -/** - * The process callback for this JACK application is called in a - * special realtime thread once for each audio cycle. - * - * This client follows a simple rule: when the JACK transport is - * running, copy the input port to the output. When it stops, exit. - */ - - -/** - * The process callback for this JACK application is called in a - * special realtime thread once for each audio cycle. - * - * This client follows a simple rule: when the JACK transport is - * running, copy the input port to the output. When it stops, exit. - */ -int -_process (jack_nframes_t nframes) -{ - jack_default_audio_sample_t *in, *out; - jack_transport_state_t ts = jack_transport_query(client, NULL); - - if (ts == JackTransportRolling) { - - if (client_state == Init) - client_state = Run; - - in = jack_port_get_buffer (input_port, nframes); - out = jack_port_get_buffer (output_port, nframes); - memcpy (out, in, - sizeof (jack_default_audio_sample_t) * nframes); - - } else if (ts == JackTransportStopped) { - - if (client_state == Run) { - client_state = Exit; - printf("END\n"); - return -1; // to stop the thread - } - } - - return 0; -} - -static void* jack_thread(void *arg) -{ - jack_client_t* client = (jack_client_t*) arg; - - while (1) { - jack_nframes_t frames = jack_cycle_wait (client); - int status = _process(frames); - jack_cycle_signal (client, status); - } - - return 0; -} - -/* -static void* jack_thread(void *arg) -{ - jack_client_t* client = (jack_client_t*) arg; - - while (1) { - jack_nframes_t frames; - int status; - // cycle 1 - frames = jack_cycle_wait (client); - status = _process(frames); - jack_cycle_signal (client, status); - // cycle 2 - frames = jack_cycle_wait (client); - status = _process(frames); - jack_cycle_signal (client, status); - // cycle 3 - frames = jack_cycle_wait (client); - status = _process(frames); - jack_cycle_signal (client, status); - // cycle 4 - frames = jack_cycle_wait (client); - status = _process(frames); - jack_cycle_signal (client, status); - } - - return 0; -} -*/ - -/** - * JACK calls this shutdown_callback if the server ever shuts down or - * decides to disconnect the client. - */ -void -jack_shutdown (void *arg) -{ - exit (1); -} - -int -main (int argc, char *argv[]) -{ - const char **ports; - const char *client_name; - const char *server_name = NULL; - jack_options_t options = JackNullOption; - jack_status_t status; - - if (argc >= 2) { /* client name specified? */ - client_name = argv[1]; - if (argc >= 3) { /* server name specified? */ - server_name = argv[2]; - options |= JackServerName; - } - } else { /* use basename of argv[0] */ - client_name = strrchr(argv[0], '/'); - if (client_name == 0) { - client_name = argv[0]; - } else { - client_name++; - } - } - - /* open a client connection to the JACK server */ - - client = jack_client_open (client_name, options, &status, server_name); - if (client == NULL) { - fprintf (stderr, "jack_client_open() failed, " - "status = 0x%2.0x\n", status); - if (status & JackServerFailed) { - fprintf (stderr, "Unable to connect to JACK server\n"); - } - exit (1); - } - if (status & JackServerStarted) { - fprintf (stderr, "JACK server started\n"); - } - if (status & JackNameNotUnique) { - client_name = jack_get_client_name(client); - fprintf (stderr, "unique name `%s' assigned\n", client_name); - } - - /* create RT thread - */ - - if (jack_set_process_thread(client, jack_thread, client) < 0) - exit(1); - - /* tell the JACK server to call `jack_shutdown()' if - it ever shuts down, either entirely, or if it - just decides to stop calling us. - */ - - jack_on_shutdown (client, jack_shutdown, 0); - - /* display the current sample rate. - */ - - printf ("engine sample rate: %" PRIu32 "\n", - jack_get_sample_rate (client)); - - /* create two ports */ - - input_port = jack_port_register (client, "input", - JACK_DEFAULT_AUDIO_TYPE, - JackPortIsInput, 0); - output_port = jack_port_register (client, "output", - JACK_DEFAULT_AUDIO_TYPE, - JackPortIsOutput, 0); - - if ((input_port == NULL) || (output_port == NULL)) { - fprintf(stderr, "no more JACK ports available\n"); - exit (1); - } - - /* Tell the JACK server that we are ready to roll. Our - * process() callback will start running now. */ - - if (jack_activate (client)) { - fprintf (stderr, "cannot activate client"); - exit (1); - } - - /* Connect the ports. You can't do this before the client is - * activated, because we can't make connections to clients - * that aren't running. Note the confusing (but necessary) - * orientation of the driver backend ports: playback ports are - * "input" to the backend, and capture ports are "output" from - * it. - */ - - ports = jack_get_ports (client, NULL, NULL, - JackPortIsPhysical|JackPortIsOutput); - if (ports == NULL) { - fprintf(stderr, "no physical capture ports\n"); - exit (1); - } - - if (jack_connect (client, ports[0], jack_port_name (input_port))) { - fprintf (stderr, "cannot connect input ports\n"); - } - - free (ports); - - ports = jack_get_ports (client, NULL, NULL, - JackPortIsPhysical|JackPortIsInput); - if (ports == NULL) { - fprintf(stderr, "no physical playback ports\n"); - exit (1); - } - - if (jack_connect (client, jack_port_name (output_port), ports[0])) { - fprintf (stderr, "cannot connect output ports\n"); - } - - free (ports); - - /* keep running until the transport stops */ - - while (client_state != Exit) { - sleep (1); - } - - jack_client_close (client); - exit (0); -} diff --git a/example-clients/zombie.c b/example-clients/zombie.c index d58189e6..0d3943c4 100644 --- a/example-clients/zombie.c +++ b/example-clients/zombie.c @@ -29,7 +29,7 @@ int running = 1; int count = 0; jack_port_t* output_port; -int +static int process(jack_nframes_t nframes, void* arg) { if (count++ == 1000) { @@ -41,7 +41,7 @@ process(jack_nframes_t nframes, void* arg) return 0; } -void +static void shutdown (void *arg) { printf("shutdown \n"); diff --git a/macosx/Jackdmp.xcodeproj/project.pbxproj b/macosx/Jackdmp.xcodeproj/project.pbxproj index d74c05ee..6cefaadc 100644 --- a/macosx/Jackdmp.xcodeproj/project.pbxproj +++ b/macosx/Jackdmp.xcodeproj/project.pbxproj @@ -29,7 +29,6 @@ 4B35C6940D4733B9000DE7AE /* PBXTargetDependency */, 4B35C6960D4733B9000DE7AE /* PBXTargetDependency */, 4B0A29300D5210C4002EFF74 /* PBXTargetDependency */, - 4B0A2A700D524B01002EFF74 /* PBXTargetDependency */, 4B35C6980D4733B9000DE7AE /* PBXTargetDependency */, 4B35C69A0D4733B9000DE7AE /* PBXTargetDependency */, 4B35C69C0D4733B9000DE7AE /* PBXTargetDependency */, @@ -70,7 +69,6 @@ 4BA693E90CBE5BBA00EAD520 /* PBXTargetDependency */, 4BA693EB0CBE5BBA00EAD520 /* PBXTargetDependency */, 4B0A28F40D520D11002EFF74 /* PBXTargetDependency */, - 4B0A2A6E0D524AF2002EFF74 /* PBXTargetDependency */, 4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */, 4BFA99500AAAED90009E916C /* PBXTargetDependency */, 4BFA99520AAAED90009E916C /* PBXTargetDependency */, @@ -92,8 +90,6 @@ 4B0206A10DC0BAB400319AF1 /* JackProcessSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B02069D0DC0BAB400319AF1 /* JackProcessSync.cpp */; }; 4B0A28ED0D520852002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; }; 4B0A29260D52108E002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; }; - 4B0A29830D523269002EFF74 /* mp_tw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A29820D523269002EFF74 /* mp_tw.cpp */; }; - 4B0A2A5E0D524AB2002EFF74 /* mp_tw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A29820D523269002EFF74 /* mp_tw.cpp */; }; 4B35C41E0D4731D1000DE7AE /* Jackdmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D2250834F06A00C94B91 /* Jackdmp.cpp */; }; 4B35C4290D4731D1000DE7AE /* JackMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B799AD707899652003F3F15 /* JackMachPort.h */; }; 4B35C42A0D4731D1000DE7AE /* JackError.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D1770834EE4800C94B91 /* JackError.h */; }; @@ -304,8 +300,6 @@ 4B4F9C930DC20C0400706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; }; 4B4F9D820DC2178E00706CB0 /* JackMessageBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */; }; 4B4F9D830DC2178F00706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; }; - 4B5175280D8FE69300961F37 /* tw1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B57F5BA0D72C2B000B4E719 /* tw1.c */; }; - 4B57F5BC0D72C2B000B4E719 /* tw1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B57F5BA0D72C2B000B4E719 /* tw1.c */; }; 4B5A1BBE0CD1CC110005BF74 /* midiseq.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BBD0CD1CC110005BF74 /* midiseq.c */; }; 4B5A1BDD0CD1CD420005BF74 /* midisine.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BDC0CD1CD420005BF74 /* midisine.c */; }; 4B5DB9830CD2429A00EBA5EE /* JackDebugClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B98AE000931D30C0091932A /* JackDebugClient.cpp */; }; @@ -547,20 +541,6 @@ remoteGlobalIDString = 4B0A29230D52108E002EFF74; remoteInfo = "jack_thread_wait 64 bits"; }; - 4B0A2A6D0D524AF2002EFF74 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B0A29630D5231DC002EFF74; - remoteInfo = jack_mp_thread_wait; - }; - 4B0A2A6F0D524B01002EFF74 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4B0A2A5B0D524AB2002EFF74; - remoteInfo = "jack_mp_thread_wait 64 bits"; - }; 4B35C5540D4731D2000DE7AE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; @@ -947,9 +927,6 @@ 4B0A28E60D52073D002EFF74 /* jack_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; }; 4B0A28EC0D520852002EFF74 /* tw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tw.c; path = "../example-clients/tw.c"; sourceTree = SOURCE_ROOT; }; 4B0A292D0D52108E002EFF74 /* jack_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B0A296D0D5231DC002EFF74 /* jack_mp_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_mp_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B0A29820D523269002EFF74 /* mp_tw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mp_tw.cpp; path = "../example-clients/mp_tw.cpp"; sourceTree = SOURCE_ROOT; }; - 4B0A2A650D524AB2002EFF74 /* jack_mp_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_mp_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; }; 4B123D3308B3954300540632 /* JackGlobalsClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobalsClient.cpp; path = ../common/JackGlobalsClient.cpp; sourceTree = SOURCE_ROOT; }; 4B123D3608B3954A00540632 /* JackGlobalsServer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobalsServer.cpp; path = ../common/JackGlobalsServer.cpp; sourceTree = SOURCE_ROOT; }; 4B2C28F908DAD01E00249230 /* JackGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobals.cpp; path = ../common/JackGlobals.cpp; sourceTree = SOURCE_ROOT; }; @@ -990,11 +967,8 @@ 4B464301076CAC7700E5077C /* Jack-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = "Jack-Info.plist"; sourceTree = SOURCE_ROOT; }; 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMessageBuffer.cpp; path = ../common/JackMessageBuffer.cpp; sourceTree = SOURCE_ROOT; }; 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMessageBuffer.h; path = ../common/JackMessageBuffer.h; sourceTree = SOURCE_ROOT; }; - 4B51752F0D8FE69300961F37 /* jack_thread_wait1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait1; sourceTree = BUILT_PRODUCTS_DIR; }; 4B56880F08B5C8620022B32D /* JackFifo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFifo.cpp; path = ../common/JackFifo.cpp; sourceTree = SOURCE_ROOT; }; 4B56881008B5C8620022B32D /* JackFifo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackFifo.h; path = ../common/JackFifo.h; sourceTree = SOURCE_ROOT; }; - 4B57F5950D72C27900B4E719 /* jack_thread_wait1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait1; sourceTree = BUILT_PRODUCTS_DIR; }; - 4B57F5BA0D72C2B000B4E719 /* tw1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tw1.c; path = "../example-clients/tw1.c"; sourceTree = SOURCE_ROOT; }; 4B5A1BBB0CD1CB9E0005BF74 /* jack_midiseq */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_midiseq; sourceTree = BUILT_PRODUCTS_DIR; }; 4B5A1BBD0CD1CC110005BF74 /* midiseq.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = midiseq.c; path = "../example-clients/midiseq.c"; sourceTree = SOURCE_ROOT; }; 4B5A1BDA0CD1CCE10005BF74 /* jack_midisine */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_midisine; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1187,20 +1161,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B0A29670D5231DC002EFF74 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B0A2A5F0D524AB2002EFF74 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B35C41F0D4731D1000DE7AE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1392,20 +1352,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B5175290D8FE69300961F37 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B57F58F0D72C27900B4E719 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B5A1BB50CD1CB9E0005BF74 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1705,11 +1651,7 @@ 4B35C63E0D4731D3000DE7AE /* inprocess.so */, 4B0A28E60D52073D002EFF74 /* jack_thread_wait */, 4B0A292D0D52108E002EFF74 /* jack_thread_wait */, - 4B0A296D0D5231DC002EFF74 /* jack_mp_thread_wait */, - 4B0A2A650D524AB2002EFF74 /* jack_mp_thread_wait */, - 4B57F5950D72C27900B4E719 /* jack_thread_wait1 */, 4BA7FEC30D8E76270017FF73 /* jack_server_control */, - 4B51752F0D8FE69300961F37 /* jack_thread_wait1 */, ); name = Products; sourceTree = ""; @@ -1718,8 +1660,6 @@ isa = PBXGroup; children = ( 4BA7FEC80D8E76650017FF73 /* control.c */, - 4B0A29820D523269002EFF74 /* mp_tw.cpp */, - 4B57F5BA0D72C2B000B4E719 /* tw1.c */, 4B0A28EC0D520852002EFF74 /* tw.c */, 4B5A1BDC0CD1CD420005BF74 /* midisine.c */, 4B5A1BBD0CD1CC110005BF74 /* midiseq.c */, @@ -2082,20 +2022,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B0A29640D5231DC002EFF74 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B0A2A5C0D524AB2002EFF74 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B35C41C0D4731D1000DE7AE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2378,20 +2304,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B5175260D8FE69300961F37 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B57F58C0D72C27900B4E719 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B5A1BB20CD1CB9E0005BF74 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2719,44 +2631,6 @@ productReference = 4B0A292D0D52108E002EFF74 /* jack_thread_wait */; productType = "com.apple.product-type.tool"; }; - 4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B0A29690D5231DC002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait" */; - buildPhases = ( - 4B0A29640D5231DC002EFF74 /* Headers */, - 4B0A29650D5231DC002EFF74 /* Sources */, - 4B0A29670D5231DC002EFF74 /* Frameworks */, - 4B0A29680D5231DC002EFF74 /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = jack_mp_thread_wait; - productInstallPath = /usr/local/bin; - productName = testSem; - productReference = 4B0A296D0D5231DC002EFF74 /* jack_mp_thread_wait */; - productType = "com.apple.product-type.tool"; - }; - 4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B0A2A610D524AB2002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait 64 bits" */; - buildPhases = ( - 4B0A2A5C0D524AB2002EFF74 /* Headers */, - 4B0A2A5D0D524AB2002EFF74 /* Sources */, - 4B0A2A5F0D524AB2002EFF74 /* Frameworks */, - 4B0A2A600D524AB2002EFF74 /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "jack_mp_thread_wait 64 bits"; - productInstallPath = /usr/local/bin; - productName = testSem; - productReference = 4B0A2A650D524AB2002EFF74 /* jack_mp_thread_wait */; - productType = "com.apple.product-type.tool"; - }; 4B35C41B0D4731D1000DE7AE /* jackdmp framework 64bits */ = { isa = PBXNativeTarget; buildConfigurationList = 4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */; @@ -3244,44 +3118,6 @@ productReference = 4B35C63E0D4731D3000DE7AE /* inprocess.so */; productType = "com.apple.product-type.library.dynamic"; }; - 4B5175250D8FE69300961F37 /* jack_thread_wait1 64 bits */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B51752B0D8FE69300961F37 /* Build configuration list for PBXNativeTarget "jack_thread_wait1 64 bits" */; - buildPhases = ( - 4B5175260D8FE69300961F37 /* Headers */, - 4B5175270D8FE69300961F37 /* Sources */, - 4B5175290D8FE69300961F37 /* Frameworks */, - 4B51752A0D8FE69300961F37 /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "jack_thread_wait1 64 bits"; - productInstallPath = /usr/local/bin; - productName = testSem; - productReference = 4B51752F0D8FE69300961F37 /* jack_thread_wait1 */; - productType = "com.apple.product-type.tool"; - }; - 4B57F58B0D72C27900B4E719 /* jack_thread_wait1 */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4B57F5910D72C27900B4E719 /* Build configuration list for PBXNativeTarget "jack_thread_wait1" */; - buildPhases = ( - 4B57F58C0D72C27900B4E719 /* Headers */, - 4B57F58D0D72C27900B4E719 /* Sources */, - 4B57F58F0D72C27900B4E719 /* Frameworks */, - 4B57F5900D72C27900B4E719 /* Rez */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = jack_thread_wait1; - productInstallPath = /usr/local/bin; - productName = testSem; - productReference = 4B57F5950D72C27900B4E719 /* jack_thread_wait1 */; - productType = "com.apple.product-type.tool"; - }; 4B5A1BB10CD1CB9E0005BF74 /* jack_midiseq Universal */ = { isa = PBXNativeTarget; buildConfigurationList = 4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */; @@ -3823,8 +3659,6 @@ 4BA692A60CBE4BC700EAD520 /* jack_load Universal */, 4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */, 4B0A28DC0D52073D002EFF74 /* jack_thread_wait */, - 4B57F58B0D72C27900B4E719 /* jack_thread_wait1 */, - 4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */, 4B699D4F097D421600A18468 /* synchroServer Universal */, 4B699D67097D421600A18468 /* synchroClient Universal */, 4B699D7F097D421700A18468 /* synchroServerClient Universal */, @@ -3852,8 +3686,6 @@ 4B35C5C00D4731D2000DE7AE /* jack_load 64 bits */, 4B35C5CC0D4731D2000DE7AE /* jack_unload 64 bits */, 4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */, - 4B5175250D8FE69300961F37 /* jack_thread_wait1 64 bits */, - 4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */, 4B35C5D80D4731D2000DE7AE /* synchroServer 64 bits */, 4B35C5EC0D4731D2000DE7AE /* synchroClient 64 bits */, 4B35C6000D4731D2000DE7AE /* synchroServerClient 64 bits */, @@ -3911,20 +3743,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B0A29680D5231DC002EFF74 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B0A2A600D524AB2002EFF74 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B35C4200D4731D1000DE7AE /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -4079,20 +3897,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B51752A0D8FE69300961F37 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B57F5900D72C27900B4E719 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B5A1BB60CD1CB9E0005BF74 /* Rez */ = { isa = PBXRezBuildPhase; buildActionMask = 2147483647; @@ -4273,22 +4077,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B0A29650D5231DC002EFF74 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B0A29830D523269002EFF74 /* mp_tw.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B0A2A5D0D524AB2002EFF74 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B0A2A5E0D524AB2002EFF74 /* mp_tw.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B35C41D0D4731D1000DE7AE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4586,22 +4374,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4B5175270D8FE69300961F37 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B5175280D8FE69300961F37 /* tw1.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4B57F58D0D72C27900B4E719 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B57F5BC0D72C2B000B4E719 /* tw1.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 4B5A1BB30CD1CB9E0005BF74 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4914,16 +4686,6 @@ target = 4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */; targetProxy = 4B0A292F0D5210C4002EFF74 /* PBXContainerItemProxy */; }; - 4B0A2A6E0D524AF2002EFF74 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */; - targetProxy = 4B0A2A6D0D524AF2002EFF74 /* PBXContainerItemProxy */; - }; - 4B0A2A700D524B01002EFF74 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */; - targetProxy = 4B0A2A6F0D524B01002EFF74 /* PBXContainerItemProxy */; - }; 4B35C5530D4731D2000DE7AE /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 4B699D03097D421600A18468 /* jack_external_metro Universal */; @@ -5177,213 +4939,27 @@ 4BFA99580AAAED90009E916C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 4B699D4F097D421600A18468 /* synchroServer Universal */; - targetProxy = 4BFA99570AAAED90009E916C /* PBXContainerItemProxy */; - }; - 4BFA995A0AAAED90009E916C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B699D67097D421600A18468 /* synchroClient Universal */; - targetProxy = 4BFA99590AAAED90009E916C /* PBXContainerItemProxy */; - }; - 4BFA995C0AAAED90009E916C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4B699D7F097D421700A18468 /* synchroServerClient Universal */; - targetProxy = 4BFA995B0AAAED90009E916C /* PBXContainerItemProxy */; - }; - 4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 4BFA99980AAAF3B0009E916C /* jdelay Universal */; - targetProxy = 4BFA99AB0AAAF41D009E916C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 4B0A28E30D52073D002EFF74 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = YES; - }; - name = Development; - }; - 4B0A28E40D52073D002EFF74 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - MACOSX_DEPLOYMENT_TARGET = 10.4; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = NO; - }; - name = Deployment; - }; - 4B0A28E50D52073D002EFF74 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - }; - name = Default; - }; - 4B0A292A0D52108E002EFF74 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ppc64, - x86_64, - ); - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = YES; - }; - name = Development; - }; - 4B0A292B0D52108E002EFF74 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ppc64, - x86_64, - ); - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - MACOSX_DEPLOYMENT_TARGET = 10.4; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = NO; - }; - name = Deployment; + targetProxy = 4BFA99570AAAED90009E916C /* PBXContainerItemProxy */; }; - 4B0A292C0D52108E002EFF74 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ppc64, - x86_64, - ); - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - }; - name = Default; + 4BFA995A0AAAED90009E916C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4B699D67097D421600A18468 /* synchroClient Universal */; + targetProxy = 4BFA99590AAAED90009E916C /* PBXContainerItemProxy */; + }; + 4BFA995C0AAAED90009E916C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4B699D7F097D421700A18468 /* synchroServerClient Universal */; + targetProxy = 4BFA995B0AAAED90009E916C /* PBXContainerItemProxy */; + }; + 4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4BFA99980AAAF3B0009E916C /* jdelay Universal */; + targetProxy = 4BFA99AB0AAAF41D009E916C /* PBXContainerItemProxy */; }; - 4B0A296A0D5231DC002EFF74 /* Development */ = { +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 4B0A28E30D52073D002EFF74 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = ( @@ -5402,7 +4978,7 @@ Jackmp, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_mp_thread_wait; + PRODUCT_NAME = jack_thread_wait; REZ_EXECUTABLE = YES; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -5415,7 +4991,7 @@ }; name = Development; }; - 4B0A296B0D5231DC002EFF74 /* Deployment */ = { + 4B0A28E40D52073D002EFF74 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = ( @@ -5433,7 +5009,7 @@ Jackmp, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_mp_thread_wait; + PRODUCT_NAME = jack_thread_wait; REZ_EXECUTABLE = YES; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -5446,7 +5022,7 @@ }; name = Deployment; }; - 4B0A296C0D5231DC002EFF74 /* Default */ = { + 4B0A28E50D52073D002EFF74 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = ( @@ -5461,7 +5037,7 @@ Jackmp, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_mp_thread_wait; + PRODUCT_NAME = jack_thread_wait; REZ_EXECUTABLE = YES; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -5473,7 +5049,7 @@ }; name = Default; }; - 4B0A2A620D524AB2002EFF74 /* Development */ = { + 4B0A292A0D52108E002EFF74 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = ( @@ -5494,7 +5070,7 @@ Jackmp, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_mp_thread_wait; + PRODUCT_NAME = jack_thread_wait; REZ_EXECUTABLE = YES; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -5507,7 +5083,7 @@ }; name = Development; }; - 4B0A2A630D524AB2002EFF74 /* Deployment */ = { + 4B0A292B0D52108E002EFF74 /* Deployment */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = ( @@ -5527,7 +5103,7 @@ Jackmp, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_mp_thread_wait; + PRODUCT_NAME = jack_thread_wait; REZ_EXECUTABLE = YES; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -5540,7 +5116,7 @@ }; name = Deployment; }; - 4B0A2A640D524AB2002EFF74 /* Default */ = { + 4B0A292C0D52108E002EFF74 /* Default */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = ( @@ -5557,7 +5133,7 @@ Jackmp, ); OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_mp_thread_wait; + PRODUCT_NAME = jack_thread_wait; REZ_EXECUTABLE = YES; SDKROOT = ""; SECTORDER_FLAGS = ""; @@ -8647,188 +8223,6 @@ }; name = Default; }; - 4B51752C0D8FE69300961F37 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = YES; - }; - name = Development; - }; - 4B51752D0D8FE69300961F37 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ppc64, - x86_64, - ); - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - MACOSX_DEPLOYMENT_TARGET = 10.4; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait1; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = NO; - }; - name = Deployment; - }; - 4B51752E0D8FE69300961F37 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - }; - name = Default; - }; - 4B57F5920D72C27900B4E719 /* Development */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = YES; - }; - name = Development; - }; - 4B57F5930D72C27900B4E719 /* Deployment */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - COPY_PHASE_STRIP = YES; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - MACOSX_DEPLOYMENT_TARGET = 10.4; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait1; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - ZERO_LINK = NO; - }; - name = Deployment; - }; - 4B57F5940D72C27900B4E719 /* Default */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - i386, - ppc, - ); - GCC_OPTIMIZATION_LEVEL = 3; - HEADER_SEARCH_PATHS = ../common; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-framework", - Jackmp, - ); - OTHER_REZFLAGS = ""; - PRODUCT_NAME = jack_thread_wait; - REZ_EXECUTABLE = YES; - SDKROOT = ""; - SECTORDER_FLAGS = ""; - WARNING_CFLAGS = ( - "-Wmost", - "-Wno-four-char-constants", - "-Wno-unknown-pragmas", - ); - }; - name = Default; - }; 4B5A1BB80CD1CB9E0005BF74 /* Development */ = { isa = XCBuildConfiguration; buildSettings = { @@ -11928,26 +11322,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Default; }; - 4B0A29690D5231DC002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B0A296A0D5231DC002EFF74 /* Development */, - 4B0A296B0D5231DC002EFF74 /* Deployment */, - 4B0A296C0D5231DC002EFF74 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 4B0A2A610D524AB2002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait 64 bits" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B0A2A620D524AB2002EFF74 /* Development */, - 4B0A2A630D524AB2002EFF74 /* Deployment */, - 4B0A2A640D524AB2002EFF74 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; 4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -12218,26 +11592,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Default; }; - 4B51752B0D8FE69300961F37 /* Build configuration list for PBXNativeTarget "jack_thread_wait1 64 bits" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B51752C0D8FE69300961F37 /* Development */, - 4B51752D0D8FE69300961F37 /* Deployment */, - 4B51752E0D8FE69300961F37 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; - 4B57F5910D72C27900B4E719 /* Build configuration list for PBXNativeTarget "jack_thread_wait1" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 4B57F5920D72C27900B4E719 /* Development */, - 4B57F5930D72C27900B4E719 /* Deployment */, - 4B57F5940D72C27900B4E719 /* Default */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Default; - }; 4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */ = { isa = XCConfigurationList; buildConfigurations = (