git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2346 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.90
| @@ -23,6 +23,7 @@ Fernando Lopez-Lezcano | |||
| 2008-05-26 Stephane Letz <letz@grame.fr> | |||
| * Merge control branch. | |||
| * Cleanup example clients : use jack_client_open and install a proper 'quit' signal handler. | |||
| 2008-05-24 Stephane Letz <letz@grame.fr> | |||
| @@ -28,361 +28,10 @@ | |||
| #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED | |||
| #define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED | |||
| #include <jack/jslist.h> | |||
| #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 <jack/jslist.h> | |||
| #include <jack/jslist.h> | |||
| #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 */ | |||
| @@ -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 <src_port> <dst_port>\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; | |||
| } | |||
| @@ -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 */ | |||
| @@ -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; | |||
| @@ -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; | |||
| } | |||
| @@ -69,7 +69,8 @@ main (int argc, char *argv[]) | |||
| } else { | |||
| fprintf (stdout, "%s unloaded.\n", client_name); | |||
| } | |||
| jack_client_close(client); | |||
| return 0; | |||
| } | |||
| @@ -5,20 +5,17 @@ | |||
| #endif | |||
| #include <string.h> | |||
| #include <getopt.h> | |||
| //#include <config.h> | |||
| #include <jack/jack.h> | |||
| 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 | |||
| @@ -19,20 +19,19 @@ | |||
| #include <stdlib.h> | |||
| #include <stdio.h> | |||
| #include <errno.h> | |||
| #ifndef WIN32 | |||
| #include <unistd.h> | |||
| #endif | |||
| #include <math.h> | |||
| #include <getopt.h> | |||
| #include <string.h> | |||
| #include <jack/jack.h> | |||
| #include <jack/transport.h> | |||
| 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); | |||
| } | |||
| @@ -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); | |||
| } | |||
| @@ -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); | |||
| @@ -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 <unistd.h> | |||
| #include <stdio.h> | |||
| #include <errno.h> | |||
| #include <stdlib.h> | |||
| #include <string.h> | |||
| #include <math.h> | |||
| #define __SMP__ 1 | |||
| #include <jack/jack.h> | |||
| #include <jack/thread.h> | |||
| #include <math.h> | |||
| #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); | |||
| } | |||
| @@ -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 */ | |||
| @@ -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 <stdio.h> | |||
| #include <errno.h> | |||
| #include <unistd.h> | |||
| #include <stdlib.h> | |||
| #include <string.h> | |||
| #include <jack/jack.h> | |||
| #include <jack/thread.h> | |||
| 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); | |||
| } | |||
| @@ -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"); | |||
| @@ -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 = "<group>"; | |||
| @@ -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 = ( | |||