Browse Source

New server/client data transfer model (2)

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1330 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.61
sletz 18 years ago
parent
commit
00046afb6e
9 changed files with 335 additions and 132 deletions
  1. +1
    -0
      common/JackLibClient.cpp
  2. +1
    -1
      common/JackLibGlobals.h
  3. +218
    -96
      common/JackRequest.h
  4. +1
    -0
      common/JackShmMem.cpp
  5. +64
    -2
      common/JackShmMem.h
  6. +45
    -28
      common/JackSocketClientChannel.cpp
  7. +2
    -2
      common/JackSocketClientChannel.h
  8. +2
    -2
      common/JackSocketServerChannel.cpp
  9. +1
    -1
      common/JackSocketServerNotifyChannel.cpp

+ 1
- 0
common/JackLibClient.cpp View File

@@ -114,6 +114,7 @@ int JackLibClient::Open(const char* name)
} }


JackLog("JackLibClient::Open name = %s refnum = %ld\n", name, fClientControl->fRefNum); JackLog("JackLibClient::Open name = %s refnum = %ld\n", name, fClientControl->fRefNum);
return 0; return 0;


error: error:


+ 1
- 1
common/JackLibGlobals.h View File

@@ -76,7 +76,7 @@ struct JackLibGlobals
JackGlobals::InitClient(); JackGlobals::InitClient();
InitTime(); InitTime();
fGlobals = new JackLibGlobals(); fGlobals = new JackLibGlobals();
}
}
} }


static void Destroy() static void Destroy()


+ 218
- 96
common/JackRequest.h View File

@@ -72,21 +72,25 @@ public:
JackRequest(RequestType type): fType(type) JackRequest(RequestType type): fType(type)
{} {}


~JackRequest()
virtual ~JackRequest()
{} {}


int Read(JackChannelTransaction* trans)
virtual int Read(JackChannelTransaction* trans)
{ {
return trans->Read(this, sizeof(JackRequest));
//return trans->Read(this, sizeof(JackRequest));
return trans->Read(&fType, sizeof(RequestType));
} }


int Write(JackChannelTransaction* trans)
virtual int Write(JackChannelTransaction* trans)
{ {
return -1;
//return -1;
return trans->Write(&fType, sizeof(RequestType));
} }


}; };


#define CheckRes(res) {if (res < 0) return res;}

/*! /*!
\brief Result from the server. \brief Result from the server.
*/ */
@@ -105,12 +109,14 @@ struct JackResult


virtual int Read(JackChannelTransaction* trans) virtual int Read(JackChannelTransaction* trans)
{ {
return trans->Read(this, sizeof(JackResult));
//return trans->Read(this, sizeof(JackResult));
return trans->Read(&fResult, sizeof(int));
} }


virtual int Write(JackChannelTransaction* trans) virtual int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackResult));
//return trans->Write(this, sizeof(JackResult));
return trans->Write(&fResult, sizeof(int));
} }
}; };


@@ -118,27 +124,29 @@ struct JackResult
\brief NewClient request. \brief NewClient request.
*/ */


struct JackClientNewRequest
struct JackClientNewRequest : public JackRequest
{ {


JackRequest fHeader;
char fName[JACK_CLIENT_NAME_SIZE + 1]; char fName[JACK_CLIENT_NAME_SIZE + 1];


JackClientNewRequest() JackClientNewRequest()
{} {}
JackClientNewRequest(const char* name): fHeader(JackRequest::kClientNew)
JackClientNewRequest(const char* name): JackRequest(JackRequest::kClientNew)
{ {
snprintf(fName, sizeof(fName), "%s", name); snprintf(fName, sizeof(fName), "%s", name);
} }


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fName, sizeof(JackClientNewRequest) - sizeof(JackRequest));
//return trans->Read(&fName, sizeof(JackClientNewRequest) - sizeof(JackRequest));
return trans->Read(&fName, JACK_CLIENT_NAME_SIZE + 1);
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackClientNewRequest));
//return trans->Write(this, sizeof(JackClientNewRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fName, JACK_CLIENT_NAME_SIZE + 1);
} }
}; };


@@ -146,10 +154,10 @@ struct JackClientNewRequest
\brief NewClient result. \brief NewClient result.
*/ */


struct JackClientNewResult
struct JackClientNewResult : public JackResult
{ {


JackResult fHeader;
//JackResult fHeader;
int fSharedEngine; int fSharedEngine;
int fSharedClient; int fSharedClient;
int fSharedGraph; int fSharedGraph;
@@ -159,18 +167,28 @@ struct JackClientNewResult
:fSharedEngine(-1), fSharedClient(-1), fSharedGraph(-1), fProtocolVersion(0) :fSharedEngine(-1), fSharedClient(-1), fSharedGraph(-1), fProtocolVersion(0)
{} {}
JackClientNewResult(int32_t status, int index1, int index2, int index3) JackClientNewResult(int32_t status, int index1, int index2, int index3)
: fHeader(status), fSharedEngine(index1), fSharedClient(index2), fSharedGraph(index3), fProtocolVersion(0)
: JackResult(status), fSharedEngine(index1), fSharedClient(index2), fSharedGraph(index3), fProtocolVersion(0)
{} {}


//virtual int Read(JackChannelTransaction* trans)
int Read(JackChannelTransaction* trans)
int Read(JackChannelTransaction* trans)
{ {
return trans->Read(this, sizeof(JackClientNewResult));
//return trans->Read(this, sizeof(JackClientNewResult));
CheckRes(trans->Read(&fSharedEngine, sizeof(int)));
CheckRes(trans->Read(&fSharedClient, sizeof(int)));
CheckRes(trans->Read(&fSharedGraph, sizeof(int)));
CheckRes(trans->Read(&fProtocolVersion, sizeof(uint32_t)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackClientNewResult));
//return trans->Write(this, sizeof(JackClientNewResult));
CheckRes(JackResult::Write(trans));
CheckRes(trans->Write(&fSharedEngine, sizeof(int)));
CheckRes(trans->Write(&fSharedClient, sizeof(int)));
CheckRes(trans->Write(&fSharedGraph, sizeof(int)));
CheckRes(trans->Write(&fProtocolVersion, sizeof(uint32_t)));
return 0;
} }
}; };


@@ -178,25 +196,28 @@ struct JackClientNewResult
\brief CloseClient request. \brief CloseClient request.
*/ */


struct JackClientCloseRequest
struct JackClientCloseRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;


JackClientCloseRequest() JackClientCloseRequest()
{} {}
JackClientCloseRequest(int refnum): fHeader(JackRequest::kClientClose), fRefNum(refnum)
JackClientCloseRequest(int refnum): JackRequest(JackRequest::kClientClose), fRefNum(refnum)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackClientCloseRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackClientCloseRequest) - sizeof(JackRequest));
return trans->Read(&fRefNum, sizeof(int));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackClientCloseRequest));
//return trans->Write(this, sizeof(JackClientCloseRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fRefNum, sizeof(int));
} }
}; };


@@ -204,25 +225,28 @@ struct JackClientCloseRequest
\brief Activate request. \brief Activate request.
*/ */


struct JackActivateRequest
struct JackActivateRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;


JackActivateRequest() JackActivateRequest()
{} {}
JackActivateRequest(int refnum): fHeader(JackRequest::kActivateClient), fRefNum(refnum)
JackActivateRequest(int refnum): JackRequest(JackRequest::kActivateClient), fRefNum(refnum)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackActivateRequest) - sizeof(JackRequest));
// return trans->Read(&fRefNum, sizeof(JackActivateRequest) - sizeof(JackRequest));
return trans->Read(&fRefNum, sizeof(int));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackActivateRequest));
//return trans->Write(this, sizeof(JackActivateRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fRefNum, sizeof(int));
} }


}; };
@@ -231,25 +255,28 @@ struct JackActivateRequest
\brief Deactivate request. \brief Deactivate request.
*/ */


struct JackDeactivateRequest
struct JackDeactivateRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;


JackDeactivateRequest() JackDeactivateRequest()
{} {}
JackDeactivateRequest(int refnum): fHeader(JackRequest::kDeactivateClient), fRefNum(refnum)
JackDeactivateRequest(int refnum): JackRequest(JackRequest::kDeactivateClient), fRefNum(refnum)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackDeactivateRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackDeactivateRequest) - sizeof(JackRequest));
return trans->Read(&fRefNum, sizeof(int));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackDeactivateRequest));
//return trans->Write(this, sizeof(JackDeactivateRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fRefNum, sizeof(int));
} }


}; };
@@ -258,10 +285,10 @@ struct JackDeactivateRequest
\brief PortRegister request. \brief PortRegister request.
*/ */


struct JackPortRegisterRequest
struct JackPortRegisterRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
char fName[JACK_PORT_NAME_SIZE + 1]; char fName[JACK_PORT_NAME_SIZE + 1];
char fPortType[JACK_PORT_TYPE_SIZE + 1]; char fPortType[JACK_PORT_TYPE_SIZE + 1];
@@ -271,7 +298,7 @@ struct JackPortRegisterRequest
JackPortRegisterRequest() JackPortRegisterRequest()
{} {}
JackPortRegisterRequest(int refnum, const char* name, const char* port_type, unsigned int flags, unsigned int buffer_size) JackPortRegisterRequest(int refnum, const char* name, const char* port_type, unsigned int flags, unsigned int buffer_size)
: fHeader(JackRequest::kRegisterPort), fRefNum(refnum), fFlags(flags), fBufferSize(buffer_size)
: JackRequest(JackRequest::kRegisterPort), fRefNum(refnum), fFlags(flags), fBufferSize(buffer_size)
{ {
strcpy(fName, name); strcpy(fName, name);
strcpy(fPortType, port_type); strcpy(fPortType, port_type);
@@ -279,12 +306,25 @@ struct JackPortRegisterRequest


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackPortRegisterRequest) - sizeof(JackRequest)) ;
//return trans->Read(&fRefNum, sizeof(JackPortRegisterRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fName, sizeof(JACK_PORT_NAME_SIZE + 1)));
CheckRes(trans->Read(&fPortType, sizeof(JACK_PORT_TYPE_SIZE + 1)));
CheckRes(trans->Read(&fFlags, sizeof(unsigned int)));
CheckRes(trans->Read(&fBufferSize, sizeof(unsigned int)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortRegisterRequest));
//return trans->Write(this, sizeof(JackPortRegisterRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fName, sizeof(JACK_PORT_NAME_SIZE + 1)));
CheckRes(trans->Write(&fPortType, sizeof(JACK_PORT_TYPE_SIZE + 1)));
CheckRes(trans->Write(&fFlags, sizeof(unsigned int)));
CheckRes(trans->Write(&fBufferSize, sizeof(unsigned int)));
return 0;
} }
}; };


@@ -292,10 +332,10 @@ struct JackPortRegisterRequest
\brief PortRegister result. \brief PortRegister result.
*/ */


struct JackPortRegisterResult
struct JackPortRegisterResult : public JackResult
{ {


JackResult fHeader;
//JackResult fHeader;
jack_port_id_t fPortIndex; jack_port_id_t fPortIndex;


JackPortRegisterResult(): fPortIndex(NO_PORT) JackPortRegisterResult(): fPortIndex(NO_PORT)
@@ -303,12 +343,15 @@ struct JackPortRegisterResult


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(this, sizeof(JackPortRegisterResult));
//return trans->Read(this, sizeof(JackPortRegisterResult));
return trans->Read(&fPortIndex, sizeof(jack_port_id_t));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortRegisterResult));
//return trans->Write(this, sizeof(JackPortRegisterResult));
CheckRes(JackResult::Write(trans));
return trans->Read(&fPortIndex, sizeof(jack_port_id_t));
} }
}; };


@@ -316,26 +359,33 @@ struct JackPortRegisterResult
\brief PortUnregister request. \brief PortUnregister request.
*/ */


struct JackPortUnRegisterRequest
struct JackPortUnRegisterRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
int fPortIndex; int fPortIndex;


JackPortUnRegisterRequest() JackPortUnRegisterRequest()
{} {}
JackPortUnRegisterRequest(int refnum, int index): fHeader(JackRequest::kUnRegisterPort), fRefNum(refnum), fPortIndex(index)
JackPortUnRegisterRequest(int refnum, int index): JackRequest(JackRequest::kUnRegisterPort), fRefNum(refnum), fPortIndex(index)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackPortUnRegisterRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackPortUnRegisterRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fPortIndex, sizeof(int)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortUnRegisterRequest));
//return trans->Write(this, sizeof(JackPortUnRegisterRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fPortIndex, sizeof(int)));
return 0;
} }
}; };


@@ -343,17 +393,17 @@ struct JackPortUnRegisterRequest
\brief PortConnectName request. \brief PortConnectName request.
*/ */


struct JackPortConnectNameRequest
struct JackPortConnectNameRequest : public JackRequest
{ {
JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
char fSrc[JACK_PORT_NAME_SIZE + 1]; char fSrc[JACK_PORT_NAME_SIZE + 1];
char fDst[JACK_PORT_NAME_SIZE + 1]; char fDst[JACK_PORT_NAME_SIZE + 1];


JackPortConnectNameRequest() JackPortConnectNameRequest()
{} {}
JackPortConnectNameRequest(int refnum, const char* src_name, const char* dst_name): fHeader(JackRequest::kConnectNamePorts), fRefNum(refnum)
JackPortConnectNameRequest(int refnum, const char* src_name, const char* dst_name): JackRequest(JackRequest::kConnectNamePorts), fRefNum(refnum)
{ {
strcpy(fSrc, src_name); strcpy(fSrc, src_name);
strcpy(fDst, dst_name); strcpy(fDst, dst_name);
@@ -361,12 +411,22 @@ struct JackPortConnectNameRequest


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackPortConnectNameRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackPortConnectNameRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fSrc, sizeof(JACK_PORT_NAME_SIZE + 1)));
CheckRes(trans->Read(&fDst, sizeof(JACK_PORT_NAME_SIZE + 1)));
return 0;

} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortConnectNameRequest));
//return trans->Write(this, sizeof(JackPortConnectNameRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fSrc, sizeof(JACK_PORT_NAME_SIZE + 1)));
CheckRes(trans->Write(&fDst, sizeof(JACK_PORT_NAME_SIZE + 1)));
return 0;
} }
}; };


@@ -374,17 +434,17 @@ struct JackPortConnectNameRequest
\brief PortDisconnectName request. \brief PortDisconnectName request.
*/ */


struct JackPortDisconnectNameRequest
struct JackPortDisconnectNameRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
char fSrc[JACK_PORT_NAME_SIZE + 1]; char fSrc[JACK_PORT_NAME_SIZE + 1];
char fDst[JACK_PORT_NAME_SIZE + 1]; char fDst[JACK_PORT_NAME_SIZE + 1];


JackPortDisconnectNameRequest() JackPortDisconnectNameRequest()
{} {}
JackPortDisconnectNameRequest(int refnum, const char* src_name, const char* dst_name): fHeader(JackRequest::kDisconnectNamePorts), fRefNum(refnum)
JackPortDisconnectNameRequest(int refnum, const char* src_name, const char* dst_name): JackRequest(JackRequest::kDisconnectNamePorts), fRefNum(refnum)
{ {
strcpy(fSrc, src_name); strcpy(fSrc, src_name);
strcpy(fDst, dst_name); strcpy(fDst, dst_name);
@@ -392,12 +452,21 @@ struct JackPortDisconnectNameRequest


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackPortDisconnectNameRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackPortDisconnectNameRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fSrc, sizeof(JACK_PORT_NAME_SIZE + 1)));
CheckRes(trans->Read(&fDst, sizeof(JACK_PORT_NAME_SIZE + 1)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortDisconnectNameRequest));
//return trans->Write(this, sizeof(JackPortDisconnectNameRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fSrc, sizeof(JACK_PORT_NAME_SIZE + 1)));
CheckRes(trans->Write(&fDst, sizeof(JACK_PORT_NAME_SIZE + 1)));
return 0;
} }
}; };


@@ -405,27 +474,36 @@ struct JackPortDisconnectNameRequest
\brief PortConnect request. \brief PortConnect request.
*/ */


struct JackPortConnectRequest
struct JackPortConnectRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
jack_port_id_t fSrc; jack_port_id_t fSrc;
jack_port_id_t fDst; jack_port_id_t fDst;


JackPortConnectRequest() JackPortConnectRequest()
{} {}
JackPortConnectRequest(int refnum, jack_port_id_t src, jack_port_id_t dst): fHeader(JackRequest::kConnectPorts), fRefNum(refnum), fSrc(src), fDst(dst)
JackPortConnectRequest(int refnum, jack_port_id_t src, jack_port_id_t dst): JackRequest(JackRequest::kConnectPorts), fRefNum(refnum), fSrc(src), fDst(dst)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackPortConnectRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackPortConnectRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fSrc, sizeof(jack_port_id_t)));
CheckRes(trans->Read(&fDst, sizeof(jack_port_id_t)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortConnectRequest));
//return trans->Write(this, sizeof(JackPortConnectRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fSrc, sizeof(jack_port_id_t)));
CheckRes(trans->Write(&fDst, sizeof(jack_port_id_t)));
return 0;
} }
}; };


@@ -434,27 +512,37 @@ struct JackPortConnectRequest
\brief PortDisconnect request. \brief PortDisconnect request.
*/ */


struct JackPortDisconnectRequest
struct JackPortDisconnectRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
jack_port_id_t fSrc; jack_port_id_t fSrc;
jack_port_id_t fDst; jack_port_id_t fDst;


JackPortDisconnectRequest() JackPortDisconnectRequest()
{} {}
JackPortDisconnectRequest(int refnum, jack_port_id_t src, jack_port_id_t dst): fHeader(JackRequest::kDisconnectPorts), fRefNum(refnum), fSrc(src), fDst(dst)
JackPortDisconnectRequest(int refnum, jack_port_id_t src, jack_port_id_t dst): JackRequest(JackRequest::kDisconnectPorts), fRefNum(refnum), fSrc(src), fDst(dst)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackPortDisconnectRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackPortConnectRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fSrc, sizeof(jack_port_id_t)));
CheckRes(trans->Read(&fDst, sizeof(jack_port_id_t)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackPortDisconnectRequest));
//return trans->Write(this, sizeof(JackPortConnectRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fSrc, sizeof(jack_port_id_t)));
CheckRes(trans->Write(&fDst, sizeof(jack_port_id_t)));
return 0;

} }
}; };


@@ -462,25 +550,28 @@ struct JackPortDisconnectRequest
\brief SetBufferSize request. \brief SetBufferSize request.
*/ */


struct JackSetBufferSizeRequest
struct JackSetBufferSizeRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
jack_nframes_t fBufferSize; jack_nframes_t fBufferSize;


JackSetBufferSizeRequest() JackSetBufferSizeRequest()
{} {}
JackSetBufferSizeRequest(jack_nframes_t buffer_size): fHeader(JackRequest::kSetBufferSize), fBufferSize(buffer_size)
JackSetBufferSizeRequest(jack_nframes_t buffer_size): JackRequest(JackRequest::kSetBufferSize), fBufferSize(buffer_size)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fBufferSize, sizeof(JackSetBufferSizeRequest) - sizeof(JackRequest));
//return trans->Read(&fBufferSize, sizeof(JackSetBufferSizeRequest) - sizeof(JackRequest));
return trans->Read(&fBufferSize, sizeof(jack_nframes_t));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackSetBufferSizeRequest));
//return trans->Write(this, sizeof(JackSetBufferSizeRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fBufferSize, sizeof(jack_nframes_t));
} }
}; };


@@ -488,25 +579,28 @@ struct JackSetBufferSizeRequest
\brief SetFreeWheel request. \brief SetFreeWheel request.
*/ */


struct JackSetFreeWheelRequest
struct JackSetFreeWheelRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fOnOff; int fOnOff;


JackSetFreeWheelRequest() JackSetFreeWheelRequest()
{} {}
JackSetFreeWheelRequest(int onoff): fHeader(JackRequest::kSetFreeWheel), fOnOff(onoff)
JackSetFreeWheelRequest(int onoff): JackRequest(JackRequest::kSetFreeWheel), fOnOff(onoff)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fOnOff, sizeof(JackSetFreeWheelRequest) - sizeof(JackRequest));
//return trans->Read(&fOnOff, sizeof(JackSetFreeWheelRequest) - sizeof(JackRequest));
return trans->Read(&fOnOff, sizeof(int));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackSetFreeWheelRequest));
//return trans->Write(this, sizeof(JackSetFreeWheelRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fOnOff, sizeof(int));
} }
}; };


@@ -514,53 +608,60 @@ struct JackSetFreeWheelRequest
\brief ReleaseTimebase request. \brief ReleaseTimebase request.
*/ */


struct JackReleaseTimebaseRequest
struct JackReleaseTimebaseRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;


JackReleaseTimebaseRequest() JackReleaseTimebaseRequest()
{} {}
JackReleaseTimebaseRequest(int refnum): fHeader(JackRequest::kReleaseTimebase), fRefNum(refnum)
JackReleaseTimebaseRequest(int refnum): JackRequest(JackRequest::kReleaseTimebase), fRefNum(refnum)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackReleaseTimebaseRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackReleaseTimebaseRequest) - sizeof(JackRequest));
return trans->Read(&fRefNum, sizeof(int));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackReleaseTimebaseRequest));
//return trans->Write(this, sizeof(JackReleaseTimebaseRequest));
CheckRes(JackRequest::Write(trans));
return trans->Write(&fRefNum, sizeof(int));
} }

}; };


/*! /*!
\brief SetTimebaseCallback request. \brief SetTimebaseCallback request.
*/ */


struct JackSetTimebaseCallbackRequest
struct JackSetTimebaseCallbackRequest : public JackRequest
{ {


JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
int fConditionnal; int fConditionnal;


JackSetTimebaseCallbackRequest() JackSetTimebaseCallbackRequest()
{} {}
JackSetTimebaseCallbackRequest(int refnum, int conditional): fHeader(JackRequest::kSetTimebaseCallback), fRefNum(refnum), fConditionnal(conditional)
JackSetTimebaseCallbackRequest(int refnum, int conditional): JackRequest(JackRequest::kSetTimebaseCallback), fRefNum(refnum), fConditionnal(conditional)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackSetTimebaseCallbackRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackSetTimebaseCallbackRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
return trans->Read(&fConditionnal, sizeof(int));
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackSetTimebaseCallbackRequest));
//return trans->Write(this, sizeof(JackSetTimebaseCallbackRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
return trans->Write(&fConditionnal, sizeof(int));
} }
}; };


@@ -568,10 +669,10 @@ struct JackSetTimebaseCallbackRequest
\brief ClientNotification request. \brief ClientNotification request.
*/ */


struct JackClientNotificationRequest
struct JackClientNotificationRequest : public JackRequest
{ {
JackRequest fHeader;
//JackRequest fHeader;
int fRefNum; int fRefNum;
int fNotify; int fNotify;
int fValue; int fValue;
@@ -579,17 +680,26 @@ struct JackClientNotificationRequest
JackClientNotificationRequest() JackClientNotificationRequest()
{} {}
JackClientNotificationRequest(int refnum, int notify, int value) JackClientNotificationRequest(int refnum, int notify, int value)
: fHeader(JackRequest::kNotification), fRefNum(refnum), fNotify(notify), fValue(value)
: JackRequest(JackRequest::kNotification), fRefNum(refnum), fNotify(notify), fValue(value)
{} {}


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(&fRefNum, sizeof(JackClientNotificationRequest) - sizeof(JackRequest));
//return trans->Read(&fRefNum, sizeof(JackClientNotificationRequest) - sizeof(JackRequest));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fNotify, sizeof(int)));
CheckRes(trans->Read(&fValue, sizeof(int)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackClientNotificationRequest));
//return trans->Write(this, sizeof(JackClientNotificationRequest));
CheckRes(JackRequest::Write(trans));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fNotify, sizeof(int)));
CheckRes(trans->Write(&fValue, sizeof(int)));
return 0;
} }


}; };
@@ -616,12 +726,24 @@ struct JackClientNotification


int Read(JackChannelTransaction* trans) int Read(JackChannelTransaction* trans)
{ {
return trans->Read(this, sizeof(JackClientNotification));
//return trans->Read(this, sizeof(JackClientNotification));
CheckRes(trans->Read(&fName, sizeof(JACK_CLIENT_NAME_SIZE + 1)));
CheckRes(trans->Read(&fRefNum, sizeof(int)));
CheckRes(trans->Read(&fNotify, sizeof(int)));
CheckRes(trans->Read(&fValue, sizeof(int)));
CheckRes(trans->Read(&fValue, sizeof(fSync)));
return 0;
} }


int Write(JackChannelTransaction* trans) int Write(JackChannelTransaction* trans)
{ {
return trans->Write(this, sizeof(JackClientNotification));
//return trans->Write(this, sizeof(JackClientNotification));
CheckRes(trans->Write(&fName, sizeof(JACK_CLIENT_NAME_SIZE + 1)));
CheckRes(trans->Write(&fRefNum, sizeof(int)));
CheckRes(trans->Write(&fNotify, sizeof(int)));
CheckRes(trans->Write(&fValue, sizeof(int)));
CheckRes(trans->Write(&fValue, sizeof(fSync)));
return 0;
} }


}; };


+ 1
- 0
common/JackShmMem.cpp View File

@@ -29,6 +29,7 @@ unsigned long JackShmMem::fSegmentNum = 0;
unsigned long JackShmMem::fSegmentCount = 0; unsigned long JackShmMem::fSegmentCount = 0;


jack_shm_info_t JackShmMem::gInfo; jack_shm_info_t JackShmMem::gInfo;
size_t JackLockMem::gSize = 0;


void* JackShmMem::operator new(size_t size) void* JackShmMem::operator new(size_t size)
{ {


+ 64
- 2
common/JackShmMem.h View File

@@ -22,13 +22,75 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#define __JackShmMem__ #define __JackShmMem__


#include "shm.h" #include "shm.h"
#include <new> // GCC 4.0
#include "JackError.h" #include "JackError.h"
#include <errno.h>


#include <new> // GCC 4.0
#include <errno.h>
#include <stdlib.h>

#ifdef WIN32
#include <windows.h>
#else
#include <sys/types.h>
#include <sys/mman.h>
#endif
namespace Jack namespace Jack
{ {


class JackLockMem
{
private:

size_t fSize;
static size_t gSize;
public:

void* operator new(size_t size)
{
gSize = size;
return malloc(size);
}
void operator delete(void* ptr, size_t size)
{
free(ptr);
}

JackLockMem():fSize(gSize)
{}

virtual ~JackLockMem()
{
UnlockMemory();
}
void LockMemory()
{
#ifdef __APPLE __
mlock(ptr, size);
#elseif linux_
mlock(ptr, size);
#elseif WIN32
VirtualLock(ptr, size);
#endif
}
void UnlockMemory()
{
#ifdef __APPLE __
munlock(ptr, size);
#elseif linux_
munlock(ptr, size);
#elseif WIN32
VirtualUnlock(ptr, size);
#endif
}

};


/*! /*!
\brief The base class for shared memory management. \brief The base class for shared memory management.


+ 45
- 28
common/JackSocketClientChannel.cpp View File

@@ -86,7 +86,6 @@ void JackSocketClientChannel::Stop()
fThread->Kill(); fThread->Kill();
} }


/*
void JackSocketClientChannel::ServerSyncCall(JackRequest* req, JackResult* res, int* result) void JackSocketClientChannel::ServerSyncCall(JackRequest* req, JackResult* res, int* result)
{ {
if (req->Write(&fRequestSocket) < 0) { if (req->Write(&fRequestSocket) < 0) {
@@ -113,14 +112,14 @@ void JackSocketClientChannel::ServerAsyncCall(JackRequest* req, JackResult* res,
*result = 0; *result = 0;
} }
} }
*/


void JackSocketClientChannel::ClientNew(const char* name, int* shared_engine, int* shared_client, int* shared_graph, int* result) void JackSocketClientChannel::ClientNew(const char* name, int* shared_engine, int* shared_client, int* shared_graph, int* result)
{ {
JackClientNewRequest req(name); JackClientNewRequest req(name);
JackClientNewResult res; JackClientNewResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -132,8 +131,9 @@ void JackSocketClientChannel::ClientNew(const char* name, int* shared_engine, in
*result = -1; *result = -1;
return ; return ;
} }
*/


*result = res.fHeader.fResult;
*result = res.fResult;
*shared_engine = res.fSharedEngine; *shared_engine = res.fSharedEngine;
*shared_client = res.fSharedClient; *shared_client = res.fSharedClient;
*shared_graph = res.fSharedGraph; *shared_graph = res.fSharedGraph;
@@ -143,20 +143,23 @@ void JackSocketClientChannel::ClientClose(int refnum, int* result)
{ {
JackClientCloseRequest req(refnum); JackClientCloseRequest req(refnum);
JackResult res; JackResult res;
//ServerAsyncCall(&req, &res, result);
ServerAsyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
} else { } else {
*result = 0; *result = 0;
} }
*/
} }


void JackSocketClientChannel::ClientActivate(int refnum, int* result) void JackSocketClientChannel::ClientActivate(int refnum, int* result)
{ {
JackActivateRequest req(refnum); JackActivateRequest req(refnum);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -168,6 +171,7 @@ void JackSocketClientChannel::ClientActivate(int refnum, int* result)
*result = -1; *result = -1;
return ; return ;
} }
*/


*result = res.fResult; *result = res.fResult;
} }
@@ -176,7 +180,8 @@ void JackSocketClientChannel::ClientDeactivate(int refnum, int* result)
{ {
JackDeactivateRequest req(refnum); JackDeactivateRequest req(refnum);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -188,7 +193,7 @@ void JackSocketClientChannel::ClientDeactivate(int refnum, int* result)
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -196,7 +201,8 @@ void JackSocketClientChannel::PortRegister(int refnum, const char* name, unsigne
{ {
JackPortRegisterRequest req(refnum, name, "audio", flags, buffer_size); JackPortRegisterRequest req(refnum, name, "audio", flags, buffer_size);
JackPortRegisterResult res; JackPortRegisterResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -208,8 +214,9 @@ void JackSocketClientChannel::PortRegister(int refnum, const char* name, unsigne
*result = -1; *result = -1;
return ; return ;
} }
*/


*result = res.fHeader.fResult;
*result = res.fResult;
*port_index = res.fPortIndex; *port_index = res.fPortIndex;
} }


@@ -217,7 +224,8 @@ void JackSocketClientChannel::PortUnRegister(int refnum, jack_port_id_t port_ind
{ {
JackPortUnRegisterRequest req(refnum, port_index); JackPortUnRegisterRequest req(refnum, port_index);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -229,7 +237,7 @@ void JackSocketClientChannel::PortUnRegister(int refnum, jack_port_id_t port_ind
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -237,7 +245,8 @@ void JackSocketClientChannel::PortConnect(int refnum, const char* src, const cha
{ {
JackPortConnectNameRequest req(refnum, src, dst); JackPortConnectNameRequest req(refnum, src, dst);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -249,7 +258,7 @@ void JackSocketClientChannel::PortConnect(int refnum, const char* src, const cha
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -257,7 +266,8 @@ void JackSocketClientChannel::PortDisconnect(int refnum, const char* src, const
{ {
JackPortDisconnectNameRequest req(refnum, src, dst); JackPortDisconnectNameRequest req(refnum, src, dst);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -269,7 +279,7 @@ void JackSocketClientChannel::PortDisconnect(int refnum, const char* src, const
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -277,7 +287,8 @@ void JackSocketClientChannel::PortConnect(int refnum, jack_port_id_t src, jack_p
{ {
JackPortConnectRequest req(refnum, src, dst); JackPortConnectRequest req(refnum, src, dst);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -289,7 +300,7 @@ void JackSocketClientChannel::PortConnect(int refnum, jack_port_id_t src, jack_p
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -297,7 +308,8 @@ void JackSocketClientChannel::PortDisconnect(int refnum, jack_port_id_t src, jac
{ {
JackPortDisconnectRequest req(refnum, src, dst); JackPortDisconnectRequest req(refnum, src, dst);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -309,7 +321,7 @@ void JackSocketClientChannel::PortDisconnect(int refnum, jack_port_id_t src, jac
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -317,7 +329,8 @@ void JackSocketClientChannel::SetBufferSize(jack_nframes_t buffer_size, int* res
{ {
JackSetBufferSizeRequest req(buffer_size); JackSetBufferSizeRequest req(buffer_size);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -329,7 +342,7 @@ void JackSocketClientChannel::SetBufferSize(jack_nframes_t buffer_size, int* res
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -337,7 +350,8 @@ void JackSocketClientChannel::SetFreewheel(int onoff, int* result)
{ {
JackSetFreeWheelRequest req(onoff); JackSetFreeWheelRequest req(onoff);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -349,7 +363,7 @@ void JackSocketClientChannel::SetFreewheel(int onoff, int* result)
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -357,7 +371,8 @@ void JackSocketClientChannel::ReleaseTimebase(int refnum, int* result)
{ {
JackReleaseTimebaseRequest req(refnum); JackReleaseTimebaseRequest req(refnum);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -369,7 +384,7 @@ void JackSocketClientChannel::ReleaseTimebase(int refnum, int* result)
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }


@@ -377,7 +392,9 @@ void JackSocketClientChannel::SetTimebaseCallback(int refnum, int conditional, i
{ {
JackSetTimebaseCallbackRequest req(refnum, conditional); JackSetTimebaseCallbackRequest req(refnum, conditional);
JackResult res; JackResult res;
//ServerSyncCall(&req, &res, result);
ServerSyncCall(&req, &res, result);
/*
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType); jack_error("Could not write request type = %ld", req.fHeader.fType);
*result = -1; *result = -1;
@@ -389,7 +406,7 @@ void JackSocketClientChannel::SetTimebaseCallback(int refnum, int conditional, i
*result = -1; *result = -1;
return ; return ;
} }
*/
*result = res.fResult; *result = res.fResult;
} }




+ 2
- 2
common/JackSocketClientChannel.h View File

@@ -43,8 +43,8 @@ class JackSocketClientChannel : public JackClientChannelInterface, public JackRu
JackThread* fThread; // Thread to execute the event loop JackThread* fThread; // Thread to execute the event loop
JackClient* fClient; JackClient* fClient;


//void ServerSyncCall(JackRequest* req, JackResult* res, int* result);
//void ServerAsyncCall(JackRequest* req, JackResult* res, int* result);
void ServerSyncCall(JackRequest* req, JackResult* res, int* result);
void ServerAsyncCall(JackRequest* req, JackResult* res, int* result);


public: public:




+ 2
- 2
common/JackSocketServerChannel.cpp View File

@@ -155,7 +155,7 @@ int JackSocketServerChannel::HandleRequest(int fd)
JackClientNewRequest req; JackClientNewRequest req;
JackClientNewResult res; JackClientNewResult res;
if (req.Read(socket) == 0) if (req.Read(socket) == 0)
AddClient(fd, req.fName, &res.fSharedEngine, &res.fSharedClient, &res.fSharedGraph, &res.fHeader.fResult);
AddClient(fd, req.fName, &res.fSharedEngine, &res.fSharedClient, &res.fSharedGraph, &res.fResult);
res.Write(socket); res.Write(socket);
break; break;
} }
@@ -196,7 +196,7 @@ int JackSocketServerChannel::HandleRequest(int fd)
JackPortRegisterRequest req; JackPortRegisterRequest req;
JackPortRegisterResult res; JackPortRegisterResult res;
if (req.Read(socket) == 0) if (req.Read(socket) == 0)
res.fHeader.fResult = fServer->GetEngine()->PortRegister(req.fRefNum, req.fName, req.fFlags, req.fBufferSize, &res.fPortIndex);
res.fResult = fServer->GetEngine()->PortRegister(req.fRefNum, req.fName, req.fFlags, req.fBufferSize, &res.fPortIndex);
res.Write(socket); res.Write(socket);
break; break;
} }


+ 1
- 1
common/JackSocketServerNotifyChannel.cpp View File

@@ -50,7 +50,7 @@ void JackSocketServerNotifyChannel::ClientNotify(int refnum, int notify, int val
{ {
JackClientNotificationRequest req(refnum, notify, value); JackClientNotificationRequest req(refnum, notify, value);
if (req.Write(&fRequestSocket) < 0) { if (req.Write(&fRequestSocket) < 0) {
jack_error("Could not write request type = %ld", req.fHeader.fType);
jack_error("Could not write request type = %ld", req.fType);
} }
} }




Loading…
Cancel
Save