git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4067 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.7
| @@ -26,6 +26,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |||||
| #include "JackMutex.h" | #include "JackMutex.h" | ||||
| #include "JackTransportEngine.h" | #include "JackTransportEngine.h" | ||||
| #include "JackPlatformPlug.h" | #include "JackPlatformPlug.h" | ||||
| #include <map> | |||||
| namespace Jack | namespace Jack | ||||
| { | { | ||||
| @@ -41,7 +42,7 @@ class JackExternalClient; | |||||
| class SERVER_EXPORT JackEngine : public JackLockAble | class SERVER_EXPORT JackEngine : public JackLockAble | ||||
| { | { | ||||
| friend class JackLockedEngine; | friend class JackLockedEngine; | ||||
| private: | private: | ||||
| JackGraphManager* fGraphManager; | JackGraphManager* fGraphManager; | ||||
| @@ -75,15 +76,15 @@ class SERVER_EXPORT JackEngine : public JackLockAble | |||||
| void NotifyClient(int refnum, int event, int sync, const char* message, int value1, int value2); | void NotifyClient(int refnum, int event, int sync, const char* message, int value1, int value2); | ||||
| void NotifyClients(int event, int sync, const char* message, int value1, int value2); | void NotifyClients(int event, int sync, const char* message, int value1, int value2); | ||||
| void NotifyPortRegistation(jack_port_id_t port_index, bool onoff); | void NotifyPortRegistation(jack_port_id_t port_index, bool onoff); | ||||
| void NotifyPortConnect(jack_port_id_t src, jack_port_id_t dst, bool onoff); | void NotifyPortConnect(jack_port_id_t src, jack_port_id_t dst, bool onoff); | ||||
| void NotifyPortRename(jack_port_id_t src, const char* old_name); | void NotifyPortRename(jack_port_id_t src, const char* old_name); | ||||
| void NotifyActivate(int refnum); | void NotifyActivate(int refnum); | ||||
| int GetNewUUID(); | int GetNewUUID(); | ||||
| void EnsureUUID(int uuid); | void EnsureUUID(int uuid); | ||||
| bool CheckClient(int refnum) | bool CheckClient(int refnum) | ||||
| { | { | ||||
| return (refnum >= 0 && refnum < CLIENT_NUM && fClientTable[refnum] != NULL); | return (refnum >= 0 && refnum < CLIENT_NUM && fClientTable[refnum] != NULL); | ||||
| @@ -96,7 +97,7 @@ class SERVER_EXPORT JackEngine : public JackLockAble | |||||
| int Open(); | int Open(); | ||||
| int Close(); | int Close(); | ||||
| // Client management | // Client management | ||||
| int ClientCheck(const char* name, int uuid, char* name_res, int protocol, int options, int* status); | int ClientCheck(const char* name, int uuid, char* name_res, int protocol, int options, int* status); | ||||
| int ClientExternalOpen(const char* name, int pid, int uuid, int* ref, int* shared_engine, int* shared_client, int* shared_graph_manager); | int ClientExternalOpen(const char* name, int pid, int uuid, int* ref, int* shared_engine, int* shared_client, int* shared_graph_manager); | ||||
| @@ -107,10 +108,10 @@ class SERVER_EXPORT JackEngine : public JackLockAble | |||||
| int ClientActivate(int refnum, bool is_real_time); | int ClientActivate(int refnum, bool is_real_time); | ||||
| int ClientDeactivate(int refnum); | int ClientDeactivate(int refnum); | ||||
| int GetClientPID(const char* name); | int GetClientPID(const char* name); | ||||
| int GetClientRefNum(const char* name); | int GetClientRefNum(const char* name); | ||||
| // Internal client management | // Internal client management | ||||
| int GetInternalClientName(int int_ref, char* name_res); | int GetInternalClientName(int int_ref, char* name_res); | ||||
| int InternalClientHandle(const char* client_name, int* status, int* int_ref); | int InternalClientHandle(const char* client_name, int* status, int* int_ref); | ||||
| @@ -125,7 +126,7 @@ class SERVER_EXPORT JackEngine : public JackLockAble | |||||
| int PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | int PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | ||||
| int PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | int PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst); | ||||
| int PortRename(int refnum, jack_port_id_t port, const char* name); | int PortRename(int refnum, jack_port_id_t port, const char* name); | ||||
| // Graph | // Graph | ||||
| @@ -143,7 +144,7 @@ class SERVER_EXPORT JackEngine : public JackLockAble | |||||
| void SessionNotify( int refnum, const char *target, jack_session_event_type_t type, const char *path, JackChannelTransaction *socket ); | void SessionNotify( int refnum, const char *target, jack_session_event_type_t type, const char *path, JackChannelTransaction *socket ); | ||||
| void SessionReply( int refnum ); | void SessionReply( int refnum ); | ||||
| void GetUUIDForClientName(const char *client_name, char *uuid_res, int *result); | void GetUUIDForClientName(const char *client_name, char *uuid_res, int *result); | ||||
| void GetClientNameForUUID(const char *uuid, char *name_res, int *result); | void GetClientNameForUUID(const char *uuid, char *name_res, int *result); | ||||
| void ReserveClientName(const char *name, const char *uuid, int *result); | void ReserveClientName(const char *name, const char *uuid, int *result); | ||||
| @@ -169,7 +169,7 @@ void Jack_Thread_Init_Callback(void *arg) | |||||
| void Jack_Freewheel_Callback(int starting, void *arg) | void Jack_Freewheel_Callback(int starting, void *arg) | ||||
| { | { | ||||
| Log("Freewhell callback has been successfully called with value %i. (msg from callback)\n", starting); | |||||
| Log("Freewheel callback has been successfully called with value %i. (msg from callback)\n", starting); | |||||
| FW = starting; | FW = starting; | ||||
| } | } | ||||
| @@ -633,39 +633,39 @@ int main (int argc, char *argv[]) | |||||
| if (status & JackServerStarted) { | if (status & JackServerStarted) { | ||||
| fprintf(stderr, "JACK server started\n"); | fprintf(stderr, "JACK server started\n"); | ||||
| } | } | ||||
| /** | /** | ||||
| * Internal client tests... | * Internal client tests... | ||||
| * | * | ||||
| */ | */ | ||||
| jack_intclient_t intclient; | jack_intclient_t intclient; | ||||
| Log("trying to load the \"inprocess\" server internal client \n"); | Log("trying to load the \"inprocess\" server internal client \n"); | ||||
| intclient = jack_internal_client_load (client1, "inprocess", | intclient = jack_internal_client_load (client1, "inprocess", | ||||
| (jack_options_t)(JackLoadName|JackLoadInit), | (jack_options_t)(JackLoadName|JackLoadInit), | ||||
| &status, "inprocess", ""); | &status, "inprocess", ""); | ||||
| if (intclient == 0 || status & JackFailure) { | if (intclient == 0 || status & JackFailure) { | ||||
| printf("!!! ERROR !!! cannot load internal client \"inprocess\" intclient %d status 0x%2.0x !\n", intclient, status); | printf("!!! ERROR !!! cannot load internal client \"inprocess\" intclient %d status 0x%2.0x !\n", intclient, status); | ||||
| } else { | } else { | ||||
| Log("\"inprocess\" server internal client loaded\n"); | Log("\"inprocess\" server internal client loaded\n"); | ||||
| char* internal_name = jack_get_internal_client_name(client1, intclient); | char* internal_name = jack_get_internal_client_name(client1, intclient); | ||||
| if (strcmp(internal_name, "inprocess") == 0) { | if (strcmp(internal_name, "inprocess") == 0) { | ||||
| Log("jack_get_internal_client_name returns %s\n", internal_name); | Log("jack_get_internal_client_name returns %s\n", internal_name); | ||||
| } else { | } else { | ||||
| printf("!!! ERROR !!! jack_get_internal_client_name returns incorrect name %s\n", internal_name); | printf("!!! ERROR !!! jack_get_internal_client_name returns incorrect name %s\n", internal_name); | ||||
| } | } | ||||
| jack_intclient_t intclient1 = jack_internal_client_handle(client1, "inprocess", &status); | jack_intclient_t intclient1 = jack_internal_client_handle(client1, "inprocess", &status); | ||||
| if (intclient1 == intclient) { | if (intclient1 == intclient) { | ||||
| Log("jack_internal_client_handle returns correct handle\n"); | Log("jack_internal_client_handle returns correct handle\n"); | ||||
| } else { | } else { | ||||
| printf("!!! ERROR !!! jack_internal_client_handle returns incorrect handle %d\n", intclient1); | printf("!!! ERROR !!! jack_internal_client_handle returns incorrect handle %d\n", intclient1); | ||||
| } | } | ||||
| // Unload internal client | // Unload internal client | ||||
| status = jack_internal_client_unload (client1, intclient); | status = jack_internal_client_unload (client1, intclient); | ||||
| if (status == 0) { | if (status == 0) { | ||||
| @@ -673,7 +673,7 @@ int main (int argc, char *argv[]) | |||||
| } else { | } else { | ||||
| printf("!!! ERROR !!! jack_internal_client_unload returns incorrect value 0x%2.0x\n", status); | printf("!!! ERROR !!! jack_internal_client_unload returns incorrect value 0x%2.0x\n", status); | ||||
| } | } | ||||
| // Unload internal client second time | // Unload internal client second time | ||||
| status = jack_internal_client_unload (client1, intclient); | status = jack_internal_client_unload (client1, intclient); | ||||
| if (status & JackFailure && status & JackNoSuchClient) { | if (status & JackFailure && status & JackNoSuchClient) { | ||||
| @@ -682,8 +682,8 @@ int main (int argc, char *argv[]) | |||||
| printf("!!! ERROR !!! jack_internal_client_unload returns incorrect value 0x%2.0x\n", status); | printf("!!! ERROR !!! jack_internal_client_unload returns incorrect value 0x%2.0x\n", status); | ||||
| } | } | ||||
| } | } | ||||
| /** | /** | ||||
| * try to register another one with the same name... | * try to register another one with the same name... | ||||
| * | * | ||||
| @@ -738,7 +738,7 @@ int main (int argc, char *argv[]) | |||||
| printf("!!! ERROR !!! while calling jack_set_thread_init_callback()...\n"); | printf("!!! ERROR !!! while calling jack_set_thread_init_callback()...\n"); | ||||
| if (jack_set_freewheel_callback(client1, Jack_Freewheel_Callback, 0) != 0 ) | if (jack_set_freewheel_callback(client1, Jack_Freewheel_Callback, 0) != 0 ) | ||||
| printf("\n!!! ERROR !!! while calling jack_set_freewheel_callback()...\n"); | printf("\n!!! ERROR !!! while calling jack_set_freewheel_callback()...\n"); | ||||
| if (jack_set_process_callback(client1, process1, 0) != 0) { | if (jack_set_process_callback(client1, process1, 0) != 0) { | ||||
| printf("Error when calling jack_set_process_callback() !\n"); | printf("Error when calling jack_set_process_callback() !\n"); | ||||
| @@ -754,7 +754,7 @@ int main (int argc, char *argv[]) | |||||
| if (jack_set_graph_order_callback(client1, Jack_Graph_Order_Callback, 0) != 0) { | if (jack_set_graph_order_callback(client1, Jack_Graph_Order_Callback, 0) != 0) { | ||||
| printf("Error when calling Jack_Graph_Order_Callback() !\n"); | printf("Error when calling Jack_Graph_Order_Callback() !\n"); | ||||
| } | } | ||||
| if (jack_set_port_rename_callback(client1, Jack_Port_Rename_Callback, 0) != 0 ) | if (jack_set_port_rename_callback(client1, Jack_Port_Rename_Callback, 0) != 0 ) | ||||
| printf("\n!!! ERROR !!! while calling jack_set_rename_callback()...\n"); | printf("\n!!! ERROR !!! while calling jack_set_rename_callback()...\n"); | ||||
| @@ -874,7 +874,7 @@ int main (int argc, char *argv[]) | |||||
| } | } | ||||
| port_callback_reg = 0; // number of port registration received by the callback | port_callback_reg = 0; // number of port registration received by the callback | ||||
| /** | /** | ||||
| * Activate the client | * Activate the client | ||||
| * | * | ||||
| @@ -883,31 +883,31 @@ int main (int argc, char *argv[]) | |||||
| printf ("Fatal error : cannot activate client1\n"); | printf ("Fatal error : cannot activate client1\n"); | ||||
| exit(1); | exit(1); | ||||
| } | } | ||||
| /** | /** | ||||
| * Test if portrename callback have been called. | * Test if portrename callback have been called. | ||||
| * | * | ||||
| */ | */ | ||||
| jack_port_set_name (output_port1, "renamed-port#"); | jack_port_set_name (output_port1, "renamed-port#"); | ||||
| jack_sleep(1 * 1000); | |||||
| jack_sleep(1 * 1000); | |||||
| if (port_rename_clbk == 0) | if (port_rename_clbk == 0) | ||||
| printf("!!! ERROR !!! Jack_Port_Rename_Callback was not called !!.\n"); | printf("!!! ERROR !!! Jack_Port_Rename_Callback was not called !!.\n"); | ||||
| /** | /** | ||||
| * Test if portregistration callback have been called. | * Test if portregistration callback have been called. | ||||
| * | * | ||||
| */ | */ | ||||
| jack_sleep(1 * 1000); | |||||
| jack_sleep(1 * 1000); | |||||
| if (1 == port_callback_reg) { | if (1 == port_callback_reg) { | ||||
| Log("%i ports have been successfully created, and %i callback reg ports have been received... ok\n", 1, port_callback_reg); | Log("%i ports have been successfully created, and %i callback reg ports have been received... ok\n", 1, port_callback_reg); | ||||
| } else { | } else { | ||||
| printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", 1, port_callback_reg); | printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", 1, port_callback_reg); | ||||
| } | } | ||||
| /** | /** | ||||
| * Test if init callback initThread have been called. | * Test if init callback initThread have been called. | ||||
| * | * | ||||
| @@ -1162,14 +1162,14 @@ int main (int argc, char *argv[]) | |||||
| } | } | ||||
| jack_sleep(1 * 1000); // To hope all port registration and reorder callback have been received... | jack_sleep(1 * 1000); // To hope all port registration and reorder callback have been received... | ||||
| // Check port registration callback | // Check port registration callback | ||||
| if (j == port_callback_reg) { | if (j == port_callback_reg) { | ||||
| Log("%i ports have been successfully created, and %i callback reg ports have been received... ok\n", j, port_callback_reg); | Log("%i ports have been successfully created, and %i callback reg ports have been received... ok\n", j, port_callback_reg); | ||||
| } else { | } else { | ||||
| printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", j, port_callback_reg); | printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", j, port_callback_reg); | ||||
| } | } | ||||
| if (reorder == (2 * j)) { | if (reorder == (2 * j)) { | ||||
| Log("%i graph reorder callback have been received... ok\n", reorder); | Log("%i graph reorder callback have been received... ok\n", reorder); | ||||
| } else { | } else { | ||||
| @@ -1231,9 +1231,9 @@ int main (int argc, char *argv[]) | |||||
| } | } | ||||
| a++; | a++; | ||||
| } | } | ||||
| // Check port registration callback again | // Check port registration callback again | ||||
| if (j == port_callback_reg) { | |||||
| if (j == port_callback_reg) { | |||||
| Log("%i ports have been successfully created, and %i callback reg ports have been received... ok\n", j, port_callback_reg); | Log("%i ports have been successfully created, and %i callback reg ports have been received... ok\n", j, port_callback_reg); | ||||
| } else { | } else { | ||||
| printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", j, port_callback_reg); | printf("!!! ERROR !!! %i ports have been created, and %i callback reg ports have been received !\n", j, port_callback_reg); | ||||
| @@ -1,20 +1,20 @@ | |||||
| /* | /* | ||||
| Copyright (C) 2004-2008 Grame | Copyright (C) 2004-2008 Grame | ||||
| This program is free software; you can redistribute it and/or modify | This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU Lesser General Public License as published by | it under the terms of the GNU Lesser General Public License as published by | ||||
| the Free Software Foundation; either version 2.1 of the License, or | the Free Software Foundation; either version 2.1 of the License, or | ||||
| (at your option) any later version. | (at your option) any later version. | ||||
| This program is distributed in the hope that it will be useful, | This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| GNU Lesser General Public License for more details. | GNU Lesser General Public License for more details. | ||||
| You should have received a copy of the GNU Lesser General Public License | You should have received a copy of the GNU Lesser General Public License | ||||
| along with this program; if not, write to the Free Software | along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
| */ | */ | ||||
| @@ -76,7 +76,7 @@ class JackWinNamedPipeClientChannel : public detail::JackClientChannelInterface, | |||||
| void PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result); | void PortConnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result); | ||||
| void PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result); | void PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t dst, int* result); | ||||
| void PortRename(int refnum, jack_port_id_t port, const char* name, int* result); | void PortRename(int refnum, jack_port_id_t port, const char* name, int* result); | ||||
| void SetBufferSize(jack_nframes_t buffer_size, int* result); | void SetBufferSize(jack_nframes_t buffer_size, int* result); | ||||
| @@ -90,6 +90,8 @@ class JackWinNamedPipeClientChannel : public detail::JackClientChannelInterface, | |||||
| void InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int uuid, 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 uuid, int* result); | ||||
| void InternalClientUnload(int refnum, int int_ref, int* status, int* result); | void InternalClientUnload(int refnum, int int_ref, int* status, int* result); | ||||
| void SessionNotify(int refnum, const char* target, jack_session_event_type_t type, const char* path, jack_session_command_t** result); | |||||
| // JackRunnableInterface interface | // JackRunnableInterface interface | ||||
| bool Init(); | bool Init(); | ||||
| bool Execute(); | bool Execute(); | ||||
| @@ -331,12 +331,12 @@ bool JackClientPipeThread::HandleRequest() | |||||
| JackSessionNotifyRequest req; | JackSessionNotifyRequest req; | ||||
| JackSessionNotifyResult res; | JackSessionNotifyResult res; | ||||
| if (req.Read(fPipe) == 0) { | if (req.Read(fPipe) == 0) { | ||||
| fServer->GetEngine()->SessionNotify(req.fRefNum, req.fDst, req.fEventType, req.fPath); | |||||
| fServer->GetEngine()->SessionNotify(req.fRefNum, req.fDst, req.fEventType, req.fPath, fPipe); | |||||
| } | } | ||||
| res.Write(fPipe); | res.Write(fPipe); | ||||
| break; | break; | ||||
| } | } | ||||
| case JackRequest::kSessionReply: { | case JackRequest::kSessionReply: { | ||||
| jack_log("JackRequest::SessionReply"); | jack_log("JackRequest::SessionReply"); | ||||
| JackSessionReplyRequest req; | JackSessionReplyRequest req; | ||||
| @@ -347,7 +347,7 @@ bool JackClientPipeThread::HandleRequest() | |||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| case JackRequest::kGetClientByUUID: { | case JackRequest::kGetClientByUUID: { | ||||
| jack_log("JackRequest::GetClientNameForUUID"); | jack_log("JackRequest::GetClientNameForUUID"); | ||||
| JackGetClientNameRequest req; | JackGetClientNameRequest req; | ||||
| @@ -358,7 +358,7 @@ bool JackClientPipeThread::HandleRequest() | |||||
| res.Write(fPipe); | res.Write(fPipe); | ||||
| break; | break; | ||||
| } | } | ||||
| case JackRequest::kGetUUIDByClient: { | case JackRequest::kGetUUIDByClient: { | ||||
| jack_log("JackRequest::GetUUIDForClientName"); | jack_log("JackRequest::GetUUIDForClientName"); | ||||
| JackGetUUIDRequest req; | JackGetUUIDRequest req; | ||||
| @@ -370,7 +370,7 @@ bool JackClientPipeThread::HandleRequest() | |||||
| res.Write(fPipe); | res.Write(fPipe); | ||||
| break; | break; | ||||
| } | } | ||||
| case JackRequest::kReserveClientName: { | case JackRequest::kReserveClientName: { | ||||
| jack_log("JackRequest::ReserveClientName"); | jack_log("JackRequest::ReserveClientName"); | ||||
| JackReserveNameRequest req; | JackReserveNameRequest req; | ||||
| @@ -394,11 +394,11 @@ bool JackClientPipeThread::HandleRequest() | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| void JackClientPipeThread::ClientAdd(char* name, int pid, int* shared_engine, int* shared_client, int* shared_graph, int* result) | |||||
| void JackClientPipeThread::ClientAdd(char* name, int pid, int uuid, int* shared_engine, int* shared_client, int* shared_graph, int* result) | |||||
| { | { | ||||
| jack_log("JackClientPipeThread::ClientAdd %s", name); | jack_log("JackClientPipeThread::ClientAdd %s", name); | ||||
| fRefNum = -1; | fRefNum = -1; | ||||
| *result = fServer->GetEngine()->ClientExternalOpen(name, pid, &fRefNum, shared_engine, shared_client, shared_graph); | |||||
| *result = fServer->GetEngine()->ClientExternalOpen(name, pid, uuid, &fRefNum, shared_engine, shared_client, shared_graph); | |||||
| } | } | ||||
| void JackClientPipeThread::ClientRemove() | void JackClientPipeThread::ClientRemove() | ||||
| @@ -1,20 +1,20 @@ | |||||
| /* | /* | ||||
| Copyright (C) 2004-2008 Grame | Copyright (C) 2004-2008 Grame | ||||
| This program is free software; you can redistribute it and/or modify | This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU Lesser General Public License as published by | it under the terms of the GNU Lesser General Public License as published by | ||||
| the Free Software Foundation; either version 2.1 of the License, or | the Free Software Foundation; either version 2.1 of the License, or | ||||
| (at your option) any later version. | (at your option) any later version. | ||||
| This program is distributed in the hope that it will be useful, | This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| GNU Lesser General Public License for more details. | GNU Lesser General Public License for more details. | ||||
| You should have received a copy of the GNU Lesser General Public License | You should have received a copy of the GNU Lesser General Public License | ||||
| along with this program; if not, write to the Free Software | along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
| */ | */ | ||||
| @@ -40,7 +40,7 @@ class JackClientPipeThread : public JackRunnableInterface | |||||
| JackThread fThread; | JackThread fThread; | ||||
| int fRefNum; | int fRefNum; | ||||
| void ClientAdd(char* name, int pid, int* shared_engine, int* shared_client, int* shared_graph, int* result); | |||||
| void ClientAdd(char* name, int pid, int uuid, int* shared_engine, int* shared_client, int* shared_graph, int* result); | |||||
| void ClientRemove(); | void ClientRemove(); | ||||
| void ClientKill(); | void ClientKill(); | ||||
| @@ -53,7 +53,7 @@ class JackClientPipeThread : public JackRunnableInterface | |||||
| int Open(JackServer* server); // Open the Server/Client connection | int Open(JackServer* server); // Open the Server/Client connection | ||||
| void Close(); // Close the Server/Client connection | void Close(); // Close the Server/Client connection | ||||
| bool HandleRequest(); | bool HandleRequest(); | ||||
| // JackRunnableInterface interface | // JackRunnableInterface interface | ||||
| @@ -91,7 +91,7 @@ class JackWinNamedPipeServerChannel : public JackRunnableInterface | |||||
| int Open(const char* server_name, JackServer* server); // Open the Server/Client connection | int Open(const char* server_name, JackServer* server); // Open the Server/Client connection | ||||
| void Close(); // Close the Server/Client connection | void Close(); // Close the Server/Client connection | ||||
| int Start(); | int Start(); | ||||
| // JackRunnableInterface interface | // JackRunnableInterface interface | ||||
| @@ -1,20 +1,20 @@ | |||||
| /* | /* | ||||
| Copyright (C) 2004-2008 Grame | Copyright (C) 2004-2008 Grame | ||||
| This program is free software; you can redistribute it and/or modify | This program is free software; you can redistribute it and/or modify | ||||
| it under the terms of the GNU Lesser General Public License as published by | it under the terms of the GNU Lesser General Public License as published by | ||||
| the Free Software Foundation; either version 2.1 of the License, or | the Free Software Foundation; either version 2.1 of the License, or | ||||
| (at your option) any later version. | (at your option) any later version. | ||||
| This program is distributed in the hope that it will be useful, | This program is distributed in the hope that it will be useful, | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
| GNU Lesser General Public License for more details. | GNU Lesser General Public License for more details. | ||||
| You should have received a copy of the GNU Lesser General Public License | You should have received a copy of the GNU Lesser General Public License | ||||
| along with this program; if not, write to the Free Software | along with this program; if not, write to the Free Software | ||||
| Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
| */ | */ | ||||
| @@ -59,24 +59,25 @@ class SERVER_EXPORT JackWinThread : public detail::JackThreadInterface | |||||
| int AcquireRealTime(); // Used when called from another thread | int AcquireRealTime(); // Used when called from another thread | ||||
| int AcquireSelfRealTime(); // Used when called from thread itself | int AcquireSelfRealTime(); // Used when called from thread itself | ||||
| int AcquireRealTime(int priority); // Used when called from another thread | int AcquireRealTime(int priority); // Used when called from another thread | ||||
| int AcquireSelfRealTime(int priority); // Used when called from thread itself | int AcquireSelfRealTime(int priority); // Used when called from thread itself | ||||
| int DropRealTime(); // Used when called from another thread | int DropRealTime(); // Used when called from another thread | ||||
| int DropSelfRealTime(); // Used when called from thread itself | int DropSelfRealTime(); // Used when called from thread itself | ||||
| pthread_t GetThreadID(); | pthread_t GetThreadID(); | ||||
| bool IsThread(); | |||||
| static int AcquireRealTimeImp(pthread_t thread, int priority); | static int AcquireRealTimeImp(pthread_t thread, int priority); | ||||
| static int AcquireRealTimeImp(pthread_t thread, int priority, UInt64 period, UInt64 computation, UInt64 constraint) | static int AcquireRealTimeImp(pthread_t thread, int priority, UInt64 period, UInt64 computation, UInt64 constraint) | ||||
| { | |||||
| return JackWinThread::AcquireRealTimeImp(thread, priority); | |||||
| { | |||||
| return JackWinThread::AcquireRealTimeImp(thread, priority); | |||||
| } | } | ||||
| static int DropRealTimeImp(pthread_t thread); | static int DropRealTimeImp(pthread_t thread); | ||||
| static int StartImp(pthread_t* thread, int priority, int realtime, void*(*start_routine)(void*), void* arg) | static int StartImp(pthread_t* thread, int priority, int realtime, void*(*start_routine)(void*), void* arg) | ||||
| { | |||||
| return JackWinThread::StartImp(thread, priority, realtime, (ThreadCallback) start_routine, arg); | |||||
| { | |||||
| return JackWinThread::StartImp(thread, priority, realtime, (ThreadCallback) start_routine, arg); | |||||
| } | } | ||||
| static int StartImp(pthread_t* thread, int priority, int realtime, ThreadCallback start_routine, void* arg); | static int StartImp(pthread_t* thread, int priority, int realtime, ThreadCallback start_routine, void* arg); | ||||
| static int StopImp(pthread_t thread); | static int StopImp(pthread_t thread); | ||||