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> | 2008-05-26 Stephane Letz <letz@grame.fr> | ||||
* Merge control branch. | * 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> | 2008-05-24 Stephane Letz <letz@grame.fr> | ||||
@@ -28,361 +28,10 @@ | |||||
#ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED | #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED | ||||
#define 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 | #endif | ||||
/** Parameter types, intentionally similar to jack_driver_param_type_t */ | /** 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); | fprintf(stderr, "ERROR! client should be called jack_connect or jack_disconnect. client is called %s\n", my_name); | ||||
return 1; | return 1; | ||||
} | } | ||||
printf("connecting %ld\n",connecting); | |||||
if (argc != 3) { | if (argc != 3) { | ||||
fprintf (stderr, "usage: %s <src_port> <dst_port>\n", my_name); | 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 */ | /* 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"); | fprintf (stderr, "jack server not running?\n"); | ||||
return 1; | return 1; | ||||
} | } | ||||
@@ -19,7 +19,7 @@ static int Jack_Graph_Order_Callback(void *arg) | |||||
const char **ports; | const char **ports; | ||||
int i; | 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); | ports = jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsOutput); | ||||
if (ports) { | if (ports) { | ||||
@@ -45,7 +45,6 @@ main (int argc, char *argv[]) | |||||
{ | { | ||||
jack_options_t options = JackNullOption; | jack_options_t options = JackNullOption; | ||||
jack_status_t status; | jack_status_t status; | ||||
char c; | |||||
/* open a client connection to the JACK server */ | /* open a client connection to the JACK server */ | ||||
@@ -31,20 +31,20 @@ char *package; /* program name */ | |||||
jack_client_t *client; | jack_client_t *client; | ||||
int onoff; | int onoff; | ||||
void jack_shutdown(void *arg) | |||||
static void jack_shutdown(void *arg) | |||||
{ | { | ||||
fprintf(stderr, "JACK shut down, exiting ...\n"); | fprintf(stderr, "JACK shut down, exiting ...\n"); | ||||
exit(1); | exit(1); | ||||
} | } | ||||
void signal_handler(int sig) | |||||
static void signal_handler(int sig) | |||||
{ | { | ||||
jack_client_close(client); | jack_client_close(client); | ||||
fprintf(stderr, "signal received, exiting ...\n"); | fprintf(stderr, "signal received, exiting ...\n"); | ||||
exit(0); | exit(0); | ||||
} | } | ||||
void parse_arguments(int argc, char *argv[]) | |||||
static void parse_arguments(int argc, char *argv[]) | |||||
{ | { | ||||
if (argc < 2) { | if (argc < 2) { | ||||
fprintf(stderr, "usage: %s y|n\n", package); | fprintf(stderr, "usage: %s y|n\n", package); | ||||
@@ -61,32 +61,24 @@ void parse_arguments(int argc, char *argv[]) | |||||
int | int | ||||
main (int argc, char *argv[]) | main (int argc, char *argv[]) | ||||
{ | { | ||||
//parse_arguments (argc, argv); | |||||
parse_arguments (argc, argv); | |||||
/* become a JACK client */ | /* 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"); | fprintf (stderr, "JACK server not running?\n"); | ||||
exit(1); | exit(1); | ||||
} | } | ||||
/* | |||||
signal (SIGQUIT, signal_handler); | signal (SIGQUIT, signal_handler); | ||||
signal (SIGTERM, signal_handler); | signal (SIGTERM, signal_handler); | ||||
signal (SIGHUP, signal_handler); | signal (SIGHUP, signal_handler); | ||||
signal (SIGINT, signal_handler); | signal (SIGINT, signal_handler); | ||||
*/ | |||||
jack_on_shutdown (client, jack_shutdown, 0); | jack_on_shutdown (client, jack_shutdown, 0); | ||||
/* | |||||
if (jack_set_freewheel (client, onoff)) { | if (jack_set_freewheel (client, onoff)) { | ||||
fprintf (stderr, "failed to reset freewheel mode\n"); | 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); | jack_client_close(client); | ||||
return 0; | return 0; | ||||
@@ -16,7 +16,7 @@ char *load_init = ""; | |||||
char *server_name = NULL; | char *server_name = NULL; | ||||
int wait_opt = 0; | int wait_opt = 0; | ||||
void | |||||
static void | |||||
signal_handler (int sig) | signal_handler (int sig) | ||||
{ | { | ||||
jack_status_t status; | jack_status_t status; | ||||
@@ -31,7 +31,7 @@ signal_handler (int sig) | |||||
exit (0); | exit (0); | ||||
} | } | ||||
void | |||||
static void | |||||
show_usage () | show_usage () | ||||
{ | { | ||||
fprintf (stderr, "usage: %s [ options ] client-name [ load-name " | fprintf (stderr, "usage: %s [ options ] client-name [ load-name " | ||||
@@ -45,7 +45,7 @@ show_usage () | |||||
); | ); | ||||
} | } | ||||
int | |||||
static int | |||||
parse_args (int argc, char *argv[]) | parse_args (int argc, char *argv[]) | ||||
{ | { | ||||
int c; | int c; | ||||
@@ -169,7 +169,8 @@ main (int argc, char *argv[]) | |||||
sleep (1); | sleep (1); | ||||
} | } | ||||
} | } | ||||
jack_client_close(client); | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -69,7 +69,8 @@ main (int argc, char *argv[]) | |||||
} else { | } else { | ||||
fprintf (stdout, "%s unloaded.\n", client_name); | fprintf (stdout, "%s unloaded.\n", client_name); | ||||
} | } | ||||
jack_client_close(client); | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -5,20 +5,17 @@ | |||||
#endif | #endif | ||||
#include <string.h> | #include <string.h> | ||||
#include <getopt.h> | #include <getopt.h> | ||||
//#include <config.h> | |||||
#include <jack/jack.h> | #include <jack/jack.h> | ||||
char * my_name; | char * my_name; | ||||
void | |||||
static void | |||||
show_version (void) | show_version (void) | ||||
{ | { | ||||
//fprintf (stderr, "%s: JACK Audio Connection Kit version " VERSION "\n", my_name); | //fprintf (stderr, "%s: JACK Audio Connection Kit version " VERSION "\n", my_name); | ||||
} | } | ||||
void | |||||
static void | |||||
show_usage (void) | show_usage (void) | ||||
{ | { | ||||
show_version (); | show_version (); | ||||
@@ -54,7 +51,7 @@ main (int argc, char *argv[]) | |||||
int show_type = 0; | int show_type = 0; | ||||
int c; | int c; | ||||
int option_index; | int option_index; | ||||
char* aliases[2]; | |||||
char* aliases[2]; | |||||
jack_port_t *port; | jack_port_t *port; | ||||
struct option long_options[] = { | struct option long_options[] = { | ||||
@@ -129,9 +126,7 @@ main (int argc, char *argv[]) | |||||
return 1; | 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) { | for (i = 0; ports[i]; ++i) { | ||||
// skip over any that don't match ALL of the strings presented at command line | // skip over any that don't match ALL of the strings presented at command line | ||||
@@ -19,20 +19,19 @@ | |||||
#include <stdlib.h> | #include <stdlib.h> | ||||
#include <stdio.h> | #include <stdio.h> | ||||
#include <errno.h> | #include <errno.h> | ||||
#ifndef WIN32 | |||||
#include <unistd.h> | #include <unistd.h> | ||||
#endif | |||||
#include <math.h> | #include <math.h> | ||||
#include <getopt.h> | #include <getopt.h> | ||||
#include <string.h> | #include <string.h> | ||||
#include <jack/jack.h> | #include <jack/jack.h> | ||||
#include <jack/transport.h> | |||||
typedef jack_default_audio_sample_t sample_t; | typedef jack_default_audio_sample_t sample_t; | ||||
const double PI = 3.14; | const double PI = 3.14; | ||||
jack_client_t *client; | jack_client_t *client; | ||||
jack_port_t *input_port; | |||||
jack_port_t *output_port; | jack_port_t *output_port; | ||||
unsigned long sr; | unsigned long sr; | ||||
int freq = 880; | int freq = 880; | ||||
@@ -43,32 +42,41 @@ long offset = 0; | |||||
int transport_aware = 0; | int transport_aware = 0; | ||||
jack_transport_state_t transport_state; | 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 () | usage () | ||||
{ | { | ||||
fprintf (stderr, "\n" | 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) | process_silence (jack_nframes_t nframes) | ||||
{ | { | ||||
sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes); | sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes); | ||||
memset (buffer, 0, sizeof (jack_default_audio_sample_t) * 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); | sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes); | ||||
jack_nframes_t frames_left = 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); | memcpy (buffer + (nframes - frames_left), wave + offset, sizeof (sample_t) * frames_left); | ||||
offset += 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) | process (jack_nframes_t nframes, void *arg) | ||||
{ | { | ||||
if (transport_aware) { | if (transport_aware) { | ||||
@@ -108,8 +108,8 @@ process (jack_nframes_t nframes, void *arg) | |||||
process_audio (nframes); | process_audio (nframes); | ||||
return 0; | return 0; | ||||
} | } | ||||
*/ | |||||
int | |||||
static int | |||||
sample_rate_change () { | sample_rate_change () { | ||||
printf("Sample rate has changed! Exiting...\n"); | printf("Sample rate has changed! Exiting...\n"); | ||||
exit(-1); | exit(-1); | ||||
@@ -118,6 +118,7 @@ sample_rate_change () { | |||||
int | int | ||||
main (int argc, char *argv[]) | main (int argc, char *argv[]) | ||||
{ | { | ||||
sample_t scale; | sample_t scale; | ||||
int i, attack_length, decay_length; | int i, attack_length, decay_length; | ||||
double *amp; | double *amp; | ||||
@@ -129,6 +130,7 @@ main (int argc, char *argv[]) | |||||
char *client_name = 0; | char *client_name = 0; | ||||
char *bpm_string = "bpm"; | char *bpm_string = "bpm"; | ||||
int verbose = 0; | int verbose = 0; | ||||
jack_status_t status; | |||||
const char *options = "f:A:D:a:d:b:n:thv"; | const char *options = "f:A:D:a:d:b:n:thv"; | ||||
struct option long_options[] = | struct option long_options[] = | ||||
@@ -145,7 +147,7 @@ main (int argc, char *argv[]) | |||||
{"verbose", 0, 0, 'v'}, | {"verbose", 0, 0, 'v'}, | ||||
{0, 0, 0, 0} | {0, 0, 0, 0} | ||||
}; | }; | ||||
while ((opt = getopt_long (argc, argv, options, long_options, &option_index)) != EOF) { | while ((opt = getopt_long (argc, argv, options, long_options, &option_index)) != EOF) { | ||||
switch (opt) { | switch (opt) { | ||||
case 'f': | case 'f': | ||||
@@ -203,7 +205,6 @@ main (int argc, char *argv[]) | |||||
return -1; | return -1; | ||||
} | } | ||||
} | } | ||||
if (!got_bpm) { | if (!got_bpm) { | ||||
fprintf (stderr, "bpm not specified\n"); | fprintf (stderr, "bpm not specified\n"); | ||||
usage (); | usage (); | ||||
@@ -215,16 +216,14 @@ main (int argc, char *argv[]) | |||||
client_name = (char *) malloc (9 * sizeof (char)); | client_name = (char *) malloc (9 * sizeof (char)); | ||||
strcpy (client_name, "metro"); | 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"); | fprintf (stderr, "jack server not running?\n"); | ||||
return 1; | 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); | 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 */ | /* setup wave table parameters */ | ||||
wave_length = 60 * sr / bpm; | wave_length = 60 * sr / bpm; | ||||
@@ -234,9 +233,7 @@ main (int argc, char *argv[]) | |||||
scale = 2 * PI * freq / sr; | scale = 2 * PI * freq / sr; | ||||
if (tone_length >= wave_length) { | 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; | return -1; | ||||
} | } | ||||
if (attack_length + decay_length > (int)tone_length) { | if (attack_length + decay_length > (int)tone_length) { | ||||
@@ -251,51 +248,35 @@ main (int argc, char *argv[]) | |||||
for (i = 0; i < attack_length; i++) { | for (i = 0; i < attack_length; i++) { | ||||
amp[i] = max_amp * i / ((double) attack_length); | 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; | amp[i] = max_amp; | ||||
} | } | ||||
for (i = (int)tone_length - decay_length; i < (int)tone_length; i++) { | for (i = (int)tone_length - decay_length; i < (int)tone_length; i++) { | ||||
amp[i] = - max_amp * (i - (double) tone_length) / ((double) decay_length); | 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); | 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; | 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"); | fprintf (stderr, "cannot activate client"); | ||||
return 1; | 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); | 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_nsamp; | ||||
jack_nframes_t loop_index; | 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, "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"); | 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"); | 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; | int i,j; | ||||
void* port_buf = jack_port_get_buffer(output_port, nframes); | void* port_buf = jack_port_get_buffer(output_port, nframes); | ||||
@@ -83,7 +90,7 @@ int main(int narg, char **args) | |||||
usage(); | usage(); | ||||
exit(1); | 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"); | fprintf (stderr, "jack server not running?\n"); | ||||
return 1; | return 1; | ||||
@@ -109,10 +116,18 @@ int main(int narg, char **args) | |||||
fprintf (stderr, "cannot activate client"); | fprintf (stderr, "cannot activate client"); | ||||
return 1; | 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); | sleep(1); | ||||
}; | }; | ||||
jack_client_close(client); | |||||
exit (0); | |||||
} | } |
@@ -33,7 +33,16 @@ jack_default_audio_sample_t note_on; | |||||
unsigned char note = 0; | unsigned char note = 0; | ||||
jack_default_audio_sample_t note_frqs[128]; | 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; | int i; | ||||
for(i=0; i<128; 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; | int i; | ||||
void* port_buf = jack_port_get_buffer(input_port, nframes); | void* port_buf = jack_port_get_buffer(input_port, nframes); | ||||
@@ -88,23 +97,21 @@ int process(jack_nframes_t nframes, void *arg) | |||||
return 0; | 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); | printf("the sample rate is now %" PRIu32 "/sec\n", nframes); | ||||
calc_note_frqs((jack_default_audio_sample_t)nframes); | calc_note_frqs((jack_default_audio_sample_t)nframes); | ||||
return 0; | return 0; | ||||
} | } | ||||
void jack_shutdown(void *arg) | |||||
static void jack_shutdown(void *arg) | |||||
{ | { | ||||
exit(1); | exit(1); | ||||
} | } | ||||
int main(int narg, char **args) | 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"); | fprintf(stderr, "jack server not running?\n"); | ||||
return 1; | return 1; | ||||
@@ -126,10 +133,15 @@ int main(int narg, char **args) | |||||
fprintf(stderr, "cannot activate client"); | fprintf(stderr, "cannot activate client"); | ||||
return 1; | 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 */ | /* run until interrupted */ | ||||
while(1) | |||||
{ | |||||
while(1) { | |||||
sleep(1); | sleep(1); | ||||
} | } | ||||
jack_client_close(client); | 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 | Exit | ||||
} client_state = Init; | } 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 | * The process callback for this JACK application is called in a | ||||
* special realtime thread once for each audio cycle. | * 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 | * This client follows a simple rule: when the JACK transport is | ||||
* running, copy the input port to the output. When it stops, exit. | * running, copy the input port to the output. When it stops, exit. | ||||
*/ | */ | ||||
int | |||||
static int | |||||
_process (jack_nframes_t nframes) | _process (jack_nframes_t nframes) | ||||
{ | { | ||||
jack_default_audio_sample_t *in, *out; | jack_default_audio_sample_t *in, *out; | ||||
@@ -57,38 +64,55 @@ _process (jack_nframes_t nframes) | |||||
return 0; | return 0; | ||||
} | } | ||||
/* | |||||
int | |||||
process (jack_nframes_t nframes, void* arg) | |||||
static void* jack_thread(void *arg) | |||||
{ | { | ||||
jack_client_t* client = (jack_client_t*) 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; | return 0; | ||||
} | } | ||||
*/ | |||||
int | |||||
process (jack_nframes_t nframes, void* arg) | |||||
/* | |||||
static void* jack_thread(void *arg) | |||||
{ | { | ||||
jack_client_t* client = (jack_client_t*) 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); | 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; | return 0; | ||||
} | } | ||||
*/ | |||||
/** | /** | ||||
* JACK calls this shutdown_callback if the server ever shuts down or | * JACK calls this shutdown_callback if the server ever shuts down or | ||||
* decides to disconnect the client. | * decides to disconnect the client. | ||||
*/ | */ | ||||
void | |||||
static void | |||||
jack_shutdown (void *arg) | jack_shutdown (void *arg) | ||||
{ | { | ||||
exit (1); | exit (1); | ||||
@@ -139,9 +163,9 @@ main (int argc, char *argv[]) | |||||
/* tell the JACK server to call `process()' whenever | /* tell the JACK server to call `process()' whenever | ||||
there is work to be done. | 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 | /* tell the JACK server to call `jack_shutdown()' if | ||||
it ever shuts down, either entirely, or if it | it ever shuts down, either entirely, or if it | ||||
@@ -211,6 +235,12 @@ main (int argc, char *argv[]) | |||||
} | } | ||||
free (ports); | 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 */ | /* 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; | int count = 0; | ||||
jack_port_t* output_port; | jack_port_t* output_port; | ||||
int | |||||
static int | |||||
process(jack_nframes_t nframes, void* arg) | process(jack_nframes_t nframes, void* arg) | ||||
{ | { | ||||
if (count++ == 1000) { | if (count++ == 1000) { | ||||
@@ -41,7 +41,7 @@ process(jack_nframes_t nframes, void* arg) | |||||
return 0; | return 0; | ||||
} | } | ||||
void | |||||
static void | |||||
shutdown (void *arg) | shutdown (void *arg) | ||||
{ | { | ||||
printf("shutdown \n"); | printf("shutdown \n"); | ||||
@@ -29,7 +29,6 @@ | |||||
4B35C6940D4733B9000DE7AE /* PBXTargetDependency */, | 4B35C6940D4733B9000DE7AE /* PBXTargetDependency */, | ||||
4B35C6960D4733B9000DE7AE /* PBXTargetDependency */, | 4B35C6960D4733B9000DE7AE /* PBXTargetDependency */, | ||||
4B0A29300D5210C4002EFF74 /* PBXTargetDependency */, | 4B0A29300D5210C4002EFF74 /* PBXTargetDependency */, | ||||
4B0A2A700D524B01002EFF74 /* PBXTargetDependency */, | |||||
4B35C6980D4733B9000DE7AE /* PBXTargetDependency */, | 4B35C6980D4733B9000DE7AE /* PBXTargetDependency */, | ||||
4B35C69A0D4733B9000DE7AE /* PBXTargetDependency */, | 4B35C69A0D4733B9000DE7AE /* PBXTargetDependency */, | ||||
4B35C69C0D4733B9000DE7AE /* PBXTargetDependency */, | 4B35C69C0D4733B9000DE7AE /* PBXTargetDependency */, | ||||
@@ -70,7 +69,6 @@ | |||||
4BA693E90CBE5BBA00EAD520 /* PBXTargetDependency */, | 4BA693E90CBE5BBA00EAD520 /* PBXTargetDependency */, | ||||
4BA693EB0CBE5BBA00EAD520 /* PBXTargetDependency */, | 4BA693EB0CBE5BBA00EAD520 /* PBXTargetDependency */, | ||||
4B0A28F40D520D11002EFF74 /* PBXTargetDependency */, | 4B0A28F40D520D11002EFF74 /* PBXTargetDependency */, | ||||
4B0A2A6E0D524AF2002EFF74 /* PBXTargetDependency */, | |||||
4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */, | 4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */, | ||||
4BFA99500AAAED90009E916C /* PBXTargetDependency */, | 4BFA99500AAAED90009E916C /* PBXTargetDependency */, | ||||
4BFA99520AAAED90009E916C /* PBXTargetDependency */, | 4BFA99520AAAED90009E916C /* PBXTargetDependency */, | ||||
@@ -92,8 +90,6 @@ | |||||
4B0206A10DC0BAB400319AF1 /* JackProcessSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B02069D0DC0BAB400319AF1 /* JackProcessSync.cpp */; }; | 4B0206A10DC0BAB400319AF1 /* JackProcessSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B02069D0DC0BAB400319AF1 /* JackProcessSync.cpp */; }; | ||||
4B0A28ED0D520852002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; }; | 4B0A28ED0D520852002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; }; | ||||
4B0A29260D52108E002EFF74 /* 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 */; }; | 4B35C41E0D4731D1000DE7AE /* Jackdmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D2250834F06A00C94B91 /* Jackdmp.cpp */; }; | ||||
4B35C4290D4731D1000DE7AE /* JackMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B799AD707899652003F3F15 /* JackMachPort.h */; }; | 4B35C4290D4731D1000DE7AE /* JackMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B799AD707899652003F3F15 /* JackMachPort.h */; }; | ||||
4B35C42A0D4731D1000DE7AE /* JackError.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D1770834EE4800C94B91 /* JackError.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 */; }; | 4B4F9C930DC20C0400706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; }; | ||||
4B4F9D820DC2178E00706CB0 /* JackMessageBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */; }; | 4B4F9D820DC2178E00706CB0 /* JackMessageBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */; }; | ||||
4B4F9D830DC2178F00706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; }; | 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 */; }; | 4B5A1BBE0CD1CC110005BF74 /* midiseq.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BBD0CD1CC110005BF74 /* midiseq.c */; }; | ||||
4B5A1BDD0CD1CD420005BF74 /* midisine.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BDC0CD1CD420005BF74 /* midisine.c */; }; | 4B5A1BDD0CD1CD420005BF74 /* midisine.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BDC0CD1CD420005BF74 /* midisine.c */; }; | ||||
4B5DB9830CD2429A00EBA5EE /* JackDebugClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B98AE000931D30C0091932A /* JackDebugClient.cpp */; }; | 4B5DB9830CD2429A00EBA5EE /* JackDebugClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B98AE000931D30C0091932A /* JackDebugClient.cpp */; }; | ||||
@@ -547,20 +541,6 @@ | |||||
remoteGlobalIDString = 4B0A29230D52108E002EFF74; | remoteGlobalIDString = 4B0A29230D52108E002EFF74; | ||||
remoteInfo = "jack_thread_wait 64 bits"; | 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 */ = { | 4B35C5540D4731D2000DE7AE /* PBXContainerItemProxy */ = { | ||||
isa = PBXContainerItemProxy; | isa = PBXContainerItemProxy; | ||||
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; }; | 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; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4B0A29670D5231DC002EFF74 /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B0A2A5F0D524AB2002EFF74 /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B35C41F0D4731D1000DE7AE /* Frameworks */ = { | 4B35C41F0D4731D1000DE7AE /* Frameworks */ = { | ||||
isa = PBXFrameworksBuildPhase; | isa = PBXFrameworksBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -1392,20 +1352,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4B5175290D8FE69300961F37 /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B57F58F0D72C27900B4E719 /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B5A1BB50CD1CB9E0005BF74 /* Frameworks */ = { | 4B5A1BB50CD1CB9E0005BF74 /* Frameworks */ = { | ||||
isa = PBXFrameworksBuildPhase; | isa = PBXFrameworksBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -1705,11 +1651,7 @@ | |||||
4B35C63E0D4731D3000DE7AE /* inprocess.so */, | 4B35C63E0D4731D3000DE7AE /* inprocess.so */, | ||||
4B0A28E60D52073D002EFF74 /* jack_thread_wait */, | 4B0A28E60D52073D002EFF74 /* jack_thread_wait */, | ||||
4B0A292D0D52108E002EFF74 /* 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 */, | 4BA7FEC30D8E76270017FF73 /* jack_server_control */, | ||||
4B51752F0D8FE69300961F37 /* jack_thread_wait1 */, | |||||
); | ); | ||||
name = Products; | name = Products; | ||||
sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
@@ -1718,8 +1660,6 @@ | |||||
isa = PBXGroup; | isa = PBXGroup; | ||||
children = ( | children = ( | ||||
4BA7FEC80D8E76650017FF73 /* control.c */, | 4BA7FEC80D8E76650017FF73 /* control.c */, | ||||
4B0A29820D523269002EFF74 /* mp_tw.cpp */, | |||||
4B57F5BA0D72C2B000B4E719 /* tw1.c */, | |||||
4B0A28EC0D520852002EFF74 /* tw.c */, | 4B0A28EC0D520852002EFF74 /* tw.c */, | ||||
4B5A1BDC0CD1CD420005BF74 /* midisine.c */, | 4B5A1BDC0CD1CD420005BF74 /* midisine.c */, | ||||
4B5A1BBD0CD1CC110005BF74 /* midiseq.c */, | 4B5A1BBD0CD1CC110005BF74 /* midiseq.c */, | ||||
@@ -2082,20 +2022,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4B0A29640D5231DC002EFF74 /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B0A2A5C0D524AB2002EFF74 /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B35C41C0D4731D1000DE7AE /* Headers */ = { | 4B35C41C0D4731D1000DE7AE /* Headers */ = { | ||||
isa = PBXHeadersBuildPhase; | isa = PBXHeadersBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -2378,20 +2304,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4B5175260D8FE69300961F37 /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B57F58C0D72C27900B4E719 /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B5A1BB20CD1CB9E0005BF74 /* Headers */ = { | 4B5A1BB20CD1CB9E0005BF74 /* Headers */ = { | ||||
isa = PBXHeadersBuildPhase; | isa = PBXHeadersBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -2719,44 +2631,6 @@ | |||||
productReference = 4B0A292D0D52108E002EFF74 /* jack_thread_wait */; | productReference = 4B0A292D0D52108E002EFF74 /* jack_thread_wait */; | ||||
productType = "com.apple.product-type.tool"; | 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 */ = { | 4B35C41B0D4731D1000DE7AE /* jackdmp framework 64bits */ = { | ||||
isa = PBXNativeTarget; | isa = PBXNativeTarget; | ||||
buildConfigurationList = 4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */; | buildConfigurationList = 4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */; | ||||
@@ -3244,44 +3118,6 @@ | |||||
productReference = 4B35C63E0D4731D3000DE7AE /* inprocess.so */; | productReference = 4B35C63E0D4731D3000DE7AE /* inprocess.so */; | ||||
productType = "com.apple.product-type.library.dynamic"; | 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 */ = { | 4B5A1BB10CD1CB9E0005BF74 /* jack_midiseq Universal */ = { | ||||
isa = PBXNativeTarget; | isa = PBXNativeTarget; | ||||
buildConfigurationList = 4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */; | buildConfigurationList = 4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */; | ||||
@@ -3823,8 +3659,6 @@ | |||||
4BA692A60CBE4BC700EAD520 /* jack_load Universal */, | 4BA692A60CBE4BC700EAD520 /* jack_load Universal */, | ||||
4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */, | 4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */, | ||||
4B0A28DC0D52073D002EFF74 /* jack_thread_wait */, | 4B0A28DC0D52073D002EFF74 /* jack_thread_wait */, | ||||
4B57F58B0D72C27900B4E719 /* jack_thread_wait1 */, | |||||
4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */, | |||||
4B699D4F097D421600A18468 /* synchroServer Universal */, | 4B699D4F097D421600A18468 /* synchroServer Universal */, | ||||
4B699D67097D421600A18468 /* synchroClient Universal */, | 4B699D67097D421600A18468 /* synchroClient Universal */, | ||||
4B699D7F097D421700A18468 /* synchroServerClient Universal */, | 4B699D7F097D421700A18468 /* synchroServerClient Universal */, | ||||
@@ -3852,8 +3686,6 @@ | |||||
4B35C5C00D4731D2000DE7AE /* jack_load 64 bits */, | 4B35C5C00D4731D2000DE7AE /* jack_load 64 bits */, | ||||
4B35C5CC0D4731D2000DE7AE /* jack_unload 64 bits */, | 4B35C5CC0D4731D2000DE7AE /* jack_unload 64 bits */, | ||||
4B0A29230D52108E002EFF74 /* jack_thread_wait 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 */, | 4B35C5D80D4731D2000DE7AE /* synchroServer 64 bits */, | ||||
4B35C5EC0D4731D2000DE7AE /* synchroClient 64 bits */, | 4B35C5EC0D4731D2000DE7AE /* synchroClient 64 bits */, | ||||
4B35C6000D4731D2000DE7AE /* synchroServerClient 64 bits */, | 4B35C6000D4731D2000DE7AE /* synchroServerClient 64 bits */, | ||||
@@ -3911,20 +3743,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4B0A29680D5231DC002EFF74 /* Rez */ = { | |||||
isa = PBXRezBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B0A2A600D524AB2002EFF74 /* Rez */ = { | |||||
isa = PBXRezBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B35C4200D4731D1000DE7AE /* Rez */ = { | 4B35C4200D4731D1000DE7AE /* Rez */ = { | ||||
isa = PBXRezBuildPhase; | isa = PBXRezBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -4079,20 +3897,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4B51752A0D8FE69300961F37 /* Rez */ = { | |||||
isa = PBXRezBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B57F5900D72C27900B4E719 /* Rez */ = { | |||||
isa = PBXRezBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4B5A1BB60CD1CB9E0005BF74 /* Rez */ = { | 4B5A1BB60CD1CB9E0005BF74 /* Rez */ = { | ||||
isa = PBXRezBuildPhase; | isa = PBXRezBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -4273,22 +4077,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | 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 */ = { | 4B35C41D0D4731D1000DE7AE /* Sources */ = { | ||||
isa = PBXSourcesBuildPhase; | isa = PBXSourcesBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -4586,22 +4374,6 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | 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 */ = { | 4B5A1BB30CD1CB9E0005BF74 /* Sources */ = { | ||||
isa = PBXSourcesBuildPhase; | isa = PBXSourcesBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -4914,16 +4686,6 @@ | |||||
target = 4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */; | target = 4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */; | ||||
targetProxy = 4B0A292F0D5210C4002EFF74 /* PBXContainerItemProxy */; | 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 */ = { | 4B35C5530D4731D2000DE7AE /* PBXTargetDependency */ = { | ||||
isa = PBXTargetDependency; | isa = PBXTargetDependency; | ||||
target = 4B699D03097D421600A18468 /* jack_external_metro Universal */; | target = 4B699D03097D421600A18468 /* jack_external_metro Universal */; | ||||
@@ -5177,213 +4939,27 @@ | |||||
4BFA99580AAAED90009E916C /* PBXTargetDependency */ = { | 4BFA99580AAAED90009E916C /* PBXTargetDependency */ = { | ||||
isa = PBXTargetDependency; | isa = PBXTargetDependency; | ||||
target = 4B699D4F097D421600A18468 /* synchroServer Universal */; | 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; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
ARCHS = ( | ARCHS = ( | ||||
@@ -5402,7 +4978,7 @@ | |||||
Jackmp, | Jackmp, | ||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PRODUCT_NAME = jack_mp_thread_wait; | |||||
PRODUCT_NAME = jack_thread_wait; | |||||
REZ_EXECUTABLE = YES; | REZ_EXECUTABLE = YES; | ||||
SDKROOT = ""; | SDKROOT = ""; | ||||
SECTORDER_FLAGS = ""; | SECTORDER_FLAGS = ""; | ||||
@@ -5415,7 +4991,7 @@ | |||||
}; | }; | ||||
name = Development; | name = Development; | ||||
}; | }; | ||||
4B0A296B0D5231DC002EFF74 /* Deployment */ = { | |||||
4B0A28E40D52073D002EFF74 /* Deployment */ = { | |||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
ARCHS = ( | ARCHS = ( | ||||
@@ -5433,7 +5009,7 @@ | |||||
Jackmp, | Jackmp, | ||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PRODUCT_NAME = jack_mp_thread_wait; | |||||
PRODUCT_NAME = jack_thread_wait; | |||||
REZ_EXECUTABLE = YES; | REZ_EXECUTABLE = YES; | ||||
SDKROOT = ""; | SDKROOT = ""; | ||||
SECTORDER_FLAGS = ""; | SECTORDER_FLAGS = ""; | ||||
@@ -5446,7 +5022,7 @@ | |||||
}; | }; | ||||
name = Deployment; | name = Deployment; | ||||
}; | }; | ||||
4B0A296C0D5231DC002EFF74 /* Default */ = { | |||||
4B0A28E50D52073D002EFF74 /* Default */ = { | |||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
ARCHS = ( | ARCHS = ( | ||||
@@ -5461,7 +5037,7 @@ | |||||
Jackmp, | Jackmp, | ||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PRODUCT_NAME = jack_mp_thread_wait; | |||||
PRODUCT_NAME = jack_thread_wait; | |||||
REZ_EXECUTABLE = YES; | REZ_EXECUTABLE = YES; | ||||
SDKROOT = ""; | SDKROOT = ""; | ||||
SECTORDER_FLAGS = ""; | SECTORDER_FLAGS = ""; | ||||
@@ -5473,7 +5049,7 @@ | |||||
}; | }; | ||||
name = Default; | name = Default; | ||||
}; | }; | ||||
4B0A2A620D524AB2002EFF74 /* Development */ = { | |||||
4B0A292A0D52108E002EFF74 /* Development */ = { | |||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
ARCHS = ( | ARCHS = ( | ||||
@@ -5494,7 +5070,7 @@ | |||||
Jackmp, | Jackmp, | ||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PRODUCT_NAME = jack_mp_thread_wait; | |||||
PRODUCT_NAME = jack_thread_wait; | |||||
REZ_EXECUTABLE = YES; | REZ_EXECUTABLE = YES; | ||||
SDKROOT = ""; | SDKROOT = ""; | ||||
SECTORDER_FLAGS = ""; | SECTORDER_FLAGS = ""; | ||||
@@ -5507,7 +5083,7 @@ | |||||
}; | }; | ||||
name = Development; | name = Development; | ||||
}; | }; | ||||
4B0A2A630D524AB2002EFF74 /* Deployment */ = { | |||||
4B0A292B0D52108E002EFF74 /* Deployment */ = { | |||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
ARCHS = ( | ARCHS = ( | ||||
@@ -5527,7 +5103,7 @@ | |||||
Jackmp, | Jackmp, | ||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PRODUCT_NAME = jack_mp_thread_wait; | |||||
PRODUCT_NAME = jack_thread_wait; | |||||
REZ_EXECUTABLE = YES; | REZ_EXECUTABLE = YES; | ||||
SDKROOT = ""; | SDKROOT = ""; | ||||
SECTORDER_FLAGS = ""; | SECTORDER_FLAGS = ""; | ||||
@@ -5540,7 +5116,7 @@ | |||||
}; | }; | ||||
name = Deployment; | name = Deployment; | ||||
}; | }; | ||||
4B0A2A640D524AB2002EFF74 /* Default */ = { | |||||
4B0A292C0D52108E002EFF74 /* Default */ = { | |||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
ARCHS = ( | ARCHS = ( | ||||
@@ -5557,7 +5133,7 @@ | |||||
Jackmp, | Jackmp, | ||||
); | ); | ||||
OTHER_REZFLAGS = ""; | OTHER_REZFLAGS = ""; | ||||
PRODUCT_NAME = jack_mp_thread_wait; | |||||
PRODUCT_NAME = jack_thread_wait; | |||||
REZ_EXECUTABLE = YES; | REZ_EXECUTABLE = YES; | ||||
SDKROOT = ""; | SDKROOT = ""; | ||||
SECTORDER_FLAGS = ""; | SECTORDER_FLAGS = ""; | ||||
@@ -8647,188 +8223,6 @@ | |||||
}; | }; | ||||
name = Default; | 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 */ = { | 4B5A1BB80CD1CB9E0005BF74 /* Development */ = { | ||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
@@ -11928,26 +11322,6 @@ | |||||
defaultConfigurationIsVisible = 0; | defaultConfigurationIsVisible = 0; | ||||
defaultConfigurationName = Default; | 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" */ = { | 4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */ = { | ||||
isa = XCConfigurationList; | isa = XCConfigurationList; | ||||
buildConfigurations = ( | buildConfigurations = ( | ||||
@@ -12218,26 +11592,6 @@ | |||||
defaultConfigurationIsVisible = 0; | defaultConfigurationIsVisible = 0; | ||||
defaultConfigurationName = Default; | 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" */ = { | 4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */ = { | ||||
isa = XCConfigurationList; | isa = XCConfigurationList; | ||||
buildConfigurations = ( | buildConfigurations = ( | ||||