Browse Source

Internal loadable client implementation, winpipe version added.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1610 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.68
sletz 17 years ago
parent
commit
084dc07349
4 changed files with 105 additions and 22 deletions
  1. +23
    -19
      ChangeLog
  2. +35
    -1
      windows/JackWinNamedPipeClientChannel.cpp
  3. +7
    -2
      windows/JackWinNamedPipeClientChannel.h
  4. +40
    -0
      windows/JackWinNamedPipeServerChannel.cpp

+ 23
- 19
ChangeLog View File

@@ -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.


+ 35
- 1
windows/JackWinNamedPipeClientChannel.cpp View File

@@ -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()
{


+ 7
- 2
windows/JackWinNamedPipeClientChannel.h View File

@@ -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();


+ 40
- 0
windows/JackWinNamedPipeServerChannel.cpp View File

@@ -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: {


Loading…
Cancel
Save