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 | 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. | * 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). | * Internal loadable client implementation (in progress). | ||||
2007-10-08 Stephane Letz <letz@grame.fr> | 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> | 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> | 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> | 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> | 2007-10-03 Stephane Letz <letz@grame.fr> | ||||
* Rename server_name from "default" to "jackdmp_default" to avoid conflict with regular jackd server. | * 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); | JackSetTimebaseCallbackRequest req(refnum, conditional); | ||||
JackResult res; | JackResult res; | ||||
ServerSyncCall(&req, &res, result); | 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() | bool JackWinNamedPipeClientChannel::Init() | ||||
{ | { | ||||
@@ -78,8 +78,13 @@ class JackWinNamedPipeClientChannel : public JackClientChannelInterface, public | |||||
void SetFreewheel(int onoff, int* result); | void SetFreewheel(int onoff, int* result); | ||||
void ReleaseTimebase(int refnum, 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 | // JackRunnableInterface interface | ||||
bool Init(); | bool Init(); | ||||
bool Execute(); | bool Execute(); | ||||
@@ -257,6 +257,46 @@ int JackClientPipeThread::HandleRequest() | |||||
res.fResult = fServer->GetEngine()->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | res.fResult = fServer->GetEngine()->SetTimebaseCallback(req.fRefNum, req.fConditionnal); | ||||
res.Write(fPipe); | res.Write(fPipe); | ||||
break; | 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: { | case JackRequest::kNotification: { | ||||