Browse Source

Add missing jack_client_get_uuid API.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4558 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.8
sletz 14 years ago
parent
commit
48815285d5
4 changed files with 43 additions and 18 deletions
  1. +4
    -0
      ChangeLog
  2. +17
    -0
      common/JackAPI.cpp
  3. +21
    -17
      common/shm.c
  4. +1
    -1
      windows/JackRouter/JackRouter.cpp

+ 4
- 0
ChangeLog View File

@@ -36,6 +36,10 @@ John Emmas
Jackdmp changes log Jackdmp changes log
--------------------------- ---------------------------


2011-11-03 Stephane Letz <letz@grame.fr>

* Add missing jack_client_get_uuid API.

2011-10-28 Stephane Letz <letz@grame.fr> 2011-10-28 Stephane Letz <letz@grame.fr>


* John Emmas POST_PACKED_STRUCTURE patch. * John Emmas POST_PACKED_STRUCTURE patch.


+ 17
- 0
common/JackAPI.cpp View File

@@ -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 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 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 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_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 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); 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) LIB_EXPORT char* jack_get_uuid_for_client_name(jack_client_t* ext_client, const char* client_name)
{ {
#ifdef __CLIENTDEBUG__ #ifdef __CLIENTDEBUG__


+ 21
- 17
common/shm.c View File

@@ -141,13 +141,13 @@ static char jack_shm_server_prefix[JACK_SERVER_NAME_SIZE] = "";


static int semid = -1; static int semid = -1;


#ifdef WIN32
#include <psapi.h>
#ifdef WIN32
#include <psapi.h>
#include <lmcons.h> #include <lmcons.h>


static BOOL check_process_running(DWORD process_id) static BOOL check_process_running(DWORD process_id)
{
{
DWORD aProcesses[2048], cbNeeded, cProcesses; DWORD aProcesses[2048], cbNeeded, cProcesses;
unsigned int i; unsigned int i;


@@ -159,7 +159,7 @@ static BOOL check_process_running(DWORD process_id)
// Calculate how many process identifiers were returned. // Calculate how many process identifiers were returned.
cProcesses = cbNeeded / sizeof(DWORD); cProcesses = cbNeeded / sizeof(DWORD);


for (i = 0; i < cProcesses; i++) {
for (i = 0; i < cProcesses; i++) {
if (aProcesses[i] == process_id) { if (aProcesses[i] == process_id) {
// Process process_id is running... // Process process_id is running...
return TRUE; return TRUE;
@@ -313,18 +313,17 @@ jack_shm_validate_registry ()
*/ */
static void static void
jack_set_server_prefix (const char *server_name) 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), 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), 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 /* 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 /* See if server_name already registered. Since server names
* are per-user, we register the unique server prefix string. * 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, if (strncmp (jack_shm_header->server[i].name,
jack_shm_server_prefix, 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(); jack_shm_header->server[i].pid = GetPID();
strncpy (jack_shm_header->server[i].name, strncpy (jack_shm_header->server[i].name,
jack_shm_server_prefix, 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: unlock:
jack_shm_unlock_registry (); jack_shm_unlock_registry ();
@@ -1288,3 +1291,4 @@ jack_attach_shm (jack_shm_info_t* si)
} }


#endif /* !USE_POSIX_SHM */ #endif /* !USE_POSIX_SHM */


+ 1
- 1
windows/JackRouter/JackRouter.cpp View File

@@ -34,7 +34,7 @@
#include "profport.h" #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/08/2007 SL : Add JackRouter.ini parameter file.
09/20/2007 SL : Better error report in DllRegisterServer (for Vista). 09/20/2007 SL : Better error report in DllRegisterServer (for Vista).
09/27/2007 SL : Add AUDO_CONNECT property in JackRouter.ini file. 09/27/2007 SL : Add AUDO_CONNECT property in JackRouter.ini file.


Loading…
Cancel
Save