git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1610 0c269be4-1314-0410-8aa9-9f06e86f4224tags/0.68
@@ -11,34 +11,38 @@ Tom Szilagyi | |||
--------------------------- | |||
Jackdmp changes log | |||
--------------------------- | |||
2007-10-12 Stephane Letz <letz@grame.fr> | |||
* Internal loadable client implementation, socket version added. | |||
--------------------------- | |||
2007-10-16 Stephane Letz <letz@grame.fr> | |||
* Internal loadable client implementation, winpipe version added. | |||
2007-10-12 Stephane Letz <letz@grame.fr> | |||
* Internal loadable client implementation, socket version added. | |||
* Fix JackEngine::Close() method. | |||
2007-10-11 Stephane Letz <letz@grame.fr> | |||
2007-10-11 Stephane Letz <letz@grame.fr> | |||
* Internal loadable client implementation (in progress). | |||
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. | |||
* Paul Davis patch for -r (--replace-registry) feature. | |||
* Use .jackdrc file (instead of .jackdmprc). Install script now creates a link "jackd ==> jackdmp" so that automatic launch can work correctly. | |||
* Paul Davis patch for -r (--replace-registry) feature. | |||
2007-10-07 Stephane Letz <letz@grame.fr> | |||
* Add missing timestamps.c and timestamps.h files. Correctly export public headers in OSX frameworks. Suppress JackEngine::ClientInternalCloseIm method. | |||
* Add missing timestamps.c and timestamps.h files. Correctly export public headers in OSX frameworks. Suppress JackEngine::ClientInternalCloseIm method. | |||
2007-10-04 Stephane Letz <letz@grame.fr> | |||
* Correct "jack_register_server" in shm.c. | |||
* Correct "jack_register_server" in shm.c. | |||
2007-10-04 Stephane Letz <letz@grame.fr> | |||
* Fix a resource leak issue in JackCoreAudioDriver::Close(). Better implement "jack_client_open" when linking a client with the server library. | |||
* Fix a resource leak issue in JackCoreAudioDriver::Close(). Better implement "jack_client_open" when linking a client with the server library. | |||
2007-10-03 Stephane Letz <letz@grame.fr> | |||
* Rename server_name from "default" to "jackdmp_default" to avoid conflict with regular jackd server. | |||
@@ -251,7 +251,41 @@ void JackWinNamedPipeClientChannel::SetTimebaseCallback(int refnum, int conditio | |||
JackSetTimebaseCallbackRequest req(refnum, conditional); | |||
JackResult res; | |||
ServerSyncCall(&req, &res, result); | |||
} | |||
} | |||
void JackWinNamedPipeClientChannel::GetInternalClientName(int refnum, int int_ref, char* name_res, int* result) | |||
{ | |||
JackGetInternalClientNameRequest req(refnum, int_ref); | |||
JackGetInternalClientNameResult res; | |||
ServerSyncCall(&req, &res, result); | |||
strcpy(name_res, res.fName); | |||
} | |||
void JackWinNamedPipeClientChannel::InternalClientHandle(int refnum, const char* client_name, int* status, int* int_ref, int* result) | |||
{ | |||
JackInternalClientHandleRequest req(refnum, client_name); | |||
JackInternalClientHandleResult res; | |||
ServerSyncCall(&req, &res, result); | |||
*int_ref = res.fIntRefNum; | |||
*status = res.fStatus; | |||
} | |||
void JackWinNamedPipeClientChannel::InternalClientLoad(int refnum, const char* client_name, const char* so_name, const char* objet_data, int options, int* status, int* int_ref, int* result) | |||
{ | |||
JackInternalClientLoadRequest req(refnum, client_name, so_name, objet_data, options); | |||
JackInternalClientLoadResult res; | |||
ServerSyncCall(&req, &res, result); | |||
*int_ref = res.fIntRefNum; | |||
*status = res.fStatus; | |||
} | |||
void JackWinNamedPipeClientChannel::InternalClientUnload(int refnum, int int_ref, int* status, int* result) | |||
{ | |||
JackInternalClientUnloadRequest req(refnum, int_ref); | |||
JackInternalClientUnloadResult res; | |||
ServerSyncCall(&req, &res, result); | |||
*status = res.fStatus; | |||
} | |||
bool JackWinNamedPipeClientChannel::Init() | |||
{ | |||
@@ -78,8 +78,13 @@ class JackWinNamedPipeClientChannel : public JackClientChannelInterface, public | |||
void SetFreewheel(int onoff, 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); | |||
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); | |||
// JackRunnableInterface interface | |||
bool Init(); | |||
bool Execute(); | |||
@@ -257,6 +257,46 @@ int JackClientPipeThread::HandleRequest() | |||
res.fResult = fServer->GetEngine()->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | |||
res.Write(fPipe); | |||
break; | |||
} | |||
case JackRequest::kGetInternalClientName: { | |||
JackLog("JackRequest::kGetInternalClientName\n"); | |||
JackGetInternalClientNameRequest req; | |||
JackGetInternalClientNameResult res; | |||
if (req.Read(fPipe) == 0) | |||
res.fResult = fServer->GetEngine()->GetInternalClientName(req.fIntRefNum, res.fName); | |||
res.Write(fPipe); | |||
break; | |||
} | |||
case JackRequest::kInternalClientHandle: { | |||
JackLog("JackRequest::kInternalClientHandle\n"); | |||
JackInternalClientHandleRequest req; | |||
JackInternalClientHandleResult res; | |||
if (req.Read(fPipe) == 0) | |||
res.fResult = fServer->GetEngine()->InternalClientHandle(req.fName, &res.fStatus, &res.fIntRefNum); | |||
res.Write(fPipe); | |||
break; | |||
} | |||
case JackRequest::kInternalClientLoad: { | |||
JackLog("JackRequest::kInternalClientLoad\n"); | |||
JackInternalClientLoadRequest req; | |||
JackInternalClientLoadResult res; | |||
if (req.Read(fPipe) == 0) | |||
res.fResult = fServer->InternalClientLoad(req.fName, req.fDllName, req.fLoadInitName, req.fOptions, &res.fIntRefNum, &res.fStatus); | |||
res.Write(fPipe); | |||
break; | |||
} | |||
case JackRequest::kInternalClientUnload: { | |||
JackLog("JackRequest::kInternalClientUnload\n"); | |||
JackInternalClientUnloadRequest req; | |||
JackInternalClientUnloadResult res; | |||
if (req.Read(fPipe) == 0) | |||
res.fResult = fServer->GetEngine()->InternalClientUnload(req.fIntRefNum, &res.fStatus); | |||
res.Write(fPipe); | |||
break; | |||
} | |||
case JackRequest::kNotification: { | |||