From 48815285d573b50c207028115aed4f776128d192 Mon Sep 17 00:00:00 2001 From: sletz Date: Thu, 3 Nov 2011 08:44:02 +0000 Subject: [PATCH] Add missing jack_client_get_uuid API. git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4558 0c269be4-1314-0410-8aa9-9f06e86f4224 --- ChangeLog | 4 ++++ common/JackAPI.cpp | 17 ++++++++++++++ common/shm.c | 38 +++++++++++++++++-------------- windows/JackRouter/JackRouter.cpp | 2 +- 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2d72c9bc..90ab0dfc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -36,6 +36,10 @@ John Emmas Jackdmp changes log --------------------------- +2011-11-03 Stephane Letz + + * Add missing jack_client_get_uuid API. + 2011-10-28 Stephane Letz * John Emmas POST_PACKED_STRUCTURE patch. diff --git a/common/JackAPI.cpp b/common/JackAPI.cpp index 6d8bb383..daf2eb82 100644 --- a/common/JackAPI.cpp +++ b/common/JackAPI.cpp @@ -260,6 +260,7 @@ extern "C" LIB_EXPORT jack_session_command_t *jack_session_notify(jack_client_t* ext_client, const char* target, jack_session_event_type_t ev_type, const char* path); LIB_EXPORT int jack_session_reply(jack_client_t* ext_client, jack_session_event_t *event); LIB_EXPORT void jack_session_event_free(jack_session_event_t* ev); + LIB_EXPORT char* jack_client_get_uuid (jack_client_t *client); LIB_EXPORT char* jack_get_uuid_for_client_name(jack_client_t* ext_client, const char* client_name); LIB_EXPORT char* jack_get_client_name_by_uuid(jack_client_t* ext_client, const char* client_uuid); LIB_EXPORT int jack_reserve_client_name(jack_client_t* ext_client, const char* name, const char* uuid); @@ -2022,6 +2023,22 @@ LIB_EXPORT void jack_session_event_free(jack_session_event_t* ev) } } +LIB_EXPORT char *jack_client_get_uuid(jack_client_t* ext_client) +{ +#ifdef __CLIENTDEBUG__ + JackGlobals::CheckContext("jack_client_get_uuid"); +#endif + JackClient* client = (JackClient*)ext_client; + if (client == NULL) { + jack_error("jack_client_get_uuid called with a NULL client"); + return NULL; + } else { + char retval[16]; + snprintf(retval, sizeof(retval), "%d", client->GetClientControl()->fSessionID); + return strdup(retval); + } +} + LIB_EXPORT char* jack_get_uuid_for_client_name(jack_client_t* ext_client, const char* client_name) { #ifdef __CLIENTDEBUG__ diff --git a/common/shm.c b/common/shm.c index 5a05103e..a4605162 100644 --- a/common/shm.c +++ b/common/shm.c @@ -141,13 +141,13 @@ static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE] = ""; static int semid = -1; -#ifdef WIN32 - -#include +#ifdef WIN32 + +#include #include static BOOL check_process_running(DWORD process_id) -{ +{ DWORD aProcesses[2048], cbNeeded, cProcesses; unsigned int i; @@ -159,7 +159,7 @@ static BOOL check_process_running(DWORD process_id) // Calculate how many process identifiers were returned. cProcesses = cbNeeded / sizeof(DWORD); - for (i = 0; i < cProcesses; i++) { + for (i = 0; i < cProcesses; i++) { if (aProcesses[i] == process_id) { // Process process_id is running... return TRUE; @@ -313,18 +313,17 @@ jack_shm_validate_registry () */ static void jack_set_server_prefix (const char *server_name) -{ - #ifdef WIN32 - char buffer[UNLEN+1]={0}; - DWORD len = UNLEN+1; - GetUserName(buffer, &len); +{ +#ifdef WIN32 + char buffer[UNLEN+1]={0}; + DWORD len = UNLEN+1; + GetUserName(buffer, &len); snprintf (jack_shm_server_prefix, sizeof (jack_shm_server_prefix), - "jack-%s:%s:", buffer, server_name); - #else + "jack-%s:%s:", buffer, server_name); +#else snprintf (jack_shm_server_prefix, sizeof (jack_shm_server_prefix), - "jack-%d:%s:", GetUID(), server_name); - #endif - + "jack-%d:%s:", GetUID(), server_name); +#endif } /* gain server addressability to shared memory registration segment @@ -502,7 +501,9 @@ jack_register_server (const char *server_name, int new_registry) /* See if server_name already registered. Since server names * are per-user, we register the unique server prefix string. */ - for (i = 0; i < MAX_SERVERS; i++) { + for (i = 0; i < MAX_SERVERS; i++) { + + printf("server name %s %s\n", jack_shm_header->server[i].name, jack_shm_server_prefix); if (strncmp (jack_shm_header->server[i].name, jack_shm_server_prefix, @@ -547,7 +548,9 @@ jack_register_server (const char *server_name, int new_registry) jack_shm_header->server[i].pid = GetPID(); strncpy (jack_shm_header->server[i].name, jack_shm_server_prefix, - JACK_SERVER_NAME_SIZE); + JACK_SERVER_NAME_SIZE); + + printf("new server name %s \n", jack_shm_header->server[i].name); unlock: jack_shm_unlock_registry (); @@ -1288,3 +1291,4 @@ jack_attach_shm (jack_shm_info_t* si) } #endif /* !USE_POSIX_SHM */ + diff --git a/windows/JackRouter/JackRouter.cpp b/windows/JackRouter/JackRouter.cpp index 55033001..84086f95 100644 --- a/windows/JackRouter/JackRouter.cpp +++ b/windows/JackRouter/JackRouter.cpp @@ -34,7 +34,7 @@ #include "profport.h" /* - 08/07/2007 SL : USe jack_client_open instead of jack_client_new (automatic client renaming). + 08/07/2007 SL : Use jack_client_open instead of jack_client_new (automatic client renaming). 09/08/2007 SL : Add JackRouter.ini parameter file. 09/20/2007 SL : Better error report in DllRegisterServer (for Vista). 09/27/2007 SL : Add AUDO_CONNECT property in JackRouter.ini file.