diff --git a/common/JackRequest.h b/common/JackRequest.h index 7e0fc0e8..44019ba1 100644 --- a/common/JackRequest.h +++ b/common/JackRequest.h @@ -723,14 +723,14 @@ struct JackGetInternalClientNameRequest : public JackRequest \brief GetInternalClient result. */ -struct JackGetInternalClientResult : public JackResult +struct JackGetInternalClientNameResult : public JackResult { char fName[JACK_CLIENT_NAME_SIZE + 1]; - JackGetInternalClientResult():JackResult() + JackGetInternalClientNameResult():JackResult() {} - JackGetInternalClientResult(int32_t result, const char* name) + JackGetInternalClientNameResult(int32_t result, const char* name) : JackResult(result) { snprintf(fName, sizeof(fName), "%s", name); diff --git a/common/JackSocketClientChannel.cpp b/common/JackSocketClientChannel.cpp index 44acf5fb..241e388b 100644 --- a/common/JackSocketClientChannel.cpp +++ b/common/JackSocketClientChannel.cpp @@ -253,7 +253,7 @@ void JackSocketClientChannel::SetTimebaseCallback(int refnum, int conditional, i void JackSocketClientChannel::GetInternalClientName(int refnum, int int_ref, char* name_res, int* result) { JackGetInternalClientNameRequest req(refnum, int_ref); - JackGetInternalClientResult res; + JackGetInternalClientNameResult res; ServerSyncCall(&req, &res, result); strcpy(name_res, res.fName); } diff --git a/common/JackSocketServerChannel.cpp b/common/JackSocketServerChannel.cpp index 3cc5723f..9f3b30c8 100644 --- a/common/JackSocketServerChannel.cpp +++ b/common/JackSocketServerChannel.cpp @@ -301,6 +301,46 @@ int JackSocketServerChannel::HandleRequest(int fd) res.Write(socket); break; } + + case JackRequest::kGetInternalClientName: { + JackLog("JackRequest::kGetInternalClientName\n"); + JackGetInternalClientNameRequest req; + JackGetInternalClientNameResult res; + if (req.Read(socket) == 0) + res.fResult = fServer->GetEngine()->GetInternalClientName(req.fIntRefNum, res.fName); + res.Write(socket); + break; + } + + case JackRequest::kInternalClientHandle: { + JackLog("JackRequest::kInternalClientHandle\n"); + JackInternalClientHandleRequest req; + JackInternalClientHandleResult res; + if (req.Read(socket) == 0) + res.fResult = fServer->GetEngine()->InternalClientHandle(req.fName, &res.fStatus, &res.fIntRefNum); + res.Write(socket); + break; + } + + case JackRequest::kInternalClientLoad: { + JackLog("JackRequest::kInternalClientLoad\n"); + JackInternalClientLoadRequest req; + JackInternalClientLoadResult res; + if (req.Read(socket) == 0) + res.fResult = fServer->InternalClientLoad(req.fName, req.fDllName, req.fLoadInitName, req.fOptions, &res.fIntRefNum, &res.fStatus); + res.Write(socket); + break; + } + + case JackRequest::kInternalClientUnload: { + JackLog("JackRequest::kInternalClientUnload\n"); + JackInternalClientUnloadRequest req; + JackInternalClientUnloadResult res; + if (req.Read(socket) == 0) + res.fResult = fServer->GetEngine()->InternalClientUnload(req.fIntRefNum, &res.fStatus); + res.Write(socket); + break; + } case JackRequest::kNotification: { JackLog("JackRequest::Notification\n");