git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1583 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.67
@@ -13,6 +13,10 @@ Tom Szilagyi | |||||
Jackdmp changes log | Jackdmp changes log | ||||
--------------------------- | --------------------------- | ||||
2007-10-11 Stephane Letz <letz@grame.fr> | |||||
* Internal loadable client implementation (in progress). | |||||
2007-10-08 Stephane Letz <letz@grame.fr> | 2007-10-08 Stephane Letz <letz@grame.fr> | ||||
* Use .jackdrc file (instead of .jackdmprc). Install script now creates a link "jackd ==> jackdmp" so that automatic launch can work correctly. | * Use .jackdrc file (instead of .jackdmprc). Install script now creates a link "jackd ==> jackdmp" so that automatic launch can work correctly. | ||||
@@ -1422,27 +1422,85 @@ EXPORT int jack_drop_real_time_scheduling(pthread_t thread) | |||||
} | } | ||||
// intclient.h | // intclient.h | ||||
EXPORT char* jack_get_internal_client_name(jack_client_t* ext_client, jack_intclient_t intclient) | EXPORT char* jack_get_internal_client_name(jack_client_t* ext_client, jack_intclient_t intclient) | ||||
{ | { | ||||
JackLog("jack_get_internal_client_name: not yet implemented\n"); | |||||
return ""; | |||||
#ifdef __CLIENTDEBUG__ | |||||
JackLibGlobals::CheckContext(); | |||||
#endif | |||||
JackClient* client = (JackClient*)ext_client; | |||||
if (client == NULL) { | |||||
jack_error("jack_get_internal_client_name called with a NULL client"); | |||||
return ""; | |||||
} else { | |||||
return client->GetInternalClientName(intclient); | |||||
} | |||||
} | } | ||||
EXPORT jack_intclient_t jack_internal_client_handle(jack_client_t* ext_client, const char* client_name, jack_status_t* status) | EXPORT jack_intclient_t jack_internal_client_handle(jack_client_t* ext_client, const char* client_name, jack_status_t* status) | ||||
{ | { | ||||
JackLog("jack_internal_client_handle: not yet implemented\n"); | |||||
return 0; | |||||
#ifdef __CLIENTDEBUG__ | |||||
JackLibGlobals::CheckContext(); | |||||
#endif | |||||
JackClient* client = (JackClient*)ext_client; | |||||
if (client == NULL) { | |||||
jack_error("jack_internal_client_handle called with a NULL client"); | |||||
return 0; | |||||
} else { | |||||
jack_status_t my_status; | |||||
if (status == NULL) /* no status from caller? */ | |||||
status = &my_status; /* use local status word */ | |||||
*status = (jack_status_t)0; | |||||
return client->InternalClientHandle(client_name, status); | |||||
} | |||||
} | } | ||||
EXPORT jack_intclient_t jack_internal_client_load(jack_client_t* ext_client, const char* client_name, jack_options_t options, jack_status_t* status, ...) | EXPORT jack_intclient_t jack_internal_client_load(jack_client_t* ext_client, const char* client_name, jack_options_t options, jack_status_t* status, ...) | ||||
{ | { | ||||
JackLog("jack_internal_client_load: not yet implemented\n"); | |||||
return 0; | |||||
#ifdef __CLIENTDEBUG__ | |||||
JackLibGlobals::CheckContext(); | |||||
#endif | |||||
JackClient* client = (JackClient*)ext_client; | |||||
if (client == NULL) { | |||||
jack_error("jack_internal_client_load called with a NULL client"); | |||||
return 0; | |||||
} else { | |||||
va_list ap; | |||||
jack_varargs_t va; | |||||
jack_status_t my_status; | |||||
if (status == NULL) /* no status from caller? */ | |||||
status = &my_status; /* use local status word */ | |||||
*status = (jack_status_t)0; | |||||
/* validate parameters */ | |||||
if ((options & ~JackLoadOptions)) { | |||||
int my_status1 = *status | (JackFailure | JackInvalidOption); | |||||
*status = (jack_status_t)my_status1; | |||||
return 0; | |||||
} | |||||
/* parse variable arguments */ | |||||
va_start(ap, status); | |||||
jack_varargs_parse(options, ap, &va); | |||||
va_end(ap); | |||||
return client->InternalClientLoad(client_name, options, status, &va); | |||||
} | |||||
} | } | ||||
EXPORT jack_status_t jack_internal_client_unload(jack_client_t* ext_client, jack_intclient_t intclient) | EXPORT jack_status_t jack_internal_client_unload(jack_client_t* ext_client, jack_intclient_t intclient) | ||||
{ | { | ||||
JackLog("jack_internal_client_unload: not yet implemented\n"); | |||||
return JackFailure; | |||||
#ifdef __CLIENTDEBUG__ | |||||
JackLibGlobals::CheckContext(); | |||||
#endif | |||||
JackClient* client = (JackClient*)ext_client; | |||||
if (client == NULL) { | |||||
jack_error("jack_internal_client_unload called with a NULL client"); | |||||
return (jack_status_t)(JackNoSuchClient | JackFailure); | |||||
} else { | |||||
jack_status_t my_status; | |||||
client->InternalClientUnload(intclient, &my_status); | |||||
return my_status; | |||||
} | |||||
} | } | ||||
@@ -35,7 +35,7 @@ extern "C" | |||||
EXPORT int jack_internal_client_new (const char *client_name, | EXPORT int jack_internal_client_new (const char *client_name, | ||||
const char *load_name, | const char *load_name, | ||||
const char *load_init); | const char *load_init); | ||||
EXPORT jack_client_t* my_jack_internal_client_new(const char* client_name); | |||||
EXPORT jack_client_t* my_jack_internal_client_new(const char* client_name, const char* dll_name, const char* object_data); | |||||
EXPORT void jack_internal_client_close (const char *client_name); | EXPORT void jack_internal_client_close (const char *client_name); | ||||
EXPORT void my_jack_internal_client_close (jack_client_t* client); | EXPORT void my_jack_internal_client_close (jack_client_t* client); | ||||
EXPORT int jack_is_realtime (jack_client_t *client); | EXPORT int jack_is_realtime (jack_client_t *client); | ||||
@@ -109,8 +109,19 @@ class JackClientChannelInterface | |||||
{} | {} | ||||
virtual void SetTimebaseCallback(int refnum, int conditional, int* result) | virtual void SetTimebaseCallback(int refnum, int conditional, int* result) | ||||
{} | |||||
virtual void GetInternalClientName(int refnum, int int_ref, char* name_res, int* result) | |||||
{} | |||||
virtual void InternalClientHandle(int refnum, const char* client_name, int* status, int* int_ref, int* result) | |||||
{} | {} | ||||
virtual void InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int* result) | |||||
{} | |||||
virtual void InternalClientUnload(int refnum, int int_ref, int* status, int* result) | |||||
{} | |||||
}; | }; | ||||
/*! | /*! | ||||
@@ -820,5 +820,61 @@ int JackClient::SetPortRegistrationCallback(JackPortRegistrationCallback callbac | |||||
} | } | ||||
} | } | ||||
//------------------ | |||||
// Internal clients | |||||
//------------------ | |||||
char* JackClient::GetInternalClientName(int ref) | |||||
{ | |||||
// TODO | |||||
return ""; | |||||
} | |||||
int JackClient::InternalClientHandle(const char* client_name, jack_status_t* status) | |||||
{ | |||||
int int_ref, result = -1; | |||||
fChannel->InternalClientHandle(GetClientControl()->fRefNum, client_name, (int*)status, &int_ref, &result); | |||||
return int_ref; | |||||
} | |||||
int JackClient::InternalClientLoad(const char* client_name, jack_options_t options, jack_status_t* status, jack_varargs_t* va) | |||||
{ | |||||
if (strlen(client_name) >= JACK_CLIENT_NAME_SIZE) { | |||||
jack_error ("\"%s\" is too long for a JACK client name.\n" | |||||
"Please use %lu characters or less.", | |||||
client_name, JACK_CLIENT_NAME_SIZE); | |||||
return 0; | |||||
} | |||||
if (va->load_name && (strlen(va->load_name) >= PATH_MAX)) { | |||||
jack_error("\"%s\" is too long for a shared object name.\n" | |||||
"Please use %lu characters or less.", | |||||
va->load_name, PATH_MAX); | |||||
int my_status1 = *status | (JackFailure | JackInvalidOption); | |||||
*status = (jack_status_t)my_status1; | |||||
return 0; | |||||
} | |||||
if (va->load_init && (strlen(va->load_init) >= JACK_LOAD_INIT_LIMIT)) { | |||||
jack_error ("\"%s\" is too long for internal client init " | |||||
"string.\nPlease use %lu characters or less.", | |||||
va->load_init, JACK_LOAD_INIT_LIMIT); | |||||
int my_status1 = *status | (JackFailure | JackInvalidOption); | |||||
*status = (jack_status_t)my_status1; | |||||
return 0; | |||||
} | |||||
int int_ref, result = -1; | |||||
fChannel->InternalClientLoad(GetClientControl()->fRefNum, client_name, va->load_name, va->load_init, options, (int*)status, &int_ref, &result); | |||||
return int_ref; | |||||
} | |||||
void JackClient::InternalClientUnload(int ref, jack_status_t* status) | |||||
{ | |||||
int result = -1; | |||||
fChannel->InternalClientUnload(GetClientControl()->fRefNum, ref, (int*)status, &result); | |||||
} | |||||
} // end of namespace | } // end of namespace | ||||
@@ -27,6 +27,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
#include "JackSynchro.h" | #include "JackSynchro.h" | ||||
#include "types.h" | #include "types.h" | ||||
#include "transport_types.h" | #include "transport_types.h" | ||||
#include "varargs.h" | |||||
#include <list> | #include <list> | ||||
namespace Jack | namespace Jack | ||||
@@ -149,6 +150,12 @@ class JackClient : public JackClientInterface, public JackRunnableInterface | |||||
virtual int SetClientRegistrationCallback(JackClientRegistrationCallback callback, void* arg); | virtual int SetClientRegistrationCallback(JackClientRegistrationCallback callback, void* arg); | ||||
virtual int SetFreewheelCallback(JackFreewheelCallback callback, void* arg); | virtual int SetFreewheelCallback(JackFreewheelCallback callback, void* arg); | ||||
virtual int SetPortRegistrationCallback(JackPortRegistrationCallback callback, void* arg); | virtual int SetPortRegistrationCallback(JackPortRegistrationCallback callback, void* arg); | ||||
// Internal clients | |||||
virtual char* GetInternalClientName(int ref); | |||||
virtual int InternalClientHandle(const char* client_name, jack_status_t* status); | |||||
virtual int InternalClientLoad(const char* client_name, jack_options_t options, jack_status_t* status, jack_varargs_t* va); | |||||
virtual void InternalClientUnload(int ref, jack_status_t* status); | |||||
// JackRunnableInterface interface | // JackRunnableInterface interface | ||||
bool Init(); | bool Init(); | ||||
@@ -28,6 +28,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
#include "JackEngine.h" | #include "JackEngine.h" | ||||
#include "JackExternalClient.h" | #include "JackExternalClient.h" | ||||
#include "JackInternalClient.h" | |||||
#include "JackEngineControl.h" | #include "JackEngineControl.h" | ||||
#include "JackClientControl.h" | #include "JackClientControl.h" | ||||
#include "JackEngineTiming.h" | #include "JackEngineTiming.h" | ||||
@@ -88,7 +89,6 @@ int JackEngine::Close() | |||||
JackClientInterface* client = fClientTable[i]; | JackClientInterface* client = fClientTable[i]; | ||||
if (client) { | if (client) { | ||||
JackLog("JackEngine::Close remaining client %ld\n", i); | JackLog("JackEngine::Close remaining client %ld\n", i); | ||||
ClientCloseAux(i, client, false); | |||||
client->Close(); | client->Close(); | ||||
delete client; | delete client; | ||||
} | } | ||||
@@ -373,6 +373,53 @@ void JackEngine::NotifyActivate(int refnum) | |||||
NotifyClient(refnum, kActivateClient, true, 0); | NotifyClient(refnum, kActivateClient, true, 0); | ||||
} | } | ||||
//---------------------------- | |||||
// Loadable client management | |||||
//---------------------------- | |||||
int JackEngine::GetInternalClientName(int int_ref, char* name_res) | |||||
{ | |||||
JackClientInterface* client = fClientTable[int_ref]; | |||||
if (client) { | |||||
strncpy(name_res, client->GetClientControl()->fName, JACK_CLIENT_NAME_SIZE); | |||||
return 0; | |||||
} else { | |||||
return -1; | |||||
} | |||||
} | |||||
int JackEngine::InternalClientHandle(const char* client_name, int* status, int* int_ref) | |||||
{ | |||||
// Clear status | |||||
*status = 0; | |||||
for (int i = 0; i < CLIENT_NUM; i++) { | |||||
JackClientInterface* client = fClientTable[i]; | |||||
if (client && dynamic_cast<JackLoadableInternalClient*>(client) && (strcmp(client->GetClientControl()->fName, client_name) == 0)) { | |||||
JackLog("InternalClientHandle found client name = %s ref = %ld\n", client_name, i); | |||||
*int_ref = i; | |||||
return 0; | |||||
} | |||||
} | |||||
*status |= (JackNoSuchClient | JackFailure); | |||||
return -1; | |||||
} | |||||
int JackEngine::InternalClientUnload(int refnum, int* status) | |||||
{ | |||||
JackClientInterface* client = fClientTable[refnum]; | |||||
if (client) { | |||||
int res = client->Close(); | |||||
delete client; | |||||
*status = 0; | |||||
return res; | |||||
} else { | |||||
*status = (JackNoSuchClient | JackFailure); | |||||
return -1; | |||||
} | |||||
} | |||||
//------------------- | //------------------- | ||||
// Client management | // Client management | ||||
//------------------- | //------------------- | ||||
@@ -384,8 +431,8 @@ int JackEngine::ClientCheck(const char* name, char* name_res, int protocol, int | |||||
strcpy(name_res, name); | strcpy(name_res, name); | ||||
if (protocol != JACK_PROTOCOL_VERSION) { | if (protocol != JACK_PROTOCOL_VERSION) { | ||||
*status |= (JackFailure|JackVersionError); | |||||
jack_error ("JACK protocol mismatch (%d vs %d)", protocol, JACK_PROTOCOL_VERSION); | |||||
*status |= (JackFailure | JackVersionError); | |||||
jack_error("JACK protocol mismatch (%d vs %d)", protocol, JACK_PROTOCOL_VERSION); | |||||
return -1; | return -1; | ||||
} | } | ||||
@@ -78,8 +78,7 @@ class JackEngine | |||||
int Open(); | int Open(); | ||||
int Close(); | int Close(); | ||||
// Client management | // Client management | ||||
int ClientCheck(const char* name, char* name_res, int protocol, int options, int* status); | int ClientCheck(const char* name, char* name_res, int protocol, int options, int* status); | ||||
int ClientExternalOpen(const char* name, int* ref, int* shared_engine, int* shared_client, int* shared_graph_manager); | int ClientExternalOpen(const char* name, int* ref, int* shared_engine, int* shared_client, int* shared_graph_manager); | ||||
@@ -90,6 +89,11 @@ class JackEngine | |||||
int ClientActivate(int refnum); | int ClientActivate(int refnum); | ||||
int ClientDeactivate(int refnum); | int ClientDeactivate(int refnum); | ||||
// Internal lient management | |||||
int GetInternalClientName(int int_ref, char* name_res); | |||||
int InternalClientHandle(const char* client_name, int* status, int* int_ref); | |||||
int InternalClientUnload(int refnum, int* status); | |||||
// Port management | // Port management | ||||
int PortRegister(int refnum, const char* name, unsigned int flags, unsigned int buffer_size, jack_port_id_t* port_index); | int PortRegister(int refnum, const char* name, unsigned int flags, unsigned int buffer_size, jack_port_id_t* port_index); | ||||
@@ -116,5 +116,51 @@ JackClientControl* JackInternalClient::GetClientControl() const | |||||
return fClientControl; | return fClientControl; | ||||
} | } | ||||
JackLoadableInternalClient::JackLoadableInternalClient(JackServer* server, JackSynchro** table, const char* so_name, const char* object_data) | |||||
:JackInternalClient(server, table) | |||||
{ | |||||
char path_to_so[PATH_MAX + 1]; | |||||
//snprintf(path_to_so, sizeof(path_to_so), ADDON_DIR "/%s.so", so_name); | |||||
snprintf(path_to_so, sizeof(path_to_so), so_name); | |||||
snprintf(fObjectData, JACK_LOAD_INIT_LIMIT, object_data); | |||||
fHandle = LoadJackModule(path_to_so); | |||||
printf("path_to_so %s\n", path_to_so); | |||||
if (fHandle == 0) { | |||||
jack_error("error loading %s", so_name); | |||||
throw -1; | |||||
} | |||||
fInitialize = (InitializeCallback)GetJackProc(fHandle, "jack_initialize"); | |||||
if (!fInitialize) { | |||||
UnloadJackModule(fHandle); | |||||
jack_error("symbol jack_initialize cannot be found in %s", so_name); | |||||
throw -1; | |||||
} | |||||
fFinish = (FinishCallback)GetJackProc(fHandle, "jack_finish"); | |||||
if (!fFinish) { | |||||
UnloadJackModule(fHandle); | |||||
jack_error("symbol jack_finish cannot be found in %s", so_name); | |||||
throw -1; | |||||
} | |||||
} | |||||
JackLoadableInternalClient::~JackLoadableInternalClient() | |||||
{ | |||||
if (fFinish) | |||||
fFinish(fProcessArg); | |||||
UnloadJackModule(fHandle); | |||||
} | |||||
int JackLoadableInternalClient::Open(const char* name, jack_options_t options, jack_status_t* status) | |||||
{ | |||||
int res = JackInternalClient::Open(name, options, status); | |||||
if (res == 0) | |||||
fInitialize((jack_client_t*)this, fObjectData); | |||||
return res; | |||||
} | |||||
} // end of namespace | } // end of namespace | ||||
@@ -55,6 +55,51 @@ class JackInternalClient : public JackClient | |||||
static JackEngineControl* fEngineControl; /*! Shared engine cotrol */ | static JackEngineControl* fEngineControl; /*! Shared engine cotrol */ | ||||
}; | }; | ||||
/*! | |||||
\brief Loadable internal clients in the server. | |||||
*/ | |||||
#ifdef WIN32 | |||||
#include <windows.h> | |||||
#define HANDLE HINSTANCE | |||||
#define LoadJackModule(name) LoadLibrary((name)); | |||||
#define UnloadJackModule(handle) FreeLibrary((handle)); | |||||
#define GetJackProc(handle, name) GetProcAddress((handle), (name)); | |||||
#else | |||||
#include <dlfcn.h> | |||||
#define HANDLE void* | |||||
#define LoadJackModule(name) dlopen((name), RTLD_NOW | RTLD_LOCAL); | |||||
#define UnloadJackModule(handle) dlclose((handle)); | |||||
#define GetJackProc(handle, name) dlsym((handle), (name)); | |||||
#endif | |||||
typedef int (*InitializeCallback)(jack_client_t*, const char*); | |||||
typedef void (*FinishCallback)(void *); | |||||
class JackLoadableInternalClient : public JackInternalClient | |||||
{ | |||||
private: | |||||
HANDLE fHandle; | |||||
InitializeCallback fInitialize; | |||||
FinishCallback fFinish; | |||||
char fObjectData[JACK_LOAD_INIT_LIMIT]; | |||||
public: | |||||
JackLoadableInternalClient(JackServer* server, JackSynchro** table, const char* so_name, const char* object_data); | |||||
virtual ~JackLoadableInternalClient(); | |||||
int Open(const char* name, jack_options_t options, jack_status_t* status); | |||||
}; | |||||
} // end of namespace | } // end of namespace | ||||
#endif | #endif |
@@ -35,6 +35,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
#include "JackEngineControl.h" | #include "JackEngineControl.h" | ||||
#include "JackSyncInterface.h" | #include "JackSyncInterface.h" | ||||
#include "JackGraphManager.h" | #include "JackGraphManager.h" | ||||
#include "JackInternalClient.h" | |||||
#ifdef __APPLE_ | #ifdef __APPLE_ | ||||
#include <CoreFoundation/CFNotificationCenter.h> | #include <CoreFoundation/CFNotificationCenter.h> | ||||
@@ -171,6 +172,29 @@ int JackServer::Close() | |||||
return 0; | return 0; | ||||
} | } | ||||
int JackServer::InternalClientLoad(const char* client_name, const char* so_name, const char* objet_data, int options, int* int_ref, int* status) | |||||
{ | |||||
try { | |||||
// Clear status | |||||
*status = 0; | |||||
JackLoadableInternalClient* client = new JackLoadableInternalClient(fInstance, GetSynchroTable(), so_name, objet_data); | |||||
assert(client); | |||||
int res = client->Open(client_name, (jack_options_t)options, (jack_status_t*)status); | |||||
if (res < 0) { | |||||
delete client; | |||||
*int_ref = 0; | |||||
} else { | |||||
*int_ref = client->GetClientControl()->fRefNum; | |||||
} | |||||
} catch (...) { | |||||
int my_status1 = *status | JackFailure; | |||||
*status = (jack_status_t)my_status1; | |||||
*int_ref = 0; | |||||
} | |||||
return 0; | |||||
} | |||||
int JackServer::Start() | int JackServer::Start() | ||||
{ | { | ||||
JackLog("JackServer::Start\n"); | JackLog("JackServer::Start\n"); | ||||
@@ -73,7 +73,9 @@ class EXPORT JackServer | |||||
int SetBufferSize(jack_nframes_t buffer_size); | int SetBufferSize(jack_nframes_t buffer_size); | ||||
int SetFreewheel(bool onoff); | int SetFreewheel(bool onoff); | ||||
void Notify(int refnum, int notify, int value); | void Notify(int refnum, int notify, int value); | ||||
int InternalClientLoad(const char* client_name, const char* so_name, const char* objet_data, int options, int* int_ref, int* status); | |||||
JackEngine* GetEngine(); | JackEngine* GetEngine(); | ||||
JackEngineControl* GetEngineControl(); | JackEngineControl* GetEngineControl(); | ||||
JackSynchro** GetSynchroTable(); | JackSynchro** GetSynchroTable(); | ||||
@@ -41,7 +41,7 @@ extern "C" | |||||
{ | { | ||||
#endif | #endif | ||||
EXPORT jack_client_t* my_jack_internal_client_new(const char* client_name); | |||||
EXPORT jack_client_t* my_jack_internal_client_new(const char* client_name, const char* dll_name, const char* object_data); | |||||
EXPORT void my_jack_internal_client_close(jack_client_t* ext_client); | EXPORT void my_jack_internal_client_close(jack_client_t* ext_client); | ||||
EXPORT jack_client_t * jack_client_open (const char *client_name, | EXPORT jack_client_t * jack_client_open (const char *client_name, | ||||
@@ -56,21 +56,30 @@ extern "C" | |||||
using namespace Jack; | using namespace Jack; | ||||
EXPORT jack_client_t* my_jack_internal_client_new(const char* client_name) | |||||
EXPORT jack_client_t* my_jack_internal_client_new(const char* client_name, const char* dll_name, const char* object_data) | |||||
{ | { | ||||
jack_status_t my_status = (jack_status_t)0; | |||||
JackLog("jack_internal_client_new %s", client_name); | JackLog("jack_internal_client_new %s", client_name); | ||||
if (client_name == NULL) { | if (client_name == NULL) { | ||||
jack_error("jack_internal_client_new called with a NULL client_name"); | jack_error("jack_internal_client_new called with a NULL client_name"); | ||||
return NULL; | return NULL; | ||||
} | } | ||||
#ifdef __CLIENTDEBUG__ | |||||
JackClient* client = new JackDebugClient(new JackInternalClient(JackServer::fInstance, GetSynchroTable())); // Debug mode | |||||
#else | |||||
JackClient* client = new JackInternalClient(JackServer::fInstance, GetSynchroTable()); // To improve... | |||||
#endif | |||||
JackClient* client; | |||||
try { | |||||
#ifdef __CLIENTDEBUG__ | |||||
client = new JackDebugClient(new JackLoadableInternalClient(JackServer::fInstance, GetSynchroTable(), dll_name, object_data)); // Debug mode | |||||
#else | |||||
client = new JackLoadableInternalClient(JackServer::fInstance, GetSynchroTable(), dll_name, object_data); // To improve... | |||||
#endif | |||||
} catch (...) { // Allocation or dynamic code loading failure | |||||
return NULL; | |||||
} | |||||
jack_options_t options = JackUseExactName; | jack_options_t options = JackUseExactName; | ||||
int res = client->Open(client_name, options, NULL); | |||||
int res = client->Open(client_name, options, &my_status); | |||||
if (res < 0) { | if (res < 0) { | ||||
delete client; | delete client; | ||||
return NULL; | return NULL; | ||||
@@ -458,6 +458,14 @@ int main(int argc, char* argv[]) | |||||
JackDelete(); | JackDelete(); | ||||
return 0; | return 0; | ||||
} | } | ||||
/* | |||||
jack_client_t* c1 = my_jack_internal_client_new("c1", "inprocess.so", "untitled"); | |||||
jack_client_t* c2 = my_jack_internal_client_new("c2", "inprocess.so", "untitled"); | |||||
jack_client_t* c3 = my_jack_internal_client_new("c3", "inprocess.so", "untitled"); | |||||
jack_client_t* c4 = my_jack_internal_client_new("c4", "inprocess.so", "untitled"); | |||||
jack_client_t* c5 = my_jack_internal_client_new("c5", "inprocess.so", "untitled"); | |||||
*/ | |||||
/* | /* | ||||
For testing purpose... | For testing purpose... | ||||
@@ -514,7 +522,15 @@ int main(int argc, char* argv[]) | |||||
// bugs that cause segfaults etc. during shutdown. | // bugs that cause segfaults etc. during shutdown. | ||||
sigprocmask(SIG_UNBLOCK, &signals, 0); | sigprocmask(SIG_UNBLOCK, &signals, 0); | ||||
} | } | ||||
/* | |||||
my_jack_internal_client_close(c1); | |||||
my_jack_internal_client_close(c2); | |||||
my_jack_internal_client_close(c3); | |||||
my_jack_internal_client_close(c4); | |||||
my_jack_internal_client_close(c5); | |||||
*/ | |||||
JackStop(); | JackStop(); | ||||
jack_cleanup_shm(); | jack_cleanup_shm(); | ||||
@@ -152,7 +152,7 @@ extern "C" | |||||
const char *load_name, | const char *load_name, | ||||
const char *load_init); | const char *load_init); | ||||
jack_client_t* my_jack_internal_client_new(const char* client_name); | |||||
jack_client_t* my_jack_internal_client_new(const char* client_name, const char* dll_name, const char* object_data); | |||||
/** | /** | ||||
* Remove an internal client from a JACK server. | * Remove an internal client from a JACK server. | ||||
@@ -0,0 +1,123 @@ | |||||
/** @file inprocess.c | |||||
* | |||||
* @brief This demonstrates the basic concepts for writing a client | |||||
* that runs within the JACK server process. | |||||
* | |||||
* For the sake of example, a port_pair_t is allocated in | |||||
* jack_initialize(), passed to inprocess() as an argument, then freed | |||||
* in jack_finish(). | |||||
*/ | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include <memory.h> | |||||
#include <jack/jack.h> | |||||
/** | |||||
* For the sake of example, an instance of this struct is allocated in | |||||
* jack_initialize(), passed to inprocess() as an argument, then freed | |||||
* in jack_finish(). | |||||
*/ | |||||
typedef struct { | |||||
jack_port_t *input_port; | |||||
jack_port_t *output_port; | |||||
} port_pair_t; | |||||
/** | |||||
* Called in the realtime thread on every process cycle. The entry | |||||
* point name was passed to jack_set_process_callback() from | |||||
* jack_initialize(). Although this is an internal client, its | |||||
* process() interface is identical to @ref simple_client.c. | |||||
* | |||||
* @return 0 if successful; otherwise jack_finish() will be called and | |||||
* the client terminated immediately. | |||||
*/ | |||||
int | |||||
inprocess (jack_nframes_t nframes, void *arg) | |||||
{ | |||||
port_pair_t *pp = arg; | |||||
jack_default_audio_sample_t *out = | |||||
jack_port_get_buffer (pp->output_port, nframes); | |||||
jack_default_audio_sample_t *in = | |||||
jack_port_get_buffer (pp->input_port, nframes); | |||||
memcpy (out, in, sizeof (jack_default_audio_sample_t) * nframes); | |||||
return 0; /* continue */ | |||||
} | |||||
/** | |||||
* This required entry point is called after the client is loaded by | |||||
* jack_internal_client_load(). | |||||
* | |||||
* @param client pointer to JACK client structure. | |||||
* @param load_init character string passed to the load operation. | |||||
* | |||||
* @return 0 if successful; otherwise jack_finish() will be called and | |||||
* the client terminated immediately. | |||||
*/ | |||||
int | |||||
jack_initialize (jack_client_t *client, const char *load_init) | |||||
{ | |||||
port_pair_t *pp = malloc (sizeof (port_pair_t)); | |||||
const char **ports; | |||||
if (pp == NULL) | |||||
return 1; /* heap exhausted */ | |||||
jack_set_process_callback (client, inprocess, pp); | |||||
/* create a pair of ports */ | |||||
pp->input_port = jack_port_register (client, "input", | |||||
JACK_DEFAULT_AUDIO_TYPE, | |||||
JackPortIsInput, 0); | |||||
pp->output_port = jack_port_register (client, "output", | |||||
JACK_DEFAULT_AUDIO_TYPE, | |||||
JackPortIsOutput, 0); | |||||
/* join the process() cycle */ | |||||
jack_activate (client); | |||||
ports = jack_get_ports (client, NULL, NULL, | |||||
JackPortIsPhysical|JackPortIsOutput); | |||||
if (ports == NULL) { | |||||
fprintf(stderr, "no physical capture ports\n"); | |||||
return 1; /* terminate client */ | |||||
} | |||||
if (jack_connect (client, ports[0], jack_port_name (pp->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"); | |||||
return 1; /* terminate client */ | |||||
} | |||||
if (jack_connect (client, jack_port_name (pp->output_port), ports[0])) { | |||||
fprintf (stderr, "cannot connect output ports\n"); | |||||
} | |||||
free (ports); | |||||
return 0; /* success */ | |||||
} | |||||
/** | |||||
* This required entry point is called immediately before the client | |||||
* is unloaded, which could happen due to a call to | |||||
* jack_internal_client_unload(), or a nonzero return from either | |||||
* jack_initialize() or inprocess(). | |||||
* | |||||
* @param arg the same parameter provided to inprocess(). | |||||
*/ | |||||
void | |||||
jack_finish (void *arg) | |||||
{ | |||||
if (arg) | |||||
free ((port_pair_t *) arg); | |||||
} |
@@ -0,0 +1,171 @@ | |||||
#include <stdio.h> | |||||
#include <stdlib.h> | |||||
#include <string.h> | |||||
#include <signal.h> | |||||
#include <unistd.h> | |||||
#include <getopt.h> | |||||
#include "jack.h" | |||||
#include "intclient.h" | |||||
jack_client_t *client; | |||||
jack_intclient_t intclient; | |||||
char *client_name; | |||||
char *intclient_name; | |||||
char *load_name; | |||||
char *load_init = ""; | |||||
char *server_name = NULL; | |||||
int wait_opt = 0; | |||||
void | |||||
signal_handler (int sig) | |||||
{ | |||||
jack_status_t status; | |||||
fprintf (stderr, "signal received, unloading..."); | |||||
status = jack_internal_client_unload (client, intclient); | |||||
if (status & JackFailure) | |||||
fprintf (stderr, "(failed), status = 0x%2.0x\n", status); | |||||
else | |||||
fprintf (stderr, "(succeeded)\n"); | |||||
jack_client_close (client); | |||||
exit (0); | |||||
} | |||||
void | |||||
show_usage () | |||||
{ | |||||
fprintf (stderr, "usage: %s [ options ] client-name [ load-name " | |||||
"[ init-string]]\n\noptions:\n", client_name); | |||||
fprintf (stderr, | |||||
"\t-h, --help \t\t print help message\n" | |||||
"\t-i, --init string\t initialize string\n" | |||||
"\t-s, --server name\t select JACK server\n" | |||||
"\t-w, --wait \t\t wait for signal, then unload\n" | |||||
"\n" | |||||
); | |||||
} | |||||
int | |||||
parse_args (int argc, char *argv[]) | |||||
{ | |||||
int c; | |||||
int option_index = 0; | |||||
char *short_options = "hi:s:w"; | |||||
struct option long_options[] = { | |||||
{ "help", 0, 0, 'h' }, | |||||
{ "init", required_argument, 0, 'i' }, | |||||
{ "server", required_argument, 0, 's' }, | |||||
{ "wait", 0, 0, 'w' }, | |||||
{ 0, 0, 0, 0 } | |||||
}; | |||||
client_name = strrchr(argv[0], '/'); | |||||
if (client_name == NULL) { | |||||
client_name = argv[0]; | |||||
} else { | |||||
client_name++; | |||||
} | |||||
while ((c = getopt_long (argc, argv, short_options, long_options, | |||||
&option_index)) >= 0) { | |||||
switch (c) { | |||||
case 'i': | |||||
load_init = optarg; | |||||
break; | |||||
case 's': | |||||
server_name = optarg; | |||||
break; | |||||
case 'w': | |||||
wait_opt = 1; | |||||
break; | |||||
case 'h': | |||||
default: | |||||
show_usage (); | |||||
return 1; | |||||
} | |||||
} | |||||
if (optind == argc) { /* no positional args? */ | |||||
show_usage (); | |||||
return 1; | |||||
} | |||||
if (optind < argc) | |||||
load_name = intclient_name = argv[optind++]; | |||||
if (optind < argc) | |||||
load_name = argv[optind++]; | |||||
if (optind < argc) | |||||
load_init = argv[optind++]; | |||||
//fprintf (stderr, "client-name = `%s', load-name = `%s', " | |||||
// "load-init = `%s', wait = %d\n", | |||||
// intclient_name, load_name, load_init, wait_opt); | |||||
return 0; /* args OK */ | |||||
} | |||||
int | |||||
main (int argc, char *argv[]) | |||||
{ | |||||
jack_status_t status; | |||||
/* parse and validate command arguments */ | |||||
if (parse_args (argc, argv)) | |||||
exit (1); /* invalid command line */ | |||||
/* first, become a JACK client */ | |||||
client = jack_client_open (client_name, JackServerName, | |||||
&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); | |||||
} | |||||
/* then, load the internal client */ | |||||
intclient = jack_internal_client_load (client, intclient_name, | |||||
(JackLoadName|JackLoadInit), | |||||
&status, load_name, load_init); | |||||
if (status & JackFailure) { | |||||
fprintf (stderr, "could not load %s, status = 0x%2.0x\n", | |||||
load_name, status); | |||||
return 2; | |||||
} | |||||
if (status & JackNameNotUnique) { | |||||
intclient_name = | |||||
jack_get_internal_client_name (client, intclient); | |||||
fprintf (stderr, "unique internal client name `%s' assigned\n", | |||||
intclient_name); | |||||
} | |||||
fprintf (stdout, "%s is running.\n", load_name); | |||||
if (wait_opt) { | |||||
/* define a signal handler to unload the client, then | |||||
* wait for it to exit */ | |||||
signal (SIGQUIT, signal_handler); | |||||
signal (SIGTERM, signal_handler); | |||||
signal (SIGHUP, signal_handler); | |||||
signal (SIGINT, signal_handler); | |||||
while (1) { | |||||
sleep (1); | |||||
} | |||||
} | |||||
return 0; | |||||
} | |||||
@@ -0,0 +1,77 @@ | |||||
#include <string.h> | |||||
#include <stdlib.h> | |||||
#include <stdio.h> | |||||
#include "jack.h" | |||||
#include "intclient.h" | |||||
int | |||||
main (int argc, char *argv[]) | |||||
{ | |||||
char *my_name; | |||||
char *client_name; | |||||
jack_client_t *client; | |||||
jack_status_t status; | |||||
jack_intclient_t intclient; | |||||
/* validate args */ | |||||
if ((argc < 2) || (argc > 3)) { | |||||
fprintf (stderr, "usage: %s client-name [ server-name ]]\n", | |||||
argv[0]); | |||||
return 1; | |||||
} | |||||
/* use `basename $0` for my own client name */ | |||||
my_name = strrchr(argv[0], '/'); | |||||
if (my_name == 0) { | |||||
my_name = argv[0]; | |||||
} else { | |||||
my_name++; | |||||
} | |||||
/* first, become a JACK client */ | |||||
if (argc > 2) { | |||||
client = jack_client_open (my_name, | |||||
(JackServerName|JackNoStartServer), | |||||
&status, argv[2]); | |||||
} else { | |||||
client = jack_client_open (my_name, JackNoStartServer, &status); | |||||
} | |||||
if (client == NULL) { | |||||
if (status & JackServerFailed) { | |||||
fprintf (stderr, "JACK server not running.\n"); | |||||
} else { | |||||
fprintf (stderr, "JACK open failed, " | |||||
"status = 0x%2.0x\n", status); | |||||
} | |||||
exit (1); | |||||
} | |||||
/* then, get the internal client handle */ | |||||
client_name = argv[1]; | |||||
intclient = jack_internal_client_handle (client, client_name, &status); | |||||
if (status & JackFailure) { | |||||
fprintf (stderr, "client %s not found.\n", client_name); | |||||
exit (2); | |||||
} | |||||
/* now, unload the internal client */ | |||||
status = jack_internal_client_unload (client, intclient); | |||||
if (status & JackFailure) { | |||||
if (status & JackNoSuchClient) { | |||||
fprintf (stderr, "client %s is gone.\n", | |||||
client_name); | |||||
} else { | |||||
fprintf (stderr, "could not unload %s, " | |||||
"returns 0x%2.0x\n", client_name, status); | |||||
} | |||||
exit (3); | |||||
} else { | |||||
fprintf (stdout, "%s unloaded.\n", client_name); | |||||
} | |||||
return 0; | |||||
} | |||||
@@ -179,6 +179,46 @@ rpc_type server_rpc_jack_set_timebase_callback(mach_port_t private_port, int ref | |||||
return KERN_SUCCESS; | return KERN_SUCCESS; | ||||
} | } | ||||
//------------------ | |||||
// Internal clients | |||||
//------------------ | |||||
rpc_type server_rpc_jack_get_internal_clientname(mach_port_t private_port, int refnum, int int_ref, client_name_t name_res, int* result) | |||||
{ | |||||
JackLog("server_rpc_jack_get_internal_clientname\n"); | |||||
JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | |||||
assert(channel); | |||||
//*result = channel->GetServer()->GetEngine()->GetInternalClientName(int_ref, (char*)name_res); | |||||
return KERN_SUCCESS; | |||||
} | |||||
rpc_type server_rpc_jack_internal_clienthandle(mach_port_t private_port, int refnum, client_name_t client_name, int* status, int* int_ref, int* result) | |||||
{ | |||||
JackLog("server_rpc_jack_internal_clienthandle\n"); | |||||
JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | |||||
assert(channel); | |||||
*result = channel->GetServer()->GetEngine()->InternalClientHandle(client_name, status, int_ref); | |||||
return KERN_SUCCESS; | |||||
} | |||||
rpc_type server_rpc_jack_internal_clientload(mach_port_t private_port, int refnum, client_name_t client_name, so_name_t so_name, objet_data_t objet_data, int options, int* status, int* int_ref, int* result) | |||||
{ | |||||
JackLog("server_rpc_jack_internal_clientload\n"); | |||||
JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | |||||
assert(channel); | |||||
*result = channel->GetServer()->InternalClientLoad(client_name, so_name, objet_data, options, int_ref, status); | |||||
return KERN_SUCCESS; | |||||
} | |||||
rpc_type server_rpc_jack_internal_clientunload(mach_port_t private_port, int refnum, int int_ref, int* status, int* result) | |||||
{ | |||||
JackLog("server_rpc_jack_internal_clientunload\n"); | |||||
JackMachServerChannel* channel = JackMachServerChannel::fPortTable[private_port]; | |||||
assert(channel); | |||||
*result = channel->GetServer()->GetEngine()->InternalClientUnload(int_ref, status); | |||||
return KERN_SUCCESS; | |||||
} | |||||
//----------------- | //----------------- | ||||
// RT notification | // RT notification | ||||
//----------------- | //----------------- | ||||
@@ -254,6 +254,42 @@ void JackMachClientChannel::SetTimebaseCallback(int refnum, int conditional, int | |||||
} | } | ||||
} | } | ||||
void JackMachClientChannel::GetInternalClientName(int refnum, int int_ref, char* name_res, int* result) | |||||
{ | |||||
kern_return_t res = rpc_jack_get_internal_clientname(fPrivatePort, refnum, int_ref, name_res, result); | |||||
if (res != KERN_SUCCESS) { | |||||
*result = -1; | |||||
jack_error("JackMachClientChannel::GetInternalClientName err = %s", mach_error_string(res)); | |||||
} | |||||
} | |||||
void JackMachClientChannel::InternalClientHandle(int refnum, const char* client_name, int* status, int* int_ref, int* result) | |||||
{ | |||||
kern_return_t res = rpc_jack_internal_clienthandle(fPrivatePort, refnum, (char*)client_name, status, int_ref, result); | |||||
if (res != KERN_SUCCESS) { | |||||
*result = -1; | |||||
jack_error("JackMachClientChannel::InternalClientHandle err = %s", mach_error_string(res)); | |||||
} | |||||
} | |||||
void JackMachClientChannel::InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int* result) | |||||
{ | |||||
kern_return_t res = rpc_jack_internal_clientload(fPrivatePort, refnum, (char*)client_name, (char*)so_name, (char*)objet_data, options, status, int_ref, result); | |||||
if (res != KERN_SUCCESS) { | |||||
*result = -1; | |||||
jack_error("JackMachClientChannel::InternalClientLoad err = %s", mach_error_string(res)); | |||||
} | |||||
} | |||||
void JackMachClientChannel::InternalClientUnload(int refnum, int int_ref, int* status, int* result) | |||||
{ | |||||
kern_return_t res = rpc_jack_internal_clientunload(fPrivatePort, refnum, int_ref, status, result); | |||||
if (res != KERN_SUCCESS) { | |||||
*result = -1; | |||||
jack_error("JackMachClientChannel::InternalClientUnload err = %s", mach_error_string(res)); | |||||
} | |||||
} | |||||
bool JackMachClientChannel::Execute() | bool JackMachClientChannel::Execute() | ||||
{ | { | ||||
kern_return_t res; | kern_return_t res; | ||||
@@ -77,7 +77,12 @@ class JackMachClientChannel : public JackClientChannelInterface, public JackRunn | |||||
void ReleaseTimebase(int refnum, int* result); | void ReleaseTimebase(int refnum, int* result); | ||||
void SetTimebaseCallback(int refnum, int conditional, int* result); | void SetTimebaseCallback(int refnum, int conditional, int* result); | ||||
void GetInternalClientName(int refnum, int int_ref, char* name_res, int* result); | |||||
void InternalClientHandle(int refnum, const char* client_name, int* status, int* int_ref, int* result); | |||||
void InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int* result); | |||||
void InternalClientUnload(int refnum, int int_ref, int* status, int* result); | |||||
// JackRunnableInterface interface | // JackRunnableInterface interface | ||||
bool Execute(); | bool Execute(); | ||||
}; | }; | ||||
@@ -20,6 +20,7 @@ | |||||
4B699DBA097D421700A18468 /* PBXTargetDependency */, | 4B699DBA097D421700A18468 /* PBXTargetDependency */, | ||||
4B699DBC097D421700A18468 /* PBXTargetDependency */, | 4B699DBC097D421700A18468 /* PBXTargetDependency */, | ||||
4B978E800A31D8B7009E2DD1 /* PBXTargetDependency */, | 4B978E800A31D8B7009E2DD1 /* PBXTargetDependency */, | ||||
4BD624D30CBCF55700DE782F /* PBXTargetDependency */, | |||||
4BFA99440AAAED90009E916C /* PBXTargetDependency */, | 4BFA99440AAAED90009E916C /* PBXTargetDependency */, | ||||
4BFA99460AAAED90009E916C /* PBXTargetDependency */, | 4BFA99460AAAED90009E916C /* PBXTargetDependency */, | ||||
4BFA99480AAAED90009E916C /* PBXTargetDependency */, | 4BFA99480AAAED90009E916C /* PBXTargetDependency */, | ||||
@@ -28,6 +29,8 @@ | |||||
4BFA994E0AAAED90009E916C /* PBXTargetDependency */, | 4BFA994E0AAAED90009E916C /* PBXTargetDependency */, | ||||
4BFA99560AAAED90009E916C /* PBXTargetDependency */, | 4BFA99560AAAED90009E916C /* PBXTargetDependency */, | ||||
4BE99D630AD7A19100C59091 /* PBXTargetDependency */, | 4BE99D630AD7A19100C59091 /* PBXTargetDependency */, | ||||
4BA693E90CBE5BBA00EAD520 /* PBXTargetDependency */, | |||||
4BA693EB0CBE5BBA00EAD520 /* PBXTargetDependency */, | |||||
4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */, | 4BFA99AC0AAAF41D009E916C /* PBXTargetDependency */, | ||||
4BFA99500AAAED90009E916C /* PBXTargetDependency */, | 4BFA99500AAAED90009E916C /* PBXTargetDependency */, | ||||
4BFA99520AAAED90009E916C /* PBXTargetDependency */, | 4BFA99520AAAED90009E916C /* PBXTargetDependency */, | ||||
@@ -248,6 +251,8 @@ | |||||
4B699DAA097D421700A18468 /* JackDummyDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3988908B3CF6C00B6F371 /* JackDummyDriver.cpp */; }; | 4B699DAA097D421700A18468 /* JackDummyDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC3988908B3CF6C00B6F371 /* JackDummyDriver.cpp */; }; | ||||
4B978DED0A31D099009E2DD1 /* JackPortAudioDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B978DEB0A31D099009E2DD1 /* JackPortAudioDriver.h */; }; | 4B978DED0A31D099009E2DD1 /* JackPortAudioDriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B978DEB0A31D099009E2DD1 /* JackPortAudioDriver.h */; }; | ||||
4B978DEE0A31D099009E2DD1 /* JackPortAudioDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B978DEC0A31D099009E2DD1 /* JackPortAudioDriver.cpp */; }; | 4B978DEE0A31D099009E2DD1 /* JackPortAudioDriver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B978DEC0A31D099009E2DD1 /* JackPortAudioDriver.cpp */; }; | ||||
4BA692B30CBE4C2D00EAD520 /* ipload.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BA692B20CBE4C2D00EAD520 /* ipload.c */; }; | |||||
4BA692D70CBE4CC600EAD520 /* ipunload.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BA692D60CBE4CC600EAD520 /* ipunload.c */; }; | |||||
4BC216850A444BAD00BDA09F /* JackServerAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1F50834EFB000C94B91 /* JackServerAPI.cpp */; }; | 4BC216850A444BAD00BDA09F /* JackServerAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF8D1F50834EFB000C94B91 /* JackServerAPI.cpp */; }; | ||||
4BC216890A444BDE00BDA09F /* JackServerGlobals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC216880A444BDE00BDA09F /* JackServerGlobals.cpp */; }; | 4BC216890A444BDE00BDA09F /* JackServerGlobals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC216880A444BDE00BDA09F /* JackServerGlobals.cpp */; }; | ||||
4BC2168E0A444BED00BDA09F /* JackServerGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC2168D0A444BED00BDA09F /* JackServerGlobals.h */; }; | 4BC2168E0A444BED00BDA09F /* JackServerGlobals.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BC2168D0A444BED00BDA09F /* JackServerGlobals.h */; }; | ||||
@@ -255,6 +260,7 @@ | |||||
4BD4B4D909BACD9600750C0F /* JackTransportEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */; }; | 4BD4B4D909BACD9600750C0F /* JackTransportEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */; }; | ||||
4BD4B4E409BACEF300750C0F /* JackTransportEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */; }; | 4BD4B4E409BACEF300750C0F /* JackTransportEngine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */; }; | ||||
4BD4B4E509BACEF300750C0F /* JackTransportEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */; }; | 4BD4B4E509BACEF300750C0F /* JackTransportEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */; }; | ||||
4BD6240D0CBCF16600DE782F /* inprocess.c in Sources */ = {isa = PBXBuildFile; fileRef = 4BD6240C0CBCF16600DE782F /* inprocess.c */; }; | |||||
4BE50F960B01EEC400C05E63 /* JackAPIWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE50F650B01E96200C05E63 /* JackAPIWrapper.cpp */; }; | 4BE50F960B01EEC400C05E63 /* JackAPIWrapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE50F650B01E96200C05E63 /* JackAPIWrapper.cpp */; }; | ||||
4BE6C6AD0A3E0A65005A203A /* jack_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE6C6AC0A3E0A65005A203A /* jack_test.cpp */; }; | 4BE6C6AD0A3E0A65005A203A /* jack_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE6C6AC0A3E0A65005A203A /* jack_test.cpp */; }; | ||||
4BF5202B0CB8CF610037470E /* intclient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF5202A0CB8CF610037470E /* intclient.h */; settings = {ATTRIBUTES = (Public, ); }; }; | 4BF5202B0CB8CF610037470E /* intclient.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BF5202A0CB8CF610037470E /* intclient.h */; settings = {ATTRIBUTES = (Public, ); }; }; | ||||
@@ -330,6 +336,27 @@ | |||||
remoteGlobalIDString = 4B978DB10A31CF4A009E2DD1; | remoteGlobalIDString = 4B978DB10A31CF4A009E2DD1; | ||||
remoteInfo = "jack_portaudio Universal"; | remoteInfo = "jack_portaudio Universal"; | ||||
}; | }; | ||||
4BA693E80CBE5BBA00EAD520 /* PBXContainerItemProxy */ = { | |||||
isa = PBXContainerItemProxy; | |||||
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | |||||
proxyType = 1; | |||||
remoteGlobalIDString = 4BA692A60CBE4BC700EAD520 /* jack_load Universal */; | |||||
remoteInfo = "jack_load Universal"; | |||||
}; | |||||
4BA693EA0CBE5BBA00EAD520 /* PBXContainerItemProxy */ = { | |||||
isa = PBXContainerItemProxy; | |||||
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | |||||
proxyType = 1; | |||||
remoteGlobalIDString = 4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */; | |||||
remoteInfo = "jack_unload Universal"; | |||||
}; | |||||
4BD624D20CBCF55700DE782F /* PBXContainerItemProxy */ = { | |||||
isa = PBXContainerItemProxy; | |||||
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | |||||
proxyType = 1; | |||||
remoteGlobalIDString = 4BD623ED0CBCF0F000DE782F; | |||||
remoteInfo = inprocess; | |||||
}; | |||||
4BE50F9C0B01EEE500C05E63 /* PBXContainerItemProxy */ = { | 4BE50F9C0B01EEE500C05E63 /* PBXContainerItemProxy */ = { | ||||
isa = PBXContainerItemProxy; | isa = PBXContainerItemProxy; | ||||
containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; | ||||
@@ -454,7 +481,6 @@ | |||||
4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CALatencyLog.cpp; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.cpp; sourceTree = "<absolute>"; }; | 4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CALatencyLog.cpp; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.cpp; sourceTree = "<absolute>"; }; | ||||
4B37C20406DF1FBE0016E567 /* CALatencyLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CALatencyLog.h; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.h; sourceTree = "<absolute>"; }; | 4B37C20406DF1FBE0016E567 /* CALatencyLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CALatencyLog.h; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.h; sourceTree = "<absolute>"; }; | ||||
4B37C20906DF1FE20016E567 /* latency.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = latency.c; path = /Developer/Examples/CoreAudio/PublicUtility/latency.c; sourceTree = "<absolute>"; }; | 4B37C20906DF1FE20016E567 /* latency.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = latency.c; path = /Developer/Examples/CoreAudio/PublicUtility/latency.c; sourceTree = "<absolute>"; }; | ||||
4B37C20A06DF1FE20016E567 /* latency.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = latency.h; path = /Developer/Examples/CoreAudio/PublicUtility/latency.h; sourceTree = "<absolute>"; }; | |||||
4B395C9606AEF53800923527 /* JackCoreAudioDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JackCoreAudioDriver.cpp; sourceTree = SOURCE_ROOT; }; | 4B395C9606AEF53800923527 /* JackCoreAudioDriver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JackCoreAudioDriver.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4B395C9706AEF53800923527 /* JackCoreAudioDriver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JackCoreAudioDriver.h; sourceTree = SOURCE_ROOT; }; | 4B395C9706AEF53800923527 /* JackCoreAudioDriver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JackCoreAudioDriver.h; sourceTree = SOURCE_ROOT; }; | ||||
4B3F49070AD8503300491C6E /* jack_cpu.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jack_cpu.c; path = ../tests/jack_cpu.c; sourceTree = SOURCE_ROOT; }; | 4B3F49070AD8503300491C6E /* jack_cpu.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = jack_cpu.c; path = ../tests/jack_cpu.c; sourceTree = SOURCE_ROOT; }; | ||||
@@ -510,6 +536,10 @@ | |||||
4B9B815C08AFA45000D05A28 /* JackRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackRequest.h; path = ../common/JackRequest.h; sourceTree = SOURCE_ROOT; }; | 4B9B815C08AFA45000D05A28 /* JackRequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackRequest.h; path = ../common/JackRequest.h; sourceTree = SOURCE_ROOT; }; | ||||
4BA577BC08BF8BE200F82DE1 /* testSynchroClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSynchroClient.cpp; path = ../tests/testSynchroClient.cpp; sourceTree = SOURCE_ROOT; }; | 4BA577BC08BF8BE200F82DE1 /* testSynchroClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSynchroClient.cpp; path = ../tests/testSynchroClient.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BA577FB08BF8E4600F82DE1 /* testSynchroServer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSynchroServer.cpp; path = ../tests/testSynchroServer.cpp; sourceTree = SOURCE_ROOT; }; | 4BA577FB08BF8E4600F82DE1 /* testSynchroServer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSynchroServer.cpp; path = ../tests/testSynchroServer.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BA692B00CBE4BC700EAD520 /* jack_load */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_load; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
4BA692B20CBE4C2D00EAD520 /* ipload.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ipload.c; path = "../example-clients/ipload.c"; sourceTree = SOURCE_ROOT; }; | |||||
4BA692D40CBE4C9000EAD520 /* jack_unload */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_unload; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
4BA692D60CBE4CC600EAD520 /* ipunload.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = ipunload.c; path = "../example-clients/ipunload.c"; sourceTree = SOURCE_ROOT; }; | |||||
4BB371D40C1AD85A0050C1E4 /* JackNotification.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackNotification.h; path = ../common/JackNotification.h; sourceTree = SOURCE_ROOT; }; | 4BB371D40C1AD85A0050C1E4 /* JackNotification.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackNotification.h; path = ../common/JackNotification.h; sourceTree = SOURCE_ROOT; }; | ||||
4BBD13CC08C71EB40079F7FF /* testSynchroServerClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSynchroServerClient.cpp; path = ../tests/testSynchroServerClient.cpp; sourceTree = SOURCE_ROOT; }; | 4BBD13CC08C71EB40079F7FF /* testSynchroServerClient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = testSynchroServerClient.cpp; path = ../tests/testSynchroServerClient.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BC216880A444BDE00BDA09F /* JackServerGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackServerGlobals.cpp; path = ../common/JackServerGlobals.cpp; sourceTree = SOURCE_ROOT; }; | 4BC216880A444BDE00BDA09F /* JackServerGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackServerGlobals.cpp; path = ../common/JackServerGlobals.cpp; sourceTree = SOURCE_ROOT; }; | ||||
@@ -519,6 +549,8 @@ | |||||
4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackTransportEngine.h; path = ../common/JackTransportEngine.h; sourceTree = SOURCE_ROOT; }; | 4BD4B4D409BACD9600750C0F /* JackTransportEngine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackTransportEngine.h; path = ../common/JackTransportEngine.h; sourceTree = SOURCE_ROOT; }; | ||||
4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackTransportEngine.cpp; path = ../common/JackTransportEngine.cpp; sourceTree = SOURCE_ROOT; }; | 4BD4B4D509BACD9600750C0F /* JackTransportEngine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackTransportEngine.cpp; path = ../common/JackTransportEngine.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BD561C708EEB910006BBC2A /* JackSynchro.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackSynchro.h; path = ../common/JackSynchro.h; sourceTree = SOURCE_ROOT; }; | 4BD561C708EEB910006BBC2A /* JackSynchro.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = JackSynchro.h; path = ../common/JackSynchro.h; sourceTree = SOURCE_ROOT; }; | ||||
4BD623F70CBCF0F000DE782F /* inprocess.so */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = inprocess.so; sourceTree = BUILT_PRODUCTS_DIR; }; | |||||
4BD6240C0CBCF16600DE782F /* inprocess.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = inprocess.c; path = "../example-clients/inprocess.c"; sourceTree = SOURCE_ROOT; }; | |||||
4BE50F650B01E96200C05E63 /* JackAPIWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackAPIWrapper.cpp; path = ../common/JackAPIWrapper.cpp; sourceTree = SOURCE_ROOT; }; | 4BE50F650B01E96200C05E63 /* JackAPIWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = JackAPIWrapper.cpp; path = ../common/JackAPIWrapper.cpp; sourceTree = SOURCE_ROOT; }; | ||||
4BE50F8E0B01EE8000C05E63 /* Jackwrapper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Jackwrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | 4BE50F8E0B01EE8000C05E63 /* Jackwrapper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Jackwrapper.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
4BE50F8F0B01EE8000C05E63 /* Jackwrapper-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "Jackwrapper-Info.plist"; sourceTree = "<group>"; }; | 4BE50F8F0B01EE8000C05E63 /* Jackwrapper-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = "Jackwrapper-Info.plist"; sourceTree = "<group>"; }; | ||||
@@ -745,6 +777,27 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4BA692AA0CBE4BC700EAD520 /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BA692CE0CBE4C9000EAD520 /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BD623F20CBCF0F000DE782F /* Frameworks */ = { | |||||
isa = PBXFrameworksBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BE50F8C0B01EE8000C05E63 /* Frameworks */ = { | 4BE50F8C0B01EE8000C05E63 /* Frameworks */ = { | ||||
isa = PBXFrameworksBuildPhase; | isa = PBXFrameworksBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -842,6 +895,9 @@ | |||||
4BFA99A20AAAF3B0009E916C /* jdelay */, | 4BFA99A20AAAF3B0009E916C /* jdelay */, | ||||
4BE99D300AD7A04800C59091 /* jack_cpu */, | 4BE99D300AD7A04800C59091 /* jack_cpu */, | ||||
4BE50F8E0B01EE8000C05E63 /* Jackwrapper.framework */, | 4BE50F8E0B01EE8000C05E63 /* Jackwrapper.framework */, | ||||
4BD623F70CBCF0F000DE782F /* inprocess.so */, | |||||
4BA692B00CBE4BC700EAD520 /* jack_load */, | |||||
4BA692D40CBE4C9000EAD520 /* jack_unload */, | |||||
); | ); | ||||
name = Products; | name = Products; | ||||
sourceTree = "<group>"; | sourceTree = "<group>"; | ||||
@@ -849,6 +905,9 @@ | |||||
4B03383E0797E19900686131 /* Simple clients */ = { | 4B03383E0797E19900686131 /* Simple clients */ = { | ||||
isa = PBXGroup; | isa = PBXGroup; | ||||
children = ( | children = ( | ||||
4BA692D60CBE4CC600EAD520 /* ipunload.c */, | |||||
4BA692B20CBE4C2D00EAD520 /* ipload.c */, | |||||
4BD6240C0CBCF16600DE782F /* inprocess.c */, | |||||
4B60CE480AAABA31004956AA /* connect.c */, | 4B60CE480AAABA31004956AA /* connect.c */, | ||||
4BF8D1670834EDD900C94B91 /* zombie.c */, | 4BF8D1670834EDD900C94B91 /* zombie.c */, | ||||
4BF8D1690834EDE600C94B91 /* lsp.c */, | 4BF8D1690834EDE600C94B91 /* lsp.c */, | ||||
@@ -882,7 +941,6 @@ | |||||
isa = PBXGroup; | isa = PBXGroup; | ||||
children = ( | children = ( | ||||
4B37C20906DF1FE20016E567 /* latency.c */, | 4B37C20906DF1FE20016E567 /* latency.c */, | ||||
4B37C20A06DF1FE20016E567 /* latency.h */, | |||||
4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */, | 4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */, | ||||
4B37C20406DF1FBE0016E567 /* CALatencyLog.h */, | 4B37C20406DF1FBE0016E567 /* CALatencyLog.h */, | ||||
); | ); | ||||
@@ -1408,6 +1466,27 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4BA692A70CBE4BC700EAD520 /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BA692CB0CBE4C9000EAD520 /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BD623EE0CBCF0F000DE782F /* Headers */ = { | |||||
isa = PBXHeadersBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BE50F890B01EE8000C05E63 /* Headers */ = { | 4BE50F890B01EE8000C05E63 /* Headers */ = { | ||||
isa = PBXHeadersBuildPhase; | isa = PBXHeadersBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -1780,6 +1859,61 @@ | |||||
productReference = 4B978DBB0A31CF4A009E2DD1 /* jack_portaudio.so */; | productReference = 4B978DBB0A31CF4A009E2DD1 /* jack_portaudio.so */; | ||||
productType = "com.apple.product-type.library.dynamic"; | productType = "com.apple.product-type.library.dynamic"; | ||||
}; | }; | ||||
4BA692A60CBE4BC700EAD520 /* jack_load Universal */ = { | |||||
isa = PBXNativeTarget; | |||||
buildConfigurationList = 4BA692AC0CBE4BC700EAD520 /* Build configuration list for PBXNativeTarget "jack_load Universal" */; | |||||
buildPhases = ( | |||||
4BA692A70CBE4BC700EAD520 /* Headers */, | |||||
4BA692A80CBE4BC700EAD520 /* Sources */, | |||||
4BA692AA0CBE4BC700EAD520 /* Frameworks */, | |||||
4BA692AB0CBE4BC700EAD520 /* Rez */, | |||||
); | |||||
buildRules = ( | |||||
); | |||||
dependencies = ( | |||||
); | |||||
name = "jack_load Universal"; | |||||
productInstallPath = /usr/local/bin; | |||||
productName = testSem; | |||||
productReference = 4BA692B00CBE4BC700EAD520 /* jack_load */; | |||||
productType = "com.apple.product-type.tool"; | |||||
}; | |||||
4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */ = { | |||||
isa = PBXNativeTarget; | |||||
buildConfigurationList = 4BA692D00CBE4C9000EAD520 /* Build configuration list for PBXNativeTarget "jack_unload Universal" */; | |||||
buildPhases = ( | |||||
4BA692CB0CBE4C9000EAD520 /* Headers */, | |||||
4BA692CC0CBE4C9000EAD520 /* Sources */, | |||||
4BA692CE0CBE4C9000EAD520 /* Frameworks */, | |||||
4BA692CF0CBE4C9000EAD520 /* Rez */, | |||||
); | |||||
buildRules = ( | |||||
); | |||||
dependencies = ( | |||||
); | |||||
name = "jack_unload Universal"; | |||||
productInstallPath = /usr/local/bin; | |||||
productName = testSem; | |||||
productReference = 4BA692D40CBE4C9000EAD520 /* jack_unload */; | |||||
productType = "com.apple.product-type.tool"; | |||||
}; | |||||
4BD623ED0CBCF0F000DE782F /* inprocess */ = { | |||||
isa = PBXNativeTarget; | |||||
buildConfigurationList = 4BD623F30CBCF0F000DE782F /* Build configuration list for PBXNativeTarget "inprocess" */; | |||||
buildPhases = ( | |||||
4BD623EE0CBCF0F000DE782F /* Headers */, | |||||
4BD623F00CBCF0F000DE782F /* Sources */, | |||||
4BD623F20CBCF0F000DE782F /* Frameworks */, | |||||
); | |||||
buildRules = ( | |||||
); | |||||
dependencies = ( | |||||
); | |||||
name = inprocess; | |||||
productName = jack_coreaudio; | |||||
productReference = 4BD623F70CBCF0F000DE782F /* inprocess.so */; | |||||
productType = "com.apple.product-type.library.dynamic"; | |||||
}; | |||||
4BE50F8D0B01EE8000C05E63 /* Jackwrapper.framework Universal */ = { | 4BE50F8D0B01EE8000C05E63 /* Jackwrapper.framework Universal */ = { | ||||
isa = PBXNativeTarget; | isa = PBXNativeTarget; | ||||
buildConfigurationList = 4BE50F900B01EE8100C05E63 /* Build configuration list for PBXNativeTarget "Jackwrapper.framework Universal" */; | buildConfigurationList = 4BE50F900B01EE8100C05E63 /* Build configuration list for PBXNativeTarget "Jackwrapper.framework Universal" */; | ||||
@@ -1882,12 +2016,15 @@ | |||||
4B699D3F097D421600A18468 /* zombie Universal */, | 4B699D3F097D421600A18468 /* zombie Universal */, | ||||
4BE6C6910A3E096F005A203A /* jack_test Universal */, | 4BE6C6910A3E096F005A203A /* jack_test Universal */, | ||||
4BE99D260AD7A04800C59091 /* jack_cpu Universal */, | 4BE99D260AD7A04800C59091 /* jack_cpu Universal */, | ||||
4BA692A60CBE4BC700EAD520 /* jack_load Universal */, | |||||
4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */, | |||||
4B699D4F097D421600A18468 /* synchroServer Universal */, | 4B699D4F097D421600A18468 /* synchroServer Universal */, | ||||
4B699D67097D421600A18468 /* synchroClient Universal */, | 4B699D67097D421600A18468 /* synchroClient Universal */, | ||||
4B699D7F097D421700A18468 /* synchroServerClient Universal */, | 4B699D7F097D421700A18468 /* synchroServerClient Universal */, | ||||
4B699D97097D421700A18468 /* jack_coreaudio Universal */, | 4B699D97097D421700A18468 /* jack_coreaudio Universal */, | ||||
4B978DB10A31CF4A009E2DD1 /* jack_portaudio Universal */, | 4B978DB10A31CF4A009E2DD1 /* jack_portaudio Universal */, | ||||
4B699DA6097D421700A18468 /* jack_dummy Universal */, | 4B699DA6097D421700A18468 /* jack_dummy Universal */, | ||||
4BD623ED0CBCF0F000DE782F /* inprocess */, | |||||
); | ); | ||||
}; | }; | ||||
/* End PBXProject section */ | /* End PBXProject section */ | ||||
@@ -2022,6 +2159,20 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4BA692AB0CBE4BC700EAD520 /* Rez */ = { | |||||
isa = PBXRezBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BA692CF0CBE4C9000EAD520 /* Rez */ = { | |||||
isa = PBXRezBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BE6C69E0A3E096F005A203A /* Rez */ = { | 4BE6C69E0A3E096F005A203A /* Rez */ = { | ||||
isa = PBXRezBuildPhase; | isa = PBXRezBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -2291,6 +2442,30 @@ | |||||
); | ); | ||||
runOnlyForDeploymentPostprocessing = 0; | runOnlyForDeploymentPostprocessing = 0; | ||||
}; | }; | ||||
4BA692A80CBE4BC700EAD520 /* Sources */ = { | |||||
isa = PBXSourcesBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
4BA692B30CBE4C2D00EAD520 /* ipload.c in Sources */, | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BA692CC0CBE4C9000EAD520 /* Sources */ = { | |||||
isa = PBXSourcesBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
4BA692D70CBE4CC600EAD520 /* ipunload.c in Sources */, | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BD623F00CBCF0F000DE782F /* Sources */ = { | |||||
isa = PBXSourcesBuildPhase; | |||||
buildActionMask = 2147483647; | |||||
files = ( | |||||
4BD6240D0CBCF16600DE782F /* inprocess.c in Sources */, | |||||
); | |||||
runOnlyForDeploymentPostprocessing = 0; | |||||
}; | |||||
4BE50F8B0B01EE8000C05E63 /* Sources */ = { | 4BE50F8B0B01EE8000C05E63 /* Sources */ = { | ||||
isa = PBXSourcesBuildPhase; | isa = PBXSourcesBuildPhase; | ||||
buildActionMask = 2147483647; | buildActionMask = 2147483647; | ||||
@@ -2361,6 +2536,21 @@ | |||||
target = 4B978DB10A31CF4A009E2DD1 /* jack_portaudio Universal */; | target = 4B978DB10A31CF4A009E2DD1 /* jack_portaudio Universal */; | ||||
targetProxy = 4B978E7F0A31D8B7009E2DD1 /* PBXContainerItemProxy */; | targetProxy = 4B978E7F0A31D8B7009E2DD1 /* PBXContainerItemProxy */; | ||||
}; | }; | ||||
4BA693E90CBE5BBA00EAD520 /* PBXTargetDependency */ = { | |||||
isa = PBXTargetDependency; | |||||
target = 4BA692A60CBE4BC700EAD520 /* jack_load Universal */; | |||||
targetProxy = 4BA693E80CBE5BBA00EAD520 /* PBXContainerItemProxy */; | |||||
}; | |||||
4BA693EB0CBE5BBA00EAD520 /* PBXTargetDependency */ = { | |||||
isa = PBXTargetDependency; | |||||
target = 4BA692CA0CBE4C9000EAD520 /* jack_unload Universal */; | |||||
targetProxy = 4BA693EA0CBE5BBA00EAD520 /* PBXContainerItemProxy */; | |||||
}; | |||||
4BD624D30CBCF55700DE782F /* PBXTargetDependency */ = { | |||||
isa = PBXTargetDependency; | |||||
target = 4BD623ED0CBCF0F000DE782F /* inprocess */; | |||||
targetProxy = 4BD624D20CBCF55700DE782F /* PBXContainerItemProxy */; | |||||
}; | |||||
4BE50F9D0B01EEE500C05E63 /* PBXTargetDependency */ = { | 4BE50F9D0B01EEE500C05E63 /* PBXTargetDependency */ = { | ||||
isa = PBXTargetDependency; | isa = PBXTargetDependency; | ||||
target = 4BE50F8D0B01EE8000C05E63 /* Jackwrapper.framework Universal */; | target = 4BE50F8D0B01EE8000C05E63 /* Jackwrapper.framework Universal */; | ||||
@@ -4510,6 +4700,317 @@ | |||||
}; | }; | ||||
name = Default; | name = Default; | ||||
}; | }; | ||||
4BA692AD0CBE4BC700EAD520 /* Development */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
COPY_PHASE_STRIP = NO; | |||||
GCC_DYNAMIC_NO_PIC = NO; | |||||
GCC_ENABLE_FIX_AND_CONTINUE = YES; | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | |||||
GCC_OPTIMIZATION_LEVEL = 0; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackmp, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PRODUCT_NAME = jack_load; | |||||
REZ_EXECUTABLE = YES; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
ZERO_LINK = YES; | |||||
}; | |||||
name = Development; | |||||
}; | |||||
4BA692AE0CBE4BC700EAD520 /* Deployment */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
COPY_PHASE_STRIP = YES; | |||||
GCC_ENABLE_FIX_AND_CONTINUE = NO; | |||||
GCC_OPTIMIZATION_LEVEL = 3; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackmp, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PRODUCT_NAME = jack_load; | |||||
REZ_EXECUTABLE = YES; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
ZERO_LINK = NO; | |||||
}; | |||||
name = Deployment; | |||||
}; | |||||
4BA692AF0CBE4BC700EAD520 /* Default */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
GCC_OPTIMIZATION_LEVEL = 3; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackmp, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PRODUCT_NAME = jack_load; | |||||
REZ_EXECUTABLE = YES; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
}; | |||||
name = Default; | |||||
}; | |||||
4BA692D10CBE4C9000EAD520 /* Development */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
COPY_PHASE_STRIP = NO; | |||||
GCC_DYNAMIC_NO_PIC = NO; | |||||
GCC_ENABLE_FIX_AND_CONTINUE = YES; | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | |||||
GCC_OPTIMIZATION_LEVEL = 0; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackmp, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PRODUCT_NAME = jack_unload; | |||||
REZ_EXECUTABLE = YES; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
ZERO_LINK = YES; | |||||
}; | |||||
name = Development; | |||||
}; | |||||
4BA692D20CBE4C9000EAD520 /* Deployment */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
COPY_PHASE_STRIP = YES; | |||||
GCC_ENABLE_FIX_AND_CONTINUE = NO; | |||||
GCC_OPTIMIZATION_LEVEL = 3; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackmp, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PRODUCT_NAME = jack_unload; | |||||
REZ_EXECUTABLE = YES; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
ZERO_LINK = NO; | |||||
}; | |||||
name = Deployment; | |||||
}; | |||||
4BA692D30CBE4C9000EAD520 /* Default */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
GCC_OPTIMIZATION_LEVEL = 3; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackmp, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PRODUCT_NAME = jack_unload; | |||||
REZ_EXECUTABLE = YES; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
}; | |||||
name = Default; | |||||
}; | |||||
4BD623F40CBCF0F000DE782F /* Development */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
COPY_PHASE_STRIP = NO; | |||||
DEBUGGING_SYMBOLS = YES; | |||||
DYLIB_COMPATIBILITY_VERSION = 1; | |||||
DYLIB_CURRENT_VERSION = 1; | |||||
EXECUTABLE_EXTENSION = so; | |||||
GCC_DYNAMIC_NO_PIC = NO; | |||||
GCC_ENABLE_FIX_AND_CONTINUE = YES; | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = YES; | |||||
GCC_MODEL_TUNING = G4; | |||||
GCC_OPTIMIZATION_LEVEL = 0; | |||||
GCC_PREPROCESSOR_DEFINITIONS = ""; | |||||
INSTALL_PATH = /usr/local/lib; | |||||
LIBRARY_STYLE = DYNAMIC; | |||||
MACH_O_TYPE = mh_dylib; | |||||
OPTIMIZATION_CFLAGS = "-O0"; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackdmp, | |||||
"-framework", | |||||
AudioToolBox, | |||||
"-framework", | |||||
CoreAudio, | |||||
"-framework", | |||||
CoreServices, | |||||
"-framework", | |||||
AudioUnit, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PREBINDING = NO; | |||||
PRODUCT_NAME = inprocess; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
ZERO_LINK = YES; | |||||
}; | |||||
name = Development; | |||||
}; | |||||
4BD623F50CBCF0F000DE782F /* Deployment */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
COPY_PHASE_STRIP = YES; | |||||
DYLIB_COMPATIBILITY_VERSION = 1; | |||||
DYLIB_CURRENT_VERSION = 1; | |||||
EXECUTABLE_EXTENSION = so; | |||||
GCC_ENABLE_FIX_AND_CONTINUE = NO; | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO; | |||||
GCC_MODEL_TUNING = G4; | |||||
GCC_PREPROCESSOR_DEFINITIONS = ""; | |||||
INSTALL_PATH = /usr/local/lib; | |||||
LIBRARY_STYLE = DYNAMIC; | |||||
MACH_O_TYPE = mh_dylib; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackdmp, | |||||
"-framework", | |||||
AudioToolBox, | |||||
"-framework", | |||||
CoreAudio, | |||||
"-framework", | |||||
CoreServices, | |||||
"-framework", | |||||
AudioUnit, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PREBINDING = NO; | |||||
PRODUCT_NAME = inprocess; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
ZERO_LINK = NO; | |||||
}; | |||||
name = Deployment; | |||||
}; | |||||
4BD623F60CBCF0F000DE782F /* Default */ = { | |||||
isa = XCBuildConfiguration; | |||||
buildSettings = { | |||||
ARCHS = ( | |||||
ppc, | |||||
i386, | |||||
); | |||||
DYLIB_COMPATIBILITY_VERSION = 1; | |||||
DYLIB_CURRENT_VERSION = 1; | |||||
EXECUTABLE_EXTENSION = so; | |||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO; | |||||
GCC_MODEL_TUNING = G4; | |||||
GCC_PREPROCESSOR_DEFINITIONS = ""; | |||||
INSTALL_PATH = /usr/local/lib; | |||||
LIBRARY_STYLE = DYNAMIC; | |||||
MACH_O_TYPE = mh_dylib; | |||||
OTHER_CFLAGS = ""; | |||||
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; | |||||
OTHER_LDFLAGS = ( | |||||
"-framework", | |||||
Jackdmp, | |||||
"-framework", | |||||
AudioToolBox, | |||||
"-framework", | |||||
CoreAudio, | |||||
"-framework", | |||||
CoreServices, | |||||
"-framework", | |||||
AudioUnit, | |||||
); | |||||
OTHER_REZFLAGS = ""; | |||||
PREBINDING = NO; | |||||
PRODUCT_NAME = inprocess; | |||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; | |||||
SECTORDER_FLAGS = ""; | |||||
WARNING_CFLAGS = ( | |||||
"-Wmost", | |||||
"-Wno-four-char-constants", | |||||
"-Wno-unknown-pragmas", | |||||
); | |||||
}; | |||||
name = Default; | |||||
}; | |||||
4BE50F910B01EE8100C05E63 /* Development */ = { | 4BE50F910B01EE8100C05E63 /* Development */ = { | ||||
isa = XCBuildConfiguration; | isa = XCBuildConfiguration; | ||||
buildSettings = { | buildSettings = { | ||||
@@ -5059,6 +5560,36 @@ | |||||
defaultConfigurationIsVisible = 0; | defaultConfigurationIsVisible = 0; | ||||
defaultConfigurationName = Default; | defaultConfigurationName = Default; | ||||
}; | }; | ||||
4BA692AC0CBE4BC700EAD520 /* Build configuration list for PBXNativeTarget "jack_load Universal" */ = { | |||||
isa = XCConfigurationList; | |||||
buildConfigurations = ( | |||||
4BA692AD0CBE4BC700EAD520 /* Development */, | |||||
4BA692AE0CBE4BC700EAD520 /* Deployment */, | |||||
4BA692AF0CBE4BC700EAD520 /* Default */, | |||||
); | |||||
defaultConfigurationIsVisible = 0; | |||||
defaultConfigurationName = Default; | |||||
}; | |||||
4BA692D00CBE4C9000EAD520 /* Build configuration list for PBXNativeTarget "jack_unload Universal" */ = { | |||||
isa = XCConfigurationList; | |||||
buildConfigurations = ( | |||||
4BA692D10CBE4C9000EAD520 /* Development */, | |||||
4BA692D20CBE4C9000EAD520 /* Deployment */, | |||||
4BA692D30CBE4C9000EAD520 /* Default */, | |||||
); | |||||
defaultConfigurationIsVisible = 0; | |||||
defaultConfigurationName = Default; | |||||
}; | |||||
4BD623F30CBCF0F000DE782F /* Build configuration list for PBXNativeTarget "inprocess" */ = { | |||||
isa = XCConfigurationList; | |||||
buildConfigurations = ( | |||||
4BD623F40CBCF0F000DE782F /* Development */, | |||||
4BD623F50CBCF0F000DE782F /* Deployment */, | |||||
4BD623F60CBCF0F000DE782F /* Default */, | |||||
); | |||||
defaultConfigurationIsVisible = 0; | |||||
defaultConfigurationName = Default; | |||||
}; | |||||
4BE50F900B01EE8100C05E63 /* Build configuration list for PBXNativeTarget "Jackwrapper.framework Universal" */ = { | 4BE50F900B01EE8100C05E63 /* Build configuration list for PBXNativeTarget "Jackwrapper.framework Universal" */ = { | ||||
isa = XCConfigurationList; | isa = XCConfigurationList; | ||||
buildConfigurations = ( | buildConfigurations = ( | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* IDENTIFICATION: | * IDENTIFICATION: | ||||
* stub generated Mon Aug 27 17:58:23 2007 | |||||
* stub generated Thu Oct 11 16:40:18 2007 | |||||
* with a MiG generated Mon Sep 11 19:11:05 PDT 2006 by root@b09.apple.com | * with a MiG generated Mon Sep 11 19:11:05 PDT 2006 by root@b09.apple.com | ||||
* OPTIONS: | * OPTIONS: | ||||
*/ | */ | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* IDENTIFICATION: | * IDENTIFICATION: | ||||
* stub generated Mon Aug 27 17:58:23 2007 | |||||
* stub generated Thu Oct 11 16:40:18 2007 | |||||
* with a MiG generated Mon Sep 11 19:11:05 PDT 2006 by root@b09.apple.com | * with a MiG generated Mon Sep 11 19:11:05 PDT 2006 by root@b09.apple.com | ||||
* OPTIONS: | * OPTIONS: | ||||
*/ | */ | ||||
@@ -27,6 +27,8 @@ ServerPrefix server_; | |||||
type client_name_t = c_string[128]; | type client_name_t = c_string[128]; | ||||
type client_port_name_t = c_string[128]; | type client_port_name_t = c_string[128]; | ||||
type so_name_t = c_string[1024]; | |||||
type objet_data_t = c_string[1024]; | |||||
routine rpc_jack_client_open( | routine rpc_jack_client_open( | ||||
server_port : mach_port_t; | server_port : mach_port_t; | ||||
@@ -124,6 +126,39 @@ routine rpc_jack_set_timebase_callback( | |||||
refnum : int; | refnum : int; | ||||
conditional : int; | conditional : int; | ||||
out result : int); | out result : int); | ||||
routine rpc_jack_get_internal_clientname( | |||||
server_port : mach_port_t; | |||||
refnum : int; | |||||
int_ref : int; | |||||
out client_name_res : client_name_t; | |||||
out result : int); | |||||
routine rpc_jack_internal_clienthandle( | |||||
server_port : mach_port_t; | |||||
refnum : int; | |||||
client_name : client_name_t; | |||||
out int_ref : int; | |||||
out status : int; | |||||
out result : int); | |||||
routine rpc_jack_internal_clientload( | |||||
server_port : mach_port_t; | |||||
refnum : int; | |||||
client_name : client_name_t; | |||||
so_name : so_name_t; | |||||
objet_data : objet_data_t; | |||||
options : int; | |||||
out status : int; | |||||
out int_ref : int; | |||||
out result : int); | |||||
routine rpc_jack_internal_clientunload( | |||||
server_port : mach_port_t; | |||||
refnum : int; | |||||
int_ref : int; | |||||
out status : int; | |||||
out result : int); | |||||
simpleroutine rpc_jack_client_rt_notify( | simpleroutine rpc_jack_client_rt_notify( | ||||
client_port : mach_port_t; | client_port : mach_port_t; | ||||
@@ -26,7 +26,7 @@ typedef function_table_entry *function_table_t; | |||||
#endif /* AUTOTEST */ | #endif /* AUTOTEST */ | ||||
#ifndef JackRPCEngine_MSG_COUNT | #ifndef JackRPCEngine_MSG_COUNT | ||||
#define JackRPCEngine_MSG_COUNT 16 | |||||
#define JackRPCEngine_MSG_COUNT 20 | |||||
#endif /* JackRPCEngine_MSG_COUNT */ | #endif /* JackRPCEngine_MSG_COUNT */ | ||||
#include <mach/std_types.h> | #include <mach/std_types.h> | ||||
@@ -260,6 +260,71 @@ kern_return_t rpc_jack_set_timebase_callback | |||||
int *result | int *result | ||||
); | ); | ||||
/* Routine rpc_jack_get_internal_clientname */ | |||||
#ifdef mig_external | |||||
mig_external | |||||
#else | |||||
extern | |||||
#endif /* mig_external */ | |||||
kern_return_t rpc_jack_get_internal_clientname | |||||
( | |||||
mach_port_t server_port, | |||||
int refnum, | |||||
int int_ref, | |||||
client_name_t client_name_res, | |||||
int *result | |||||
); | |||||
/* Routine rpc_jack_internal_clienthandle */ | |||||
#ifdef mig_external | |||||
mig_external | |||||
#else | |||||
extern | |||||
#endif /* mig_external */ | |||||
kern_return_t rpc_jack_internal_clienthandle | |||||
( | |||||
mach_port_t server_port, | |||||
int refnum, | |||||
client_name_t client_name, | |||||
int *int_ref, | |||||
int *status, | |||||
int *result | |||||
); | |||||
/* Routine rpc_jack_internal_clientload */ | |||||
#ifdef mig_external | |||||
mig_external | |||||
#else | |||||
extern | |||||
#endif /* mig_external */ | |||||
kern_return_t rpc_jack_internal_clientload | |||||
( | |||||
mach_port_t server_port, | |||||
int refnum, | |||||
client_name_t client_name, | |||||
so_name_t so_name, | |||||
objet_data_t objet_data, | |||||
int options, | |||||
int *status, | |||||
int *int_ref, | |||||
int *result | |||||
); | |||||
/* Routine rpc_jack_internal_clientunload */ | |||||
#ifdef mig_external | |||||
mig_external | |||||
#else | |||||
extern | |||||
#endif /* mig_external */ | |||||
kern_return_t rpc_jack_internal_clientunload | |||||
( | |||||
mach_port_t server_port, | |||||
int refnum, | |||||
int int_ref, | |||||
int *status, | |||||
int *result | |||||
); | |||||
/* SimpleRoutine rpc_jack_client_rt_notify */ | /* SimpleRoutine rpc_jack_client_rt_notify */ | ||||
#ifdef mig_external | #ifdef mig_external | ||||
mig_external | mig_external | ||||
@@ -488,6 +553,61 @@ __END_DECLS | |||||
#pragma pack() | #pragma pack() | ||||
#endif | #endif | ||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
int refnum; | |||||
int int_ref; | |||||
} __Request__rpc_jack_get_internal_clientname_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
int refnum; | |||||
client_name_t client_name; | |||||
} __Request__rpc_jack_internal_clienthandle_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
int refnum; | |||||
client_name_t client_name; | |||||
so_name_t so_name; | |||||
objet_data_t objet_data; | |||||
int options; | |||||
} __Request__rpc_jack_internal_clientload_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
int refnum; | |||||
int int_ref; | |||||
} __Request__rpc_jack_internal_clientunload_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | #ifdef __MigPackStructs | ||||
#pragma pack(4) | #pragma pack(4) | ||||
#endif | #endif | ||||
@@ -523,6 +643,10 @@ union __RequestUnion__JackRPCEngine_subsystem { | |||||
__Request__rpc_jack_set_freewheel_t Request_rpc_jack_set_freewheel; | __Request__rpc_jack_set_freewheel_t Request_rpc_jack_set_freewheel; | ||||
__Request__rpc_jack_release_timebase_t Request_rpc_jack_release_timebase; | __Request__rpc_jack_release_timebase_t Request_rpc_jack_release_timebase; | ||||
__Request__rpc_jack_set_timebase_callback_t Request_rpc_jack_set_timebase_callback; | __Request__rpc_jack_set_timebase_callback_t Request_rpc_jack_set_timebase_callback; | ||||
__Request__rpc_jack_get_internal_clientname_t Request_rpc_jack_get_internal_clientname; | |||||
__Request__rpc_jack_internal_clienthandle_t Request_rpc_jack_internal_clienthandle; | |||||
__Request__rpc_jack_internal_clientload_t Request_rpc_jack_internal_clientload; | |||||
__Request__rpc_jack_internal_clientunload_t Request_rpc_jack_internal_clientunload; | |||||
__Request__rpc_jack_client_rt_notify_t Request_rpc_jack_client_rt_notify; | __Request__rpc_jack_client_rt_notify_t Request_rpc_jack_client_rt_notify; | ||||
}; | }; | ||||
#endif /* !__RequestUnion__JackRPCEngine_subsystem__defined */ | #endif /* !__RequestUnion__JackRPCEngine_subsystem__defined */ | ||||
@@ -735,6 +859,64 @@ union __RequestUnion__JackRPCEngine_subsystem { | |||||
#pragma pack() | #pragma pack() | ||||
#endif | #endif | ||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
kern_return_t RetCode; | |||||
client_name_t client_name_res; | |||||
int result; | |||||
} __Reply__rpc_jack_get_internal_clientname_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
kern_return_t RetCode; | |||||
int int_ref; | |||||
int status; | |||||
int result; | |||||
} __Reply__rpc_jack_internal_clienthandle_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
kern_return_t RetCode; | |||||
int status; | |||||
int int_ref; | |||||
int result; | |||||
} __Reply__rpc_jack_internal_clientload_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | |||||
#pragma pack(4) | |||||
#endif | |||||
typedef struct { | |||||
mach_msg_header_t Head; | |||||
NDR_record_t NDR; | |||||
kern_return_t RetCode; | |||||
int status; | |||||
int result; | |||||
} __Reply__rpc_jack_internal_clientunload_t; | |||||
#ifdef __MigPackStructs | |||||
#pragma pack() | |||||
#endif | |||||
#ifdef __MigPackStructs | #ifdef __MigPackStructs | ||||
#pragma pack(4) | #pragma pack(4) | ||||
#endif | #endif | ||||
@@ -768,6 +950,10 @@ union __ReplyUnion__JackRPCEngine_subsystem { | |||||
__Reply__rpc_jack_set_freewheel_t Reply_rpc_jack_set_freewheel; | __Reply__rpc_jack_set_freewheel_t Reply_rpc_jack_set_freewheel; | ||||
__Reply__rpc_jack_release_timebase_t Reply_rpc_jack_release_timebase; | __Reply__rpc_jack_release_timebase_t Reply_rpc_jack_release_timebase; | ||||
__Reply__rpc_jack_set_timebase_callback_t Reply_rpc_jack_set_timebase_callback; | __Reply__rpc_jack_set_timebase_callback_t Reply_rpc_jack_set_timebase_callback; | ||||
__Reply__rpc_jack_get_internal_clientname_t Reply_rpc_jack_get_internal_clientname; | |||||
__Reply__rpc_jack_internal_clienthandle_t Reply_rpc_jack_internal_clienthandle; | |||||
__Reply__rpc_jack_internal_clientload_t Reply_rpc_jack_internal_clientload; | |||||
__Reply__rpc_jack_internal_clientunload_t Reply_rpc_jack_internal_clientunload; | |||||
__Reply__rpc_jack_client_rt_notify_t Reply_rpc_jack_client_rt_notify; | __Reply__rpc_jack_client_rt_notify_t Reply_rpc_jack_client_rt_notify; | ||||
}; | }; | ||||
#endif /* !__RequestUnion__JackRPCEngine_subsystem__defined */ | #endif /* !__RequestUnion__JackRPCEngine_subsystem__defined */ | ||||
@@ -789,7 +975,11 @@ union __ReplyUnion__JackRPCEngine_subsystem { | |||||
{ "rpc_jack_set_freewheel", 1012 },\ | { "rpc_jack_set_freewheel", 1012 },\ | ||||
{ "rpc_jack_release_timebase", 1013 },\ | { "rpc_jack_release_timebase", 1013 },\ | ||||
{ "rpc_jack_set_timebase_callback", 1014 },\ | { "rpc_jack_set_timebase_callback", 1014 },\ | ||||
{ "rpc_jack_client_rt_notify", 1015 } | |||||
{ "rpc_jack_get_internal_clientname", 1015 },\ | |||||
{ "rpc_jack_internal_clienthandle", 1016 },\ | |||||
{ "rpc_jack_internal_clientload", 1017 },\ | |||||
{ "rpc_jack_internal_clientunload", 1018 },\ | |||||
{ "rpc_jack_client_rt_notify", 1019 } | |||||
#endif | #endif | ||||
#ifdef __AfterMigUserHeader | #ifdef __AfterMigUserHeader | ||||
@@ -1,4 +1,6 @@ | |||||
typedef char client_name_t[128]; | |||||
typedef char client_port_name_t[128]; | |||||
typedef char client_name_t[64]; | |||||
typedef char client_port_name_t[256]; | |||||
typedef char so_name_t[256]; | |||||
typedef char objet_data_t[256]; |