21 #include "JackExternalClient.h"
22 #include "JackClientControl.h"
23 #include "JackGlobals.h"
24 #include "JackChannel.h"
25 #include "JackError.h"
33 JackExternalClient::~JackExternalClient()
36 int JackExternalClient::ClientNotify(
int refnum,
const char* name,
int notify,
int sync,
const char* message,
int value1,
int value2)
39 jack_log(
"JackExternalClient::ClientNotify ref = %ld client = %s name = %s notify = %ld", refnum, fClientControl->fName, name, notify);
40 fChannel.ClientNotify(refnum, name, notify, sync, message, value1, value2, &result);
44 int JackExternalClient::Open(
const char* name,
int pid,
int refnum,
int uuid,
int* shared_client)
48 if (fChannel.Open(name) < 0) {
49 jack_error(
"Cannot connect to client name = %s\n", name);
54 JackShmMemAble* shared_mem =
static_cast<JackShmMemAble*
>(JackShmMem::operator
new(
sizeof(JackClientControl)));
56 fClientControl =
new(shared_mem) JackClientControl(name, pid, refnum, uuid);
58 if (!fClientControl) {
59 jack_error(
"Cannot allocate client shared memory segment");
63 *shared_client = shared_mem->GetShmIndex();
64 jack_log(
"JackExternalClient::Open name = %s index = %ld base = %x", name, shared_mem->GetShmIndex(), shared_mem->GetShmAddress());
67 }
catch (std::exception e) {
72 int JackExternalClient::Close()
74 jack_log(
"JackExternalClient::Close");
77 fClientControl->~JackClientControl();
78 JackShmMem::operator
delete(fClientControl);
83 JackClientControl* JackExternalClient::GetClientControl()
const
85 return fClientControl;
SERVER_EXPORT void jack_error(const char *fmt,...)
SERVER_EXPORT void jack_log(const char *fmt,...)