Browse Source

Cleanup example clients : use jack_client_open and install a proper 'quit' signal handler.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2346 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.90
sletz 17 years ago
parent
commit
6919780fbc
16 changed files with 199 additions and 1625 deletions
  1. +1
    -0
      ChangeLog
  2. +3
    -354
      common/jack/control.h
  3. +1
    -3
      example-clients/connect.c
  4. +1
    -2
      example-clients/control.c
  5. +7
    -15
      example-clients/freewheel.c
  6. +5
    -4
      example-clients/ipload.c
  7. +2
    -1
      example-clients/ipunload.c
  8. +4
    -9
      example-clients/lsp.c
  9. +52
    -71
      example-clients/metro.c
  10. +21
    -6
      example-clients/midiseq.c
  11. +21
    -9
      example-clients/midisine.c
  12. +0
    -204
      example-clients/mp_tw.cpp
  13. +49
    -19
      example-clients/tw.c
  14. +0
    -250
      example-clients/tw1.c
  15. +2
    -2
      example-clients/zombie.c
  16. +30
    -676
      macosx/Jackdmp.xcodeproj/project.pbxproj

+ 1
- 0
ChangeLog View File

@@ -23,6 +23,7 @@ Fernando Lopez-Lezcano
2008-05-26 Stephane Letz <letz@grame.fr>

* Merge control branch.
* Cleanup example clients : use jack_client_open and install a proper 'quit' signal handler.

2008-05-24 Stephane Letz <letz@grame.fr>



+ 3
- 354
common/jack/control.h View File

@@ -28,361 +28,10 @@
#ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
#define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED

#include <jack/jslist.h>
#ifdef WIN32
typedef unsigned long sigset_t;
#endif

/** Parameter types, intentionally similar to jack_driver_param_type_t */
typedef enum
{
JackParamInt = 1, /**< @brief value type is a signed integer */
JackParamUInt, /**< @brief value type is an unsigned integer */
JackParamChar, /**< @brief value type is a char */
JackParamString, /**< @brief value type is a string with max size of ::JACK_PARAM_STRING_MAX+1 chars */
JackParamBool, /**< @brief value type is a boolean */
} jackctl_param_type_t;

/** @brief Max value that jackctl_param_type_t type can have */
#define JACK_PARAM_MAX (JackParamBool + 1)

/** @brief Max length of string parameter value, excluding terminating nul char */
#define JACK_PARAM_STRING_MAX 63

/** @brief Type for parameter value */
/* intentionally similar to jack_driver_param_value_t */
union jackctl_parameter_value
{
uint32_t ui; /**< @brief member used for ::JackParamUInt */
int32_t i; /**< @brief member used for ::JackParamInt */
char c; /**< @brief member used for ::JackParamChar */
char str[JACK_PARAM_STRING_MAX + 1]; /**< @brief member used for ::JackParamString */
bool b; /**< @brief member used for ::JackParamBool */
};

/** opaque type for server object */
typedef struct jackctl_server jackctl_server_t;

/** opaque type for driver object */
typedef struct jackctl_driver jackctl_driver_t;

/** opaque type for parameter object */
typedef struct jackctl_parameter jackctl_parameter_t;

#ifdef __cplusplus
extern "C" {
#endif
#if 0
} /* Adjust editor indent */
#endif

/**
* Call this function to setup process signal handling. As a general
* rule, it is required for proper operation for the server object.
*
* @param flags signals setup flags, use 0 for none. Currently no
* flags are defined
*
* @return the configurated signal set.
*/
sigset_t
jackctl_setup_signals(
unsigned int flags);

/**
* Call this function to wait on a signal set.
*
* @param signals signals set to wait on
*/

void
jackctl_wait_signals(
sigset_t signals);

/**
* Call this function to create server object.
*
* @return server object handle, NULL if creation of server object
* failed. Successfully created server object must be destroyed with
* paired call to ::jackctl_server_destroy
*/
jackctl_server_t *
jackctl_server_create();
/**
* Call this function to destroy server object.
*
* @param server server object handle to destroy
*/
void
jackctl_server_destroy(
jackctl_server_t * server);

/**
* Call this function to get list of available drivers. List node data
* pointers is a driver object handle (::jackctl_driver_t).
*
* @param server server object handle to get drivers for
*
* @return Single linked list of driver object handles. Must not be
* modified. Always same for same server object.
*/
const JSList *
jackctl_server_get_drivers_list(
jackctl_server_t * server);

/**
* Call this function to start JACK server
*
* @param server server object handle
* @param driver driver to use
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_start(
jackctl_server_t * server,
jackctl_driver_t * driver);

/**
* Call this function to stop JACK server
*
* @param server server object handle
*
* @return success status: true - success, false - fail
*/
bool
jackctl_server_stop(
jackctl_server_t * server);

/**
* Call this function to get list of server parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t).
*
* @param server server object handle to get parameters for
*
* @return Single linked list of parameter object handles. Must not be
* modified. Always same for same server object.
*/
const JSList *
jackctl_server_get_parameters(
jackctl_server_t * server);

/**
* Call this function to get name of driver.
*
* @param driver driver object handle to get name of
*
* @return driver name. Must not be modified. Always same for same
* driver object.
*/
const char *
jackctl_driver_get_name(
jackctl_driver_t * driver);

/**
* Call this function to get list of driver parameters. List node data
* pointers is a parameter object handle (::jackctl_parameter_t).
*
* @param driver driver object handle to get parameters for
*
* @return Single linked list of parameter object handles. Must not be
* modified. Always same for same driver object.
*/
const JSList *
jackctl_driver_get_parameters(
jackctl_driver_t * driver);

/**
* Call this function to get parameter name.
*
* @param parameter parameter object handle to get name of
*
* @return parameter name. Must not be modified. Always same for same
* parameter object.
*/
const char *
jackctl_parameter_get_name(
jackctl_parameter_t * parameter);

/**
* Call this function to get parameter short description.
*
* @param parameter parameter object handle to get short description of
*
* @return parameter short description. Must not be modified. Always
* same for same parameter object.
*/
const char *
jackctl_parameter_get_short_description(
jackctl_parameter_t * parameter);

/**
* Call this function to get parameter long description.
*
* @param parameter parameter object handle to get long description of
*
* @return parameter long description. Must not be modified. Always
* same for same parameter object.
*/
const char *
jackctl_parameter_get_long_description(
jackctl_parameter_t * parameter);

/**
* Call this function to get parameter type.
*
* @param parameter parameter object handle to get type of
*
* @return parameter type. Always same for same parameter object.
*/
jackctl_param_type_t
jackctl_parameter_get_type(
jackctl_parameter_t * parameter);

/**
* Call this function to get parameter character.
*
* @param parameter parameter object handle to get character of
*
* @return character.
*/
char
jackctl_parameter_get_id(
jackctl_parameter_t * parameter);

/**
* Call this function to check whether parameter has been set, or its
* default value is being used.
*
* @param parameter parameter object handle to check
*
* @return true - parameter is set, false - parameter is using default
* value.
*/
bool
jackctl_parameter_is_set(
jackctl_parameter_t * parameter);

/**
* Call this function to reset parameter to its default value.
*
* @param parameter parameter object handle to reset value of
*
* @return success status: true - success, false - fail
*/
bool
jackctl_parameter_reset(
jackctl_parameter_t * parameter);

/**
* Call this function to get parameter value.
*
* @param parameter parameter object handle to get value of
*
* @return parameter value.
*/
union jackctl_parameter_value
jackctl_parameter_get_value(
jackctl_parameter_t * parameter);

/**
* Call this function to set parameter value.
*
* @param parameter parameter object handle to get value of
* @param value_ptr pointer to variable containing parameter value
*
* @return success status: true - success, false - fail
*/
bool
jackctl_parameter_set_value(
jackctl_parameter_t * parameter,
const union jackctl_parameter_value * value_ptr);

/**
* Call this function to get parameter default value.
*
* @param parameter parameter object handle to get default value of
*
* @return parameter default value.
*/
union jackctl_parameter_value
jackctl_parameter_get_default_value(
jackctl_parameter_t * parameter);

/**
* Call this function to log an error message.
*
* @param format string
*/
void
jack_error(
const char *format,
...);

/**
* Call this function to log an information message.
*
* @param format string
*/
void
jack_info(
const char *format,
...);

/**
* Call this function to log an information message but only when
* verbose mode is enabled.
*
* @param format string
*/
void
jack_log(
const char *format,
...);

#if 0
{ /* Adjust editor indent */
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /* #ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED */
/* -*- Mode: C ; c-basic-offset: 4 -*- */
/*
JACK control API

Copyright (C) 2008 Nedko Arnaudov
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

*/
/**
* @file jack/control.h
* @ingroup publicheader
* @brief JACK control API
*
*/

#ifndef JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
#define JACKCTL_H__2EEDAD78_DF4C_4B26_83B7_4FF1A446A47E__INCLUDED
#include <jack/jslist.h>

#include <jack/jslist.h>
#ifdef WIN32
typedef unsigned long sigset_t;
#ifdef WIN32
typedef unsigned long sigset_t;
#endif

/** Parameter types, intentionally similar to jack_driver_param_type_t */


+ 1
- 3
example-clients/connect.c View File

@@ -57,8 +57,6 @@ main (int argc, char *argv[])
fprintf(stderr, "ERROR! client should be called jack_connect or jack_disconnect. client is called %s\n", my_name);
return 1;
}
printf("connecting %ld\n",connecting);

if (argc != 3) {
fprintf (stderr, "usage: %s <src_port> <dst_port>\n", my_name);
@@ -69,7 +67,7 @@ main (int argc, char *argv[])

/* try to become a client of the JACK server */

if ((client = jack_client_new (my_name)) == 0) {
if ((client = jack_client_open (my_name, JackNullOption, NULL)) == 0) {
fprintf (stderr, "jack server not running?\n");
return 1;
}


+ 1
- 2
example-clients/control.c View File

@@ -19,7 +19,7 @@ static int Jack_Graph_Order_Callback(void *arg)
const char **ports;
int i;
printf("Jack_Graph_Order_Callback count = %ld\n", reorder++);
printf("Jack_Graph_Order_Callback count = %d\n", reorder++);
ports = jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsOutput);
if (ports) {
@@ -45,7 +45,6 @@ main (int argc, char *argv[])
{
jack_options_t options = JackNullOption;
jack_status_t status;
char c;
/* open a client connection to the JACK server */



+ 7
- 15
example-clients/freewheel.c View File

@@ -31,20 +31,20 @@ char *package; /* program name */
jack_client_t *client;
int onoff;

void jack_shutdown(void *arg)
static void jack_shutdown(void *arg)
{
fprintf(stderr, "JACK shut down, exiting ...\n");
exit(1);
}

void signal_handler(int sig)
static void signal_handler(int sig)
{
jack_client_close(client);
fprintf(stderr, "signal received, exiting ...\n");
exit(0);
}

void parse_arguments(int argc, char *argv[])
static void parse_arguments(int argc, char *argv[])
{
if (argc < 2) {
fprintf(stderr, "usage: %s y|n\n", package);
@@ -61,32 +61,24 @@ void parse_arguments(int argc, char *argv[])
int
main (int argc, char *argv[])
{
//parse_arguments (argc, argv);
parse_arguments (argc, argv);

/* become a JACK client */
if ((client = jack_client_new ("freewheel1")) == 0) {
if ((client = jack_client_open ("freewheel", JackNullOption, NULL)) == 0) {
fprintf (stderr, "JACK server not running?\n");
exit(1);
}

/*
signal (SIGQUIT, signal_handler);
signal (SIGTERM, signal_handler);
signal (SIGHUP, signal_handler);
signal (SIGINT, signal_handler);
*/
jack_on_shutdown (client, jack_shutdown, 0);
/*

if (jack_set_freewheel (client, onoff)) {
fprintf (stderr, "failed to reset freewheel mode\n");
}
*/
jack_set_freewheel (client, 1);
sleep(5);
jack_set_freewheel (client, 0);
sleep(5);

jack_client_close(client);
return 0;


+ 5
- 4
example-clients/ipload.c View File

@@ -16,7 +16,7 @@ char *load_init = "";
char *server_name = NULL;
int wait_opt = 0;

void
static void
signal_handler (int sig)
{
jack_status_t status;
@@ -31,7 +31,7 @@ signal_handler (int sig)
exit (0);
}

void
static void
show_usage ()
{
fprintf (stderr, "usage: %s [ options ] client-name [ load-name "
@@ -45,7 +45,7 @@ show_usage ()
);
}

int
static int
parse_args (int argc, char *argv[])
{
int c;
@@ -169,7 +169,8 @@ main (int argc, char *argv[])
sleep (1);
}
}

jack_client_close(client);
return 0;
}


+ 2
- 1
example-clients/ipunload.c View File

@@ -69,7 +69,8 @@ main (int argc, char *argv[])
} else {
fprintf (stdout, "%s unloaded.\n", client_name);
}

jack_client_close(client);
return 0;
}


+ 4
- 9
example-clients/lsp.c View File

@@ -5,20 +5,17 @@
#endif
#include <string.h>
#include <getopt.h>

//#include <config.h>

#include <jack/jack.h>

char * my_name;

void
static void
show_version (void)
{
//fprintf (stderr, "%s: JACK Audio Connection Kit version " VERSION "\n", my_name);
}

void
static void
show_usage (void)
{
show_version ();
@@ -54,7 +51,7 @@ main (int argc, char *argv[])
int show_type = 0;
int c;
int option_index;
char* aliases[2];
char* aliases[2];
jack_port_t *port;
struct option long_options[] = {
@@ -129,9 +126,7 @@ main (int argc, char *argv[])
return 1;
}

ports = jack_get_ports (client, NULL, NULL, 0);
//jack_port_t *port;
ports = jack_get_ports (client, NULL, NULL, 0);

for (i = 0; ports[i]; ++i) {
// skip over any that don't match ALL of the strings presented at command line


+ 52
- 71
example-clients/metro.c View File

@@ -19,20 +19,19 @@
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#ifndef WIN32
#include <unistd.h>
#endif
#include <math.h>
#include <getopt.h>
#include <string.h>

#include <jack/jack.h>
#include <jack/transport.h>

typedef jack_default_audio_sample_t sample_t;

const double PI = 3.14;

jack_client_t *client;
jack_port_t *input_port;
jack_port_t *output_port;
unsigned long sr;
int freq = 880;
@@ -43,32 +42,41 @@ long offset = 0;
int transport_aware = 0;
jack_transport_state_t transport_state;

void
static void signal_handler(int sig)
{
jack_client_close(client);
fprintf(stderr, "signal received, exiting ...\n");
exit(0);
}

static void
usage ()

{
fprintf (stderr, "\n"
"usage: jack_metro \n"
" [ --frequency OR -f frequency (in Hz) ]\n"
" [ --amplitude OR -A maximum amplitude (between 0 and 1) ]\n"
" [ --duration OR -D duration (in ms) ]\n"
" [ --attack OR -a attack (in percent of duration) ]\n"
" [ --decay OR -d decay (in percent of duration) ]\n"
" [ --name OR -n jack name for metronome client ]\n"
" [ --transport OR -t transport aware ]\n"
" --bpm OR -b beats per minute\n"
);
"usage: jack_metro \n"
" [ --frequency OR -f frequency (in Hz) ]\n"
" [ --amplitude OR -A maximum amplitude (between 0 and 1) ]\n"
" [ --duration OR -D duration (in ms) ]\n"
" [ --attack OR -a attack (in percent of duration) ]\n"
" [ --decay OR -d decay (in percent of duration) ]\n"
" [ --name OR -n jack name for metronome client ]\n"
" [ --transport OR -t transport aware ]\n"
" --bpm OR -b beats per minute\n"
);
}

void
static void
process_silence (jack_nframes_t nframes)
{
sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes);
memset (buffer, 0, sizeof (jack_default_audio_sample_t) * nframes);
}

int
process_audio (jack_nframes_t nframes, void *arg)
static void
process_audio (jack_nframes_t nframes)
{

sample_t *buffer = (sample_t *) jack_port_get_buffer (output_port, nframes);
jack_nframes_t frames_left = nframes;
@@ -81,17 +89,9 @@ process_audio (jack_nframes_t nframes, void *arg)
memcpy (buffer + (nframes - frames_left), wave + offset, sizeof (sample_t) * frames_left);
offset += frames_left;
}
return 0;
}

void jack_port_register_cb(jack_port_id_t port, int mode, void *arg)
{
printf("jack_port_register port = %ld mode = %ld\n", port, mode);
}

/*
int
static int
process (jack_nframes_t nframes, void *arg)
{
if (transport_aware) {
@@ -108,8 +108,8 @@ process (jack_nframes_t nframes, void *arg)
process_audio (nframes);
return 0;
}
*/
int
static int
sample_rate_change () {
printf("Sample rate has changed! Exiting...\n");
exit(-1);
@@ -118,6 +118,7 @@ sample_rate_change () {
int
main (int argc, char *argv[])
{
sample_t scale;
int i, attack_length, decay_length;
double *amp;
@@ -129,6 +130,7 @@ main (int argc, char *argv[])
char *client_name = 0;
char *bpm_string = "bpm";
int verbose = 0;
jack_status_t status;

const char *options = "f:A:D:a:d:b:n:thv";
struct option long_options[] =
@@ -145,7 +147,7 @@ main (int argc, char *argv[])
{"verbose", 0, 0, 'v'},
{0, 0, 0, 0}
};
while ((opt = getopt_long (argc, argv, options, long_options, &option_index)) != EOF) {
switch (opt) {
case 'f':
@@ -203,7 +205,6 @@ main (int argc, char *argv[])
return -1;
}
}

if (!got_bpm) {
fprintf (stderr, "bpm not specified\n");
usage ();
@@ -215,16 +216,14 @@ main (int argc, char *argv[])
client_name = (char *) malloc (9 * sizeof (char));
strcpy (client_name, "metro");
}
if ((client = jack_client_new (client_name)) == 0) {
if ((client = jack_client_open (client_name, JackNoStartServer, &status)) == 0) {
fprintf (stderr, "jack server not running?\n");
return 1;
}
jack_set_process_callback (client, process_audio, 0);
jack_set_process_callback (client, process, 0);
output_port = jack_port_register (client, bpm_string, JACK_DEFAULT_AUDIO_TYPE, JackPortIsOutput, 0);
input_port = jack_port_register (client, "metro_in", JACK_DEFAULT_AUDIO_TYPE, JackPortIsInput, 0);
sr = jack_get_sample_rate (client);

sr = jack_get_sample_rate (client);

/* setup wave table parameters */
wave_length = 60 * sr / bpm;
@@ -234,9 +233,7 @@ main (int argc, char *argv[])
scale = 2 * PI * freq / sr;

if (tone_length >= wave_length) {
//fprintf (stderr, "invalid duration (tone length = %" PRIu32
// ", wave length = %" PRIu32 "\n", tone_length,
// wave_length);
fprintf (stderr, "invalid duration (tone length = %u, wave length = %u\n", tone_length, wave_length);
return -1;
}
if (attack_length + decay_length > (int)tone_length) {
@@ -251,51 +248,35 @@ main (int argc, char *argv[])
for (i = 0; i < attack_length; i++) {
amp[i] = max_amp * i / ((double) attack_length);
}
for (i = attack_length; i < (int) tone_length - decay_length; i++) {
for (i = attack_length; i < (int)tone_length - decay_length; i++) {
amp[i] = max_amp;
}
for (i = (int)tone_length - decay_length; i < (int)tone_length; i++) {
amp[i] = - max_amp * (i - (double) tone_length) / ((double) decay_length);
}
for (i = 0; i < (int) tone_length; i++) {
for (i = 0; i < (int)tone_length; i++) {
wave[i] = amp[i] * sin (scale * i);
}
for (i = tone_length; i < (int) wave_length; i++) {
for (i = tone_length; i < (int)wave_length; i++) {
wave[i] = 0;
}
if (jack_set_port_registration_callback(client, jack_port_register_cb, 0) != 0) {
printf("Error when calling jack_set_port_registration_callback() !\n");
}
if (jack_activate (client)) {

if (jack_activate (client)) {
fprintf (stderr, "cannot activate client");
return 1;
}
#ifdef WIN32
// Connection can only be done after activation
jack_connect(client,jack_port_name(output_port), "portaudio:winmme:in1");
jack_connect(client,jack_port_name(output_port), "portaudio:winmme:in2");
jack_connect(client,"portaudio:winmme:out2", jack_port_name(input_port));
#else
// Connection can only be done after activation
jack_connect(client,jack_port_name(output_port), "coreaudio:Built-in Audio:in2");
jack_connect(client,"coreaudio:Built-in Audio:out2", jack_port_name(input_port));
#endif
while ((getchar() != 'q')) {
//while (1) {
//sleep(1);
//printf("jack_frame_time %ld\n", (long)jack_frame_time(client));
//usleep(2000);
/* install a signal handler to properly quits jack client */
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);

/* run until interrupted */
while (1) {
sleep(1);
};
if (jack_deactivate (client)) {
fprintf (stderr, "cannot deactivate client");
return 1;
}
jack_client_close(client);
return 0;
exit (0);
}

+ 21
- 6
example-clients/midiseq.c View File

@@ -32,7 +32,14 @@ jack_nframes_t num_notes;
jack_nframes_t loop_nsamp;
jack_nframes_t loop_index;

void usage()
static void signal_handler(int sig)
{
jack_client_close(client);
fprintf(stderr, "signal received, exiting ...\n");
exit(0);
}

static void usage()
{
fprintf(stderr, "usage: jack_midiseq name nsamp [startindex note nsamp] ...... [startindex note nsamp]\n");
fprintf(stderr, "eg: jack_midiseq Sequencer 24000 0 60 8000 12000 63 8000\n");
@@ -40,7 +47,7 @@ void usage()
fprintf(stderr, "that lasts for 12000 samples, then a d4# that starts at 1/4 sec that lasts for 800 samples\n");
}

int process(jack_nframes_t nframes, void *arg)
static int process(jack_nframes_t nframes, void *arg)
{
int i,j;
void* port_buf = jack_port_get_buffer(output_port, nframes);
@@ -83,7 +90,7 @@ int main(int narg, char **args)
usage();
exit(1);
}
if((client = jack_client_new (args[1])) == 0)
if((client = jack_client_open (args[1], JackNullOption, NULL)) == 0)
{
fprintf (stderr, "jack server not running?\n");
return 1;
@@ -109,10 +116,18 @@ int main(int narg, char **args)
fprintf (stderr, "cannot activate client");
return 1;
}
/* install a signal handler to properly quits jack client */
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);

while (1)
{
/* run until interrupted */
while (1) {
sleep(1);
};
jack_client_close(client);
exit (0);
}

+ 21
- 9
example-clients/midisine.c View File

@@ -33,7 +33,16 @@ jack_default_audio_sample_t note_on;
unsigned char note = 0;
jack_default_audio_sample_t note_frqs[128];

void calc_note_frqs(jack_default_audio_sample_t srate)
jack_client_t *client;

static void signal_handler(int sig)
{
jack_client_close(client);
fprintf(stderr, "signal received, exiting ...\n");
exit(0);
}

static void calc_note_frqs(jack_default_audio_sample_t srate)
{
int i;
for(i=0; i<128; i++)
@@ -42,7 +51,7 @@ void calc_note_frqs(jack_default_audio_sample_t srate)
}
}

int process(jack_nframes_t nframes, void *arg)
static int process(jack_nframes_t nframes, void *arg)
{
int i;
void* port_buf = jack_port_get_buffer(input_port, nframes);
@@ -88,23 +97,21 @@ int process(jack_nframes_t nframes, void *arg)
return 0;
}

int srate(jack_nframes_t nframes, void *arg)
static int srate(jack_nframes_t nframes, void *arg)
{
printf("the sample rate is now %" PRIu32 "/sec\n", nframes);
calc_note_frqs((jack_default_audio_sample_t)nframes);
return 0;
}

void jack_shutdown(void *arg)
static void jack_shutdown(void *arg)
{
exit(1);
}

int main(int narg, char **args)
{
jack_client_t *client;

if ((client = jack_client_new("midisine")) == 0)
if ((client = jack_client_open("midisine", JackNullOption, NULL)) == 0)
{
fprintf(stderr, "jack server not running?\n");
return 1;
@@ -126,10 +133,15 @@ int main(int narg, char **args)
fprintf(stderr, "cannot activate client");
return 1;
}
/* install a signal handler to properly quits jack client */
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);

/* run until interrupted */
while(1)
{
while(1) {
sleep(1);
}
jack_client_close(client);


+ 0
- 204
example-clients/mp_tw.cpp View File

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

+ 49
- 19
example-clients/tw.c View File

@@ -23,6 +23,13 @@ volatile enum {
Exit
} client_state = Init;

static void signal_handler(int sig)
{
jack_client_close(client);
fprintf(stderr, "signal received, exiting ...\n");
exit(0);
}

/**
* The process callback for this JACK application is called in a
* special realtime thread once for each audio cycle.
@@ -30,7 +37,7 @@ volatile enum {
* This client follows a simple rule: when the JACK transport is
* running, copy the input port to the output. When it stops, exit.
*/
int
static int
_process (jack_nframes_t nframes)
{
jack_default_audio_sample_t *in, *out;
@@ -57,38 +64,55 @@ _process (jack_nframes_t nframes)
return 0;
}

/*
int
process (jack_nframes_t nframes, void* arg)
static void* jack_thread(void *arg)
{
jack_client_t* client = (jack_client_t*) arg;

while ((nframes = jack_thread_wait (client, _process (nframes))) != 0);

while (1) {
jack_nframes_t frames = jack_cycle_wait (client);
int status = _process(frames);
jack_cycle_signal (client, status);
// possibly do something else after signaling next clients in the graph
}
return 0;
}
*/

int
process (jack_nframes_t nframes, void* arg)
/*
static void* jack_thread(void *arg)
{
jack_client_t* client = (jack_client_t*) arg;
do {
int status = _process(nframes);
while (1) {
jack_nframes_t frames;
int status;
// cycle 1
frames = jack_cycle_wait (client);
status = _process(frames);
jack_cycle_signal (client, status);
// cycle 2
frames = jack_cycle_wait (client);
status = _process(frames);
jack_cycle_signal (client, status);
// cycle 3
frames = jack_cycle_wait (client);
status = _process(frames);
jack_cycle_signal (client, status);
// possibly do something else after signaling next clients in the graph
nframes = jack_cycle_wait (client);
} while (nframes != 0);
// cycle 4
frames = jack_cycle_wait (client);
status = _process(frames);
jack_cycle_signal (client, status);
}
return 0;
}
*/

/**
* JACK calls this shutdown_callback if the server ever shuts down or
* decides to disconnect the client.
*/
void
static void
jack_shutdown (void *arg)
{
exit (1);
@@ -139,9 +163,9 @@ main (int argc, char *argv[])

/* tell the JACK server to call `process()' whenever
there is work to be done.
*/
jack_set_process_callback (client, process, client);
*/
if (jack_set_process_thread(client, jack_thread, client) < 0)
exit(1);

/* tell the JACK server to call `jack_shutdown()' if
it ever shuts down, either entirely, or if it
@@ -211,6 +235,12 @@ main (int argc, char *argv[])
}

free (ports);
/* install a signal handler to properly quits jack client */
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);

/* keep running until the transport stops */



+ 0
- 250
example-clients/tw1.c View File

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

+ 2
- 2
example-clients/zombie.c View File

@@ -29,7 +29,7 @@ int running = 1;
int count = 0;
jack_port_t* output_port;

int
static int
process(jack_nframes_t nframes, void* arg)
{
if (count++ == 1000) {
@@ -41,7 +41,7 @@ process(jack_nframes_t nframes, void* arg)
return 0;
}

void
static void
shutdown (void *arg)
{
printf("shutdown \n");


+ 30
- 676
macosx/Jackdmp.xcodeproj/project.pbxproj View File

@@ -29,7 +29,6 @@
4B35C6940D4733B9000DE7AE /* PBXTargetDependency */,
4B35C6960D4733B9000DE7AE /* PBXTargetDependency */,
4B0A29300D5210C4002EFF74 /* PBXTargetDependency */,
4B0A2A700D524B01002EFF74 /* PBXTargetDependency */,
4B35C6980D4733B9000DE7AE /* PBXTargetDependency */,
4B35C69A0D4733B9000DE7AE /* PBXTargetDependency */,
4B35C69C0D4733B9000DE7AE /* PBXTargetDependency */,
@@ -70,7 +69,6 @@
4BA693E90CBE5BBA00EAD520 /* PBXTargetDependency */,
4BA693EB0CBE5BBA00EAD520 /* PBXTargetDependency */,
4B0A28F40D520D11002EFF74 /* PBXTargetDependency */,
4B0A2A6E0D524AF2002EFF74 /* PBXTargetDependency */,
4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */,
4BFA99500AAAED90009E916C /* PBXTargetDependency */,
4BFA99520AAAED90009E916C /* PBXTargetDependency */,
@@ -92,8 +90,6 @@
4B0206A10DC0BAB400319AF1 /* JackProcessSync.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B02069D0DC0BAB400319AF1 /* JackProcessSync.cpp */; };
4B0A28ED0D520852002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; };
4B0A29260D52108E002EFF74 /* tw.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A28EC0D520852002EFF74 /* tw.c */; };
4B0A29830D523269002EFF74 /* mp_tw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A29820D523269002EFF74 /* mp_tw.cpp */; };
4B0A2A5E0D524AB2002EFF74 /* mp_tw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0A29820D523269002EFF74 /* mp_tw.cpp */; };
4B35C41E0D4731D1000DE7AE /* Jackdmp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D2250834F06A00C94B91 /* Jackdmp.cpp */; };
4B35C4290D4731D1000DE7AE /* JackMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B799AD707899652003F3F15 /* JackMachPort.h */; };
4B35C42A0D4731D1000DE7AE /* JackError.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF8D1770834EE4800C94B91 /* JackError.h */; };
@@ -304,8 +300,6 @@
4B4F9C930DC20C0400706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; };
4B4F9D820DC2178E00706CB0 /* JackMessageBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */; };
4B4F9D830DC2178F00706CB0 /* JackMessageBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */; };
4B5175280D8FE69300961F37 /* tw1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B57F5BA0D72C2B000B4E719 /* tw1.c */; };
4B57F5BC0D72C2B000B4E719 /* tw1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B57F5BA0D72C2B000B4E719 /* tw1.c */; };
4B5A1BBE0CD1CC110005BF74 /* midiseq.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BBD0CD1CC110005BF74 /* midiseq.c */; };
4B5A1BDD0CD1CD420005BF74 /* midisine.c in Sources */ = {isa = PBXBuildFile; fileRef = 4B5A1BDC0CD1CD420005BF74 /* midisine.c */; };
4B5DB9830CD2429A00EBA5EE /* JackDebugClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B98AE000931D30C0091932A /* JackDebugClient.cpp */; };
@@ -547,20 +541,6 @@
remoteGlobalIDString = 4B0A29230D52108E002EFF74;
remoteInfo = "jack_thread_wait 64 bits";
};
4B0A2A6D0D524AF2002EFF74 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4B0A29630D5231DC002EFF74;
remoteInfo = jack_mp_thread_wait;
};
4B0A2A6F0D524B01002EFF74 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4B0A2A5B0D524AB2002EFF74;
remoteInfo = "jack_mp_thread_wait 64 bits";
};
4B35C5540D4731D2000DE7AE /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
@@ -947,9 +927,6 @@
4B0A28E60D52073D002EFF74 /* jack_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; };
4B0A28EC0D520852002EFF74 /* tw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tw.c; path = "../example-clients/tw.c"; sourceTree = SOURCE_ROOT; };
4B0A292D0D52108E002EFF74 /* jack_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; };
4B0A296D0D5231DC002EFF74 /* jack_mp_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_mp_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; };
4B0A29820D523269002EFF74 /* mp_tw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mp_tw.cpp; path = "../example-clients/mp_tw.cpp"; sourceTree = SOURCE_ROOT; };
4B0A2A650D524AB2002EFF74 /* jack_mp_thread_wait */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_mp_thread_wait; sourceTree = BUILT_PRODUCTS_DIR; };
4B123D3308B3954300540632 /* JackGlobalsClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobalsClient.cpp; path = ../common/JackGlobalsClient.cpp; sourceTree = SOURCE_ROOT; };
4B123D3608B3954A00540632 /* JackGlobalsServer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobalsServer.cpp; path = ../common/JackGlobalsServer.cpp; sourceTree = SOURCE_ROOT; };
4B2C28F908DAD01E00249230 /* JackGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackGlobals.cpp; path = ../common/JackGlobals.cpp; sourceTree = SOURCE_ROOT; };
@@ -990,11 +967,8 @@
4B464301076CAC7700E5077C /* Jack-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = "Jack-Info.plist"; sourceTree = SOURCE_ROOT; };
4B4F9C8A0DC20C0400706CB0 /* JackMessageBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackMessageBuffer.cpp; path = ../common/JackMessageBuffer.cpp; sourceTree = SOURCE_ROOT; };
4B4F9C8B0DC20C0400706CB0 /* JackMessageBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackMessageBuffer.h; path = ../common/JackMessageBuffer.h; sourceTree = SOURCE_ROOT; };
4B51752F0D8FE69300961F37 /* jack_thread_wait1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait1; sourceTree = BUILT_PRODUCTS_DIR; };
4B56880F08B5C8620022B32D /* JackFifo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackFifo.cpp; path = ../common/JackFifo.cpp; sourceTree = SOURCE_ROOT; };
4B56881008B5C8620022B32D /* JackFifo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackFifo.h; path = ../common/JackFifo.h; sourceTree = SOURCE_ROOT; };
4B57F5950D72C27900B4E719 /* jack_thread_wait1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_thread_wait1; sourceTree = BUILT_PRODUCTS_DIR; };
4B57F5BA0D72C2B000B4E719 /* tw1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tw1.c; path = "../example-clients/tw1.c"; sourceTree = SOURCE_ROOT; };
4B5A1BBB0CD1CB9E0005BF74 /* jack_midiseq */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_midiseq; sourceTree = BUILT_PRODUCTS_DIR; };
4B5A1BBD0CD1CC110005BF74 /* midiseq.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = midiseq.c; path = "../example-clients/midiseq.c"; sourceTree = SOURCE_ROOT; };
4B5A1BDA0CD1CCE10005BF74 /* jack_midisine */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_midisine; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1187,20 +1161,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A29670D5231DC002EFF74 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A2A5F0D524AB2002EFF74 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B35C41F0D4731D1000DE7AE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -1392,20 +1352,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5175290D8FE69300961F37 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B57F58F0D72C27900B4E719 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5A1BB50CD1CB9E0005BF74 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -1705,11 +1651,7 @@
4B35C63E0D4731D3000DE7AE /* inprocess.so */,
4B0A28E60D52073D002EFF74 /* jack_thread_wait */,
4B0A292D0D52108E002EFF74 /* jack_thread_wait */,
4B0A296D0D5231DC002EFF74 /* jack_mp_thread_wait */,
4B0A2A650D524AB2002EFF74 /* jack_mp_thread_wait */,
4B57F5950D72C27900B4E719 /* jack_thread_wait1 */,
4BA7FEC30D8E76270017FF73 /* jack_server_control */,
4B51752F0D8FE69300961F37 /* jack_thread_wait1 */,
);
name = Products;
sourceTree = "<group>";
@@ -1718,8 +1660,6 @@
isa = PBXGroup;
children = (
4BA7FEC80D8E76650017FF73 /* control.c */,
4B0A29820D523269002EFF74 /* mp_tw.cpp */,
4B57F5BA0D72C2B000B4E719 /* tw1.c */,
4B0A28EC0D520852002EFF74 /* tw.c */,
4B5A1BDC0CD1CD420005BF74 /* midisine.c */,
4B5A1BBD0CD1CC110005BF74 /* midiseq.c */,
@@ -2082,20 +2022,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A29640D5231DC002EFF74 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A2A5C0D524AB2002EFF74 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B35C41C0D4731D1000DE7AE /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -2378,20 +2304,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5175260D8FE69300961F37 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B57F58C0D72C27900B4E719 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5A1BB20CD1CB9E0005BF74 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@@ -2719,44 +2631,6 @@
productReference = 4B0A292D0D52108E002EFF74 /* jack_thread_wait */;
productType = "com.apple.product-type.tool";
};
4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4B0A29690D5231DC002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait" */;
buildPhases = (
4B0A29640D5231DC002EFF74 /* Headers */,
4B0A29650D5231DC002EFF74 /* Sources */,
4B0A29670D5231DC002EFF74 /* Frameworks */,
4B0A29680D5231DC002EFF74 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = jack_mp_thread_wait;
productInstallPath = /usr/local/bin;
productName = testSem;
productReference = 4B0A296D0D5231DC002EFF74 /* jack_mp_thread_wait */;
productType = "com.apple.product-type.tool";
};
4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4B0A2A610D524AB2002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait 64 bits" */;
buildPhases = (
4B0A2A5C0D524AB2002EFF74 /* Headers */,
4B0A2A5D0D524AB2002EFF74 /* Sources */,
4B0A2A5F0D524AB2002EFF74 /* Frameworks */,
4B0A2A600D524AB2002EFF74 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = "jack_mp_thread_wait 64 bits";
productInstallPath = /usr/local/bin;
productName = testSem;
productReference = 4B0A2A650D524AB2002EFF74 /* jack_mp_thread_wait */;
productType = "com.apple.product-type.tool";
};
4B35C41B0D4731D1000DE7AE /* jackdmp framework 64bits */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */;
@@ -3244,44 +3118,6 @@
productReference = 4B35C63E0D4731D3000DE7AE /* inprocess.so */;
productType = "com.apple.product-type.library.dynamic";
};
4B5175250D8FE69300961F37 /* jack_thread_wait1 64 bits */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4B51752B0D8FE69300961F37 /* Build configuration list for PBXNativeTarget "jack_thread_wait1 64 bits" */;
buildPhases = (
4B5175260D8FE69300961F37 /* Headers */,
4B5175270D8FE69300961F37 /* Sources */,
4B5175290D8FE69300961F37 /* Frameworks */,
4B51752A0D8FE69300961F37 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = "jack_thread_wait1 64 bits";
productInstallPath = /usr/local/bin;
productName = testSem;
productReference = 4B51752F0D8FE69300961F37 /* jack_thread_wait1 */;
productType = "com.apple.product-type.tool";
};
4B57F58B0D72C27900B4E719 /* jack_thread_wait1 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4B57F5910D72C27900B4E719 /* Build configuration list for PBXNativeTarget "jack_thread_wait1" */;
buildPhases = (
4B57F58C0D72C27900B4E719 /* Headers */,
4B57F58D0D72C27900B4E719 /* Sources */,
4B57F58F0D72C27900B4E719 /* Frameworks */,
4B57F5900D72C27900B4E719 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = jack_thread_wait1;
productInstallPath = /usr/local/bin;
productName = testSem;
productReference = 4B57F5950D72C27900B4E719 /* jack_thread_wait1 */;
productType = "com.apple.product-type.tool";
};
4B5A1BB10CD1CB9E0005BF74 /* jack_midiseq Universal */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */;
@@ -3823,8 +3659,6 @@
4BA692A60CBE4BC700EAD520 /* jack_load Universal */,
4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */,
4B0A28DC0D52073D002EFF74 /* jack_thread_wait */,
4B57F58B0D72C27900B4E719 /* jack_thread_wait1 */,
4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */,
4B699D4F097D421600A18468 /* synchroServer Universal */,
4B699D67097D421600A18468 /* synchroClient Universal */,
4B699D7F097D421700A18468 /* synchroServerClient Universal */,
@@ -3852,8 +3686,6 @@
4B35C5C00D4731D2000DE7AE /* jack_load 64 bits */,
4B35C5CC0D4731D2000DE7AE /* jack_unload 64 bits */,
4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */,
4B5175250D8FE69300961F37 /* jack_thread_wait1 64 bits */,
4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */,
4B35C5D80D4731D2000DE7AE /* synchroServer 64 bits */,
4B35C5EC0D4731D2000DE7AE /* synchroClient 64 bits */,
4B35C6000D4731D2000DE7AE /* synchroServerClient 64 bits */,
@@ -3911,20 +3743,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A29680D5231DC002EFF74 /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A2A600D524AB2002EFF74 /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B35C4200D4731D1000DE7AE /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
@@ -4079,20 +3897,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B51752A0D8FE69300961F37 /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B57F5900D72C27900B4E719 /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5A1BB60CD1CB9E0005BF74 /* Rez */ = {
isa = PBXRezBuildPhase;
buildActionMask = 2147483647;
@@ -4273,22 +4077,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A29650D5231DC002EFF74 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4B0A29830D523269002EFF74 /* mp_tw.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4B0A2A5D0D524AB2002EFF74 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4B0A2A5E0D524AB2002EFF74 /* mp_tw.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4B35C41D0D4731D1000DE7AE /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -4586,22 +4374,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5175270D8FE69300961F37 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4B5175280D8FE69300961F37 /* tw1.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4B57F58D0D72C27900B4E719 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4B57F5BC0D72C2B000B4E719 /* tw1.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4B5A1BB30CD1CB9E0005BF74 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -4914,16 +4686,6 @@
target = 4B0A29230D52108E002EFF74 /* jack_thread_wait 64 bits */;
targetProxy = 4B0A292F0D5210C4002EFF74 /* PBXContainerItemProxy */;
};
4B0A2A6E0D524AF2002EFF74 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B0A29630D5231DC002EFF74 /* jack_mp_thread_wait */;
targetProxy = 4B0A2A6D0D524AF2002EFF74 /* PBXContainerItemProxy */;
};
4B0A2A700D524B01002EFF74 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B0A2A5B0D524AB2002EFF74 /* jack_mp_thread_wait 64 bits */;
targetProxy = 4B0A2A6F0D524B01002EFF74 /* PBXContainerItemProxy */;
};
4B35C5530D4731D2000DE7AE /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B699D03097D421600A18468 /* jack_external_metro Universal */;
@@ -5177,213 +4939,27 @@
4BFA99580AAAED90009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B699D4F097D421600A18468 /* synchroServer Universal */;
targetProxy = 4BFA99570AAAED90009E916C /* PBXContainerItemProxy */;
};
4BFA995A0AAAED90009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B699D67097D421600A18468 /* synchroClient Universal */;
targetProxy = 4BFA99590AAAED90009E916C /* PBXContainerItemProxy */;
};
4BFA995C0AAAED90009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B699D7F097D421700A18468 /* synchroServerClient Universal */;
targetProxy = 4BFA995B0AAAED90009E916C /* PBXContainerItemProxy */;
};
4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4BFA99980AAAF3B0009E916C /* jdelay Universal */;
targetProxy = 4BFA99AB0AAAF41D009E916C /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
4B0A28E30D52073D002EFF74 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = YES;
};
name = Development;
};
4B0A28E40D52073D002EFF74 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
COPY_PHASE_STRIP = YES;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = NO;
};
name = Deployment;
};
4B0A28E50D52073D002EFF74 /* Default */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Default;
};
4B0A292A0D52108E002EFF74 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
ppc64,
x86_64,
);
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = YES;
};
name = Development;
};
4B0A292B0D52108E002EFF74 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
ppc64,
x86_64,
);
COPY_PHASE_STRIP = YES;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = NO;
};
name = Deployment;
targetProxy = 4BFA99570AAAED90009E916C /* PBXContainerItemProxy */;
};
4B0A292C0D52108E002EFF74 /* Default */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
ppc64,
x86_64,
);
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Default;
4BFA995A0AAAED90009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B699D67097D421600A18468 /* synchroClient Universal */;
targetProxy = 4BFA99590AAAED90009E916C /* PBXContainerItemProxy */;
};
4BFA995C0AAAED90009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4B699D7F097D421700A18468 /* synchroServerClient Universal */;
targetProxy = 4BFA995B0AAAED90009E916C /* PBXContainerItemProxy */;
};
4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4BFA99980AAAF3B0009E916C /* jdelay Universal */;
targetProxy = 4BFA99AB0AAAF41D009E916C /* PBXContainerItemProxy */;
};
4B0A296A0D5231DC002EFF74 /* Development */ = {
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
4B0A28E30D52073D002EFF74 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
@@ -5402,7 +4978,7 @@
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_mp_thread_wait;
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
@@ -5415,7 +4991,7 @@
};
name = Development;
};
4B0A296B0D5231DC002EFF74 /* Deployment */ = {
4B0A28E40D52073D002EFF74 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
@@ -5433,7 +5009,7 @@
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_mp_thread_wait;
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
@@ -5446,7 +5022,7 @@
};
name = Deployment;
};
4B0A296C0D5231DC002EFF74 /* Default */ = {
4B0A28E50D52073D002EFF74 /* Default */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
@@ -5461,7 +5037,7 @@
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_mp_thread_wait;
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
@@ -5473,7 +5049,7 @@
};
name = Default;
};
4B0A2A620D524AB2002EFF74 /* Development */ = {
4B0A292A0D52108E002EFF74 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
@@ -5494,7 +5070,7 @@
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_mp_thread_wait;
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
@@ -5507,7 +5083,7 @@
};
name = Development;
};
4B0A2A630D524AB2002EFF74 /* Deployment */ = {
4B0A292B0D52108E002EFF74 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
@@ -5527,7 +5103,7 @@
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_mp_thread_wait;
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
@@ -5540,7 +5116,7 @@
};
name = Deployment;
};
4B0A2A640D524AB2002EFF74 /* Default */ = {
4B0A292C0D52108E002EFF74 /* Default */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
@@ -5557,7 +5133,7 @@
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_mp_thread_wait;
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
@@ -8647,188 +8223,6 @@
};
name = Default;
};
4B51752C0D8FE69300961F37 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = YES;
};
name = Development;
};
4B51752D0D8FE69300961F37 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
ppc64,
x86_64,
);
COPY_PHASE_STRIP = YES;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait1;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = NO;
};
name = Deployment;
};
4B51752E0D8FE69300961F37 /* Default */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Default;
};
4B57F5920D72C27900B4E719 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = YES;
};
name = Development;
};
4B57F5930D72C27900B4E719 /* Deployment */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
COPY_PHASE_STRIP = YES;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait1;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
ZERO_LINK = NO;
};
name = Deployment;
};
4B57F5940D72C27900B4E719 /* Default */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
i386,
ppc,
);
GCC_OPTIMIZATION_LEVEL = 3;
HEADER_SEARCH_PATHS = ../common;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = (
"-framework",
Jackmp,
);
OTHER_REZFLAGS = "";
PRODUCT_NAME = jack_thread_wait;
REZ_EXECUTABLE = YES;
SDKROOT = "";
SECTORDER_FLAGS = "";
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Default;
};
4B5A1BB80CD1CB9E0005BF74 /* Development */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -11928,26 +11322,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
4B0A29690D5231DC002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4B0A296A0D5231DC002EFF74 /* Development */,
4B0A296B0D5231DC002EFF74 /* Deployment */,
4B0A296C0D5231DC002EFF74 /* Default */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
4B0A2A610D524AB2002EFF74 /* Build configuration list for PBXNativeTarget "jack_mp_thread_wait 64 bits" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4B0A2A620D524AB2002EFF74 /* Development */,
4B0A2A630D524AB2002EFF74 /* Deployment */,
4B0A2A640D524AB2002EFF74 /* Default */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
4B35C4210D4731D1000DE7AE /* Build configuration list for PBXNativeTarget "jackdmp framework 64bits" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -12218,26 +11592,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
4B51752B0D8FE69300961F37 /* Build configuration list for PBXNativeTarget "jack_thread_wait1 64 bits" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4B51752C0D8FE69300961F37 /* Development */,
4B51752D0D8FE69300961F37 /* Deployment */,
4B51752E0D8FE69300961F37 /* Default */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
4B57F5910D72C27900B4E719 /* Build configuration list for PBXNativeTarget "jack_thread_wait1" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4B57F5920D72C27900B4E719 /* Development */,
4B57F5930D72C27900B4E719 /* Deployment */,
4B57F5940D72C27900B4E719 /* Default */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Default;
};
4B5A1BB70CD1CB9E0005BF74 /* Build configuration list for PBXNativeTarget "jack_midiseq Universal" */ = {
isa = XCConfigurationList;
buildConfigurations = (


Loading…
Cancel
Save