21 #ifndef __JackRequest__    22 #define __JackRequest__    24 #include "JackConstants.h"    25 #include "JackError.h"    26 #include "JackPlatformPlug.h"    27 #include "JackChannel.h"    38 #define CheckRes(exp) { if ((exp) < 0) { jack_error("CheckRes error"); return -1; } }    39 #define CheckSize() { CheckRes(trans->Read(&fSize, sizeof(int))); if (fSize != Size()) { jack_error("CheckSize error size = %d Size() = %d", fSize, Size()); return -1; } }    45 enum JackSessionReply {
    47     kImmediateSessionReply = 1,
    48     kPendingSessionReply = 2
    64         kSetTimeBaseClient = 5,
    66         kDeactivateClient = 7,
    68         kSetClientCapabilities = 9,
    69         kGetPortConnections = 10,
    70         kGetPortNConnections = 11,
    71         kReleaseTimebase = 12,
    72         kSetTimebaseCallback = 13,
    78         kConnectNamePorts = 25,
    79         kDisconnectNamePorts = 26,
    80         kGetInternalClientName = 27,
    81         kInternalClientHandle = 28,
    82         kInternalClientLoad = 29,
    83         kInternalClientUnload = 30,
    88         kGetClientByUUID = 35,
    89         kReserveClientName = 36,
    90         kGetUUIDByClient = 37,
    91         kClientHasSessionCallback = 38,
    92         kComputeTotalLatencies = 39
   101     JackRequest(RequestType type): fType(type), fSize(0)
   109         return trans->Read(&fType, 
sizeof(RequestType));
   117         CheckRes(trans->Write(&fType, 
sizeof(RequestType)));
   118         return trans->Write(&fSize, 
sizeof(
int));
   121     virtual int Size() { 
return 0; }
   143         return trans->Read(&fResult, 
sizeof(
int));
   148         return trans->Write(&fResult, 
sizeof(
int));
   160     char fName[JACK_CLIENT_NAME_SIZE+1];
   168         memset(fName, 0, 
sizeof(fName));
   171         : 
JackRequest(JackRequest::kClientCheck), fProtocol(protocol), fOptions(options), fUUID(uuid), fOpen(open)
   173         memset(fName, 0, 
sizeof(fName));
   174         snprintf(fName, 
sizeof(fName), 
"%s", name);
   180         CheckRes(trans->Read(&fName, 
sizeof(fName)));
   181         CheckRes(trans->Read(&fProtocol, 
sizeof(
int)));
   182         CheckRes(trans->Read(&fOptions, 
sizeof(
int)));
   183         CheckRes(trans->Read(&fUUID, 
sizeof(
int)));
   184         return trans->Read(&fOpen, 
sizeof(
int));
   189         CheckRes(JackRequest::Write(trans, Size()));
   190         CheckRes(trans->Write(&fName, 
sizeof(fName)));
   191         CheckRes(trans->Write(&fProtocol, 
sizeof(
int)));
   192         CheckRes(trans->Write(&fOptions, 
sizeof(
int)));
   193         CheckRes(trans->Write(&fUUID, 
sizeof(
int)));
   194         return trans->Write(&fOpen, 
sizeof(
int));
   197     int Size() { 
return sizeof(fName) + 4 * 
sizeof(
int); }
   208     char fName[JACK_CLIENT_NAME_SIZE+1];
   213         memset(fName, 0, 
sizeof(fName));
   218         memset(fName, 0, 
sizeof(fName));
   219         snprintf(fName, 
sizeof(fName), 
"%s", name);
   224         CheckRes(JackResult::Read(trans));
   225         CheckRes(trans->Read(&fName, 
sizeof(fName)));
   226         CheckRes(trans->Read(&fStatus, 
sizeof(
int)));
   232         CheckRes(JackResult::Write(trans));
   233         CheckRes(trans->Write(&fName, 
sizeof(fName)));
   234         CheckRes(trans->Write(&fStatus, 
sizeof(
int)));
   249     char fName[JACK_CLIENT_NAME_SIZE+1];
   253         memset(fName, 0, 
sizeof(fName));
   257         memset(fName, 0, 
sizeof(fName));
   258         snprintf(fName, 
sizeof(fName), 
"%s", name);
   266         CheckRes(trans->Read(&fPID, 
sizeof(
int)));
   267         CheckRes(trans->Read(&fUUID, 
sizeof(
int)));
   268         return trans->Read(&fName, 
sizeof(fName));
   273         CheckRes(JackRequest::Write(trans, Size()));
   274         CheckRes(trans->Write(&fPID, 
sizeof(
int)));
   275         CheckRes(trans->Write(&fUUID, 
sizeof(
int)));
   276         return trans->Write(&fName, 
sizeof(fName));
   279     int Size() { 
return 2 * 
sizeof(int) + 
sizeof(fName); }
   295             : 
JackResult(), fSharedEngine(-1), fSharedClient(-1), fSharedGraph(-1)
   298             : 
JackResult(result), fSharedEngine(index1), fSharedClient(index2), fSharedGraph(index3)
   303         CheckRes(JackResult::Read(trans));
   304         CheckRes(trans->Read(&fSharedEngine, 
sizeof(
int)));
   305         CheckRes(trans->Read(&fSharedClient, 
sizeof(
int)));
   306         CheckRes(trans->Read(&fSharedGraph, 
sizeof(
int)));
   312         CheckRes(JackResult::Write(trans));
   313         CheckRes(trans->Write(&fSharedEngine, 
sizeof(
int)));
   314         CheckRes(trans->Write(&fSharedClient, 
sizeof(
int)));
   315         CheckRes(trans->Write(&fSharedGraph, 
sizeof(
int)));
   338         return trans->Read(&fRefNum, 
sizeof(
int));
   343         CheckRes(JackRequest::Write(trans, Size()));
   344         return trans->Write(&fRefNum, 
sizeof(
int));
   347     int Size() { 
return sizeof(int); }
   363         : 
JackRequest(JackRequest::kActivateClient), fRefNum(refnum), fIsRealTime(is_real_time)
   369         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   370         return trans->Read(&fIsRealTime, 
sizeof(
int));
   375         CheckRes(JackRequest::Write(trans, Size()));
   376         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   377         return trans->Write(&fIsRealTime, 
sizeof(
int));
   380     int Size() { 
return 2 * 
sizeof(int); }
   400         return trans->Read(&fRefNum, 
sizeof(
int));
   405         CheckRes(JackRequest::Write(trans, Size()));
   406         return trans->Write(&fRefNum, 
sizeof(
int));
   409     int Size() { 
return sizeof(int); }
   420     char fName[JACK_PORT_NAME_SIZE + 1];   
   421     char fPortType[JACK_PORT_TYPE_SIZE + 1];
   423     unsigned int fBufferSize;
   427         memset(fName, 0, 
sizeof(fName));
   428         memset(fPortType, 0, 
sizeof(fPortType));
   430     JackPortRegisterRequest(
int refnum, 
const char* name, 
const char* port_type, 
unsigned int flags, 
unsigned int buffer_size)
   431             : 
JackRequest(JackRequest::kRegisterPort), fRefNum(refnum), fFlags(flags), fBufferSize(buffer_size)
   433         memset(fName, 0, 
sizeof(fName));
   434         memset(fPortType, 0, 
sizeof(fPortType));
   435         strncpy(fName, name, 
sizeof(fName)-1);
   436         strncpy(fPortType, port_type, 
sizeof(fPortType)-1);
   442         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   443         CheckRes(trans->Read(&fName, 
sizeof(fName)));
   444         CheckRes(trans->Read(&fPortType, 
sizeof(fPortType)));
   445         CheckRes(trans->Read(&fFlags, 
sizeof(
unsigned int)));
   446         CheckRes(trans->Read(&fBufferSize, 
sizeof(
unsigned int)));
   452         CheckRes(JackRequest::Write(trans, Size()));
   453         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   454         CheckRes(trans->Write(&fName, 
sizeof(fName)));
   455         CheckRes(trans->Write(&fPortType, 
sizeof(fPortType)));
   456         CheckRes(trans->Write(&fFlags, 
sizeof(
unsigned int)));
   457         CheckRes(trans->Write(&fBufferSize, 
sizeof(
unsigned int)));
   461     int Size() { 
return sizeof(int) + 
sizeof(fName) + 
sizeof(fPortType) + 2 * 
sizeof(
unsigned int); }
   472     jack_port_id_t fPortIndex;
   479         CheckRes(JackResult::Read(trans));
   480         return trans->Read(&fPortIndex, 
sizeof(jack_port_id_t));
   485         CheckRes(JackResult::Write(trans));
   486         return trans->Write(&fPortIndex, 
sizeof(jack_port_id_t));
   499     jack_port_id_t fPortIndex;
   504         : 
JackRequest(JackRequest::kUnRegisterPort), fRefNum(refnum), fPortIndex(index)
   510         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   511         CheckRes(trans->Read(&fPortIndex, 
sizeof(jack_port_id_t)));
   517         CheckRes(JackRequest::Write(trans, Size()));
   518         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   519         CheckRes(trans->Write(&fPortIndex, 
sizeof(jack_port_id_t)));
   523     int Size() { 
return sizeof(int) + 
sizeof(jack_port_id_t); }
   534     char fSrc[REAL_JACK_PORT_NAME_SIZE+1];    
   535     char fDst[REAL_JACK_PORT_NAME_SIZE+1];    
   539         memset(fSrc, 0, 
sizeof(fSrc));
   540         memset(fDst, 0, 
sizeof(fDst));
   543         : 
JackRequest(JackRequest::kConnectNamePorts), fRefNum(refnum)
   545         memset(fSrc, 0, 
sizeof(fSrc));
   546         memset(fDst, 0, 
sizeof(fDst));
   547         strncpy(fSrc, src_name, 
sizeof(fSrc)-1);
   548         strncpy(fDst, dst_name, 
sizeof(fDst)-1);
   554         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   555         CheckRes(trans->Read(&fSrc, 
sizeof(fSrc)));
   556         CheckRes(trans->Read(&fDst, 
sizeof(fDst)));
   562         CheckRes(JackRequest::Write(trans, Size()));
   563         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   564         CheckRes(trans->Write(&fSrc, 
sizeof(fSrc)));
   565         CheckRes(trans->Write(&fDst, 
sizeof(fDst)));
   569     int Size() { 
return sizeof(int) + 
sizeof(fSrc) + 
sizeof(fDst); }
   581     char fSrc[REAL_JACK_PORT_NAME_SIZE+1];    
   582     char fDst[REAL_JACK_PORT_NAME_SIZE+1];    
   586         memset(fSrc, 0, 
sizeof(fSrc));
   587         memset(fDst, 0, 
sizeof(fDst));
   590         : 
JackRequest(JackRequest::kDisconnectNamePorts), fRefNum(refnum)
   592         memset(fSrc, 0, 
sizeof(fSrc));
   593         memset(fDst, 0, 
sizeof(fDst));
   594         strncpy(fSrc, src_name, 
sizeof(fSrc)-1);
   595         strncpy(fDst, dst_name, 
sizeof(fDst)-1);
   601         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   602         CheckRes(trans->Read(&fSrc, 
sizeof(fSrc)));
   603         CheckRes(trans->Read(&fDst, 
sizeof(fDst)));
   609         CheckRes(JackRequest::Write(trans, Size()));
   610         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   611         CheckRes(trans->Write(&fSrc, 
sizeof(fSrc)));
   612         CheckRes(trans->Write(&fDst, 
sizeof(fDst)));
   616     int Size() { 
return sizeof(int) + 
sizeof(fSrc) + 
sizeof(fDst); }
   634         : 
JackRequest(JackRequest::kConnectPorts), fRefNum(refnum), fSrc(src), fDst(dst)
   640         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   641         CheckRes(trans->Read(&fSrc, 
sizeof(jack_port_id_t)));
   642         CheckRes(trans->Read(&fDst, 
sizeof(jack_port_id_t)));
   648         CheckRes(JackRequest::Write(trans, Size()));
   649         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   650         CheckRes(trans->Write(&fSrc, 
sizeof(jack_port_id_t)));
   651         CheckRes(trans->Write(&fDst, 
sizeof(jack_port_id_t)));
   655     int Size() { 
return sizeof(int) + 
sizeof(jack_port_id_t) + 
sizeof(jack_port_id_t); }
   672         : 
JackRequest(JackRequest::kDisconnectPorts), fRefNum(refnum), fSrc(src), fDst(dst)
   678         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   679         CheckRes(trans->Read(&fSrc, 
sizeof(jack_port_id_t)));
   680         CheckRes(trans->Read(&fDst, 
sizeof(jack_port_id_t)));
   686         CheckRes(JackRequest::Write(trans, Size()));
   687         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   688         CheckRes(trans->Write(&fSrc, 
sizeof(jack_port_id_t)));
   689         CheckRes(trans->Write(&fDst, 
sizeof(jack_port_id_t)));
   693     int Size() { 
return sizeof(int) + 
sizeof(jack_port_id_t) + 
sizeof(jack_port_id_t); }
   704     jack_port_id_t fPort;
   705     char fName[JACK_PORT_NAME_SIZE + 1];   
   709         memset(fName, 0, 
sizeof(fName));
   712         : 
JackRequest(JackRequest::kPortRename), fRefNum(refnum), fPort(port)
   714         memset(fName, 0, 
sizeof(fName));
   715         strncpy(fName, name, 
sizeof(fName)-1);
   721         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   722         CheckRes(trans->Read(&fPort, 
sizeof(jack_port_id_t)));
   723         CheckRes(trans->Read(&fName, 
sizeof(fName)));
   729         CheckRes(JackRequest::Write(trans, Size()));
   730         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   731         CheckRes(trans->Write(&fPort, 
sizeof(jack_port_id_t)));
   732         CheckRes(trans->Write(&fName, 
sizeof(fName)));
   736     int Size() { 
return sizeof(int) + 
sizeof(jack_port_id_t) + 
sizeof(fName); }
   747     jack_nframes_t fBufferSize;
   752         : 
JackRequest(JackRequest::kSetBufferSize), fBufferSize(buffer_size)
   758         return trans->Read(&fBufferSize, 
sizeof(jack_nframes_t));
   763         CheckRes(JackRequest::Write(trans, Size()));
   764         return trans->Write(&fBufferSize, 
sizeof(jack_nframes_t));
   767     int Size() { 
return sizeof(jack_nframes_t); }
   782         : 
JackRequest(JackRequest::kSetFreeWheel), fOnOff(onoff)
   788         return trans->Read(&fOnOff, 
sizeof(
int));
   793         CheckRes(JackRequest::Write(trans, Size()));
   794         return trans->Write(&fOnOff, 
sizeof(
int));
   797     int Size() { 
return sizeof(int); }
   820         CheckRes(JackRequest::Write(trans, Size()));
   824     int Size() { 
return 0; }
   839         : 
JackRequest(JackRequest::kReleaseTimebase), fRefNum(refnum)
   845         return trans->Read(&fRefNum, 
sizeof(
int));
   850         CheckRes(JackRequest::Write(trans, Size()));
   851         return trans->Write(&fRefNum, 
sizeof(
int));
   854     int Size() { 
return sizeof(int); }
   871         : 
JackRequest(JackRequest::kSetTimebaseCallback), fRefNum(refnum), fConditionnal(conditional)
   877         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   878         return trans->Read(&fConditionnal, 
sizeof(
int));
   883         CheckRes(JackRequest::Write(trans, Size()));
   884         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   885         return trans->Write(&fConditionnal, 
sizeof(
int));
   888     int Size() { 
return sizeof(int) + 
sizeof(
int); }
   904             : 
JackRequest(JackRequest::kGetInternalClientName), fRefNum(refnum), fIntRefNum(int_ref)
   910         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   911         return trans->Read(&fIntRefNum, 
sizeof(
int));
   916         CheckRes(JackRequest::Write(trans, Size()));
   917         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   918         return trans->Write(&fIntRefNum, 
sizeof(
int));
   921     int Size() { 
return sizeof(int) + 
sizeof(
int); }
   931     char fName[JACK_CLIENT_NAME_SIZE+1];
   935         memset(fName, 0, 
sizeof(fName));
   940         memset(fName, 0, 
sizeof(fName));
   941         snprintf(fName, 
sizeof(fName), 
"%s", name);
   946         CheckRes(JackResult::Read(trans));
   947         CheckRes(trans->Read(&fName, 
sizeof(fName)));
   953         CheckRes(JackResult::Write(trans));
   954         CheckRes(trans->Write(&fName, 
sizeof(fName)));
   958     int Size() { 
return sizeof(fName); }
   969     char fName[JACK_CLIENT_NAME_SIZE+1];
   973         memset(fName, 0, 
sizeof(fName));
   976             : 
JackRequest(JackRequest::kInternalClientHandle), fRefNum(refnum)
   978         memset(fName, 0, 
sizeof(fName));
   979         snprintf(fName, 
sizeof(fName), 
"%s", client_name);
   985         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
   986         return trans->Read(&fName, 
sizeof(fName));
   991         CheckRes(JackRequest::Write(trans, Size()));
   992         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
   993         return trans->Write(&fName, 
sizeof(fName));
   996     int Size() { 
return sizeof(int) + 
sizeof(fName); }
  1012             : 
JackResult(result), fStatus(status), fIntRefNum(int_ref)
  1017         CheckRes(JackResult::Read(trans));
  1018         CheckRes(trans->Read(&fStatus, 
sizeof(
int)));
  1019         CheckRes(trans->Read(&fIntRefNum, 
sizeof(
int)));
  1025         CheckRes(JackResult::Write(trans));
  1026         CheckRes(trans->Write(&fStatus, 
sizeof(
int)));
  1027         CheckRes(trans->Write(&fIntRefNum, 
sizeof(
int)));
  1031     int Size() { 
return sizeof(int) + 
sizeof(
int); }
  1042 #define MAX_PATH 256  1046     char fName[JACK_CLIENT_NAME_SIZE+1];
  1047     char fDllName[MAX_PATH+1];
  1048     char fLoadInitName[JACK_LOAD_INIT_LIMIT+1];
  1054         memset(fName, 0, 
sizeof(fName));
  1055         memset(fDllName, 0, 
sizeof(fDllName));
  1056         memset(fLoadInitName, 0, 
sizeof(fLoadInitName));
  1059             : 
JackRequest(JackRequest::kInternalClientLoad), fRefNum(refnum), fOptions(options), fUUID(uuid)
  1061         memset(fName, 0, 
sizeof(fName));
  1062         memset(fDllName, 0, 
sizeof(fDllName));
  1063         memset(fLoadInitName, 0, 
sizeof(fLoadInitName));
  1064         snprintf(fName, 
sizeof(fName), 
"%s", client_name);
  1065         snprintf(fDllName, 
sizeof(fDllName), 
"%s", so_name);
  1066         snprintf(fLoadInitName, 
sizeof(fLoadInitName), 
"%s", objet_data);
  1072         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
  1073         CheckRes(trans->Read(&fName, 
sizeof(fName)));
  1074         CheckRes(trans->Read(&fDllName, 
sizeof(fDllName)));
  1075         CheckRes(trans->Read(&fLoadInitName, 
sizeof(fLoadInitName)));
  1076         CheckRes(trans->Read(&fUUID, 
sizeof(
int)));
  1077         return trans->Read(&fOptions, 
sizeof(
int));
  1082         CheckRes(JackRequest::Write(trans, Size()));
  1083         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
  1084         CheckRes(trans->Write(&fName, 
sizeof(fName)));
  1085         CheckRes(trans->Write(&fDllName, 
sizeof(fDllName)));
  1086         CheckRes(trans->Write(&fLoadInitName, 
sizeof(fLoadInitName)));
  1087         CheckRes(trans->Write(&fUUID, 
sizeof(
int)));
  1088         return trans->Write(&fOptions, 
sizeof(
int));
  1091     int Size() { 
return sizeof(int) + 
sizeof(fName) + 
sizeof(fDllName) + 
sizeof(fLoadInitName) + 2 * 
sizeof(int); }
  1107             : 
JackResult(result), fStatus(status), fIntRefNum(int_ref)
  1112         CheckRes(JackResult::Read(trans));
  1113         CheckRes(trans->Read(&fStatus, 
sizeof(
int)));
  1114         CheckRes(trans->Read(&fIntRefNum, 
sizeof(
int)));
  1120         CheckRes(JackResult::Write(trans));
  1121         CheckRes(trans->Write(&fStatus, 
sizeof(
int)));
  1122         CheckRes(trans->Write(&fIntRefNum, 
sizeof(
int)));
  1126     int Size() { 
return sizeof(int) + 
sizeof(
int); }
  1142             : 
JackRequest(JackRequest::kInternalClientUnload), fRefNum(refnum), fIntRefNum(int_ref)
  1148         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
  1149         return trans->Read(&fIntRefNum, 
sizeof(
int));
  1154         CheckRes(JackRequest::Write(trans, Size()));
  1155         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
  1156         return trans->Write(&fIntRefNum, 
sizeof(
int));
  1159     int Size() { 
return sizeof(int) + 
sizeof(
int); }
  1179         CheckRes(JackResult::Read(trans));
  1180         CheckRes(trans->Read(&fStatus, 
sizeof(
int)));
  1186         CheckRes(JackResult::Write(trans));
  1187         CheckRes(trans->Write(&fStatus, 
sizeof(
int)));
  1191     int Size() { 
return sizeof(int); }
  1208             : 
JackRequest(JackRequest::kNotification), fRefNum(refnum), fNotify(notify), fValue(value)
  1214         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
  1215         CheckRes(trans->Read(&fNotify, 
sizeof(
int)));
  1216         CheckRes(trans->Read(&fValue, 
sizeof(
int)));
  1222         CheckRes(JackRequest::Write(trans, Size()));
  1223         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
  1224         CheckRes(trans->Write(&fNotify, 
sizeof(
int)));
  1225         CheckRes(trans->Write(&fValue, 
sizeof(
int)));
  1229     int Size() { 
return 3 * 
sizeof(int); }
  1235     char fUUID[JACK_UUID_SIZE];
  1236     char fClientName[JACK_CLIENT_NAME_SIZE+1];
  1237     char fCommand[JACK_SESSION_COMMAND_SIZE];
  1238     jack_session_flags_t fFlags;
  1242         memset(fUUID, 0, 
sizeof(fUUID));
  1243         memset(fClientName, 0, 
sizeof(fClientName));
  1244         memset(fCommand, 0, 
sizeof(fCommand));
  1246     JackSessionCommand(
const char *uuid, 
const char *clientname, 
const char *command, jack_session_flags_t flags)
  1248         memset(fUUID, 0, 
sizeof(fUUID));
  1249         memset(fClientName, 0, 
sizeof(fClientName));
  1250         memset(fCommand, 0, 
sizeof(fCommand));
  1251         strncpy(fUUID, uuid, 
sizeof(fUUID)-1);
  1252         strncpy(fClientName, clientname, 
sizeof(fClientName)-1);
  1253         strncpy(fCommand, command, 
sizeof(fCommand)-1);
  1261     std::list<JackSessionCommand> fCommandList;
  1277         CheckRes(JackResult::Read(trans));
  1281             CheckRes(trans->Read(buffer.fUUID, 
sizeof(buffer.fUUID)));
  1282             if (buffer.fUUID[0] == 
'\0')
  1285             CheckRes(trans->Read(buffer.fClientName, 
sizeof(buffer.fClientName)));
  1286             CheckRes(trans->Read(buffer.fCommand, 
sizeof(buffer.fCommand)));
  1287             CheckRes(trans->Read(&(buffer.fFlags), 
sizeof(buffer.fFlags)));
  1289             fCommandList.push_back(buffer);
  1305         char terminator[JACK_UUID_SIZE];
  1306         terminator[0] = 
'\0';
  1308         CheckRes(JackResult::Write(trans));
  1309         for (std::list<JackSessionCommand>::iterator i = fCommandList.begin(); i != fCommandList.end(); i++) {
  1310             CheckRes(trans->Write(i->fUUID, 
sizeof(i->fUUID)));
  1311             CheckRes(trans->Write(i->fClientName, 
sizeof(i->fClientName)));
  1312             CheckRes(trans->Write(i->fCommand, 
sizeof(i->fCommand)));
  1313             CheckRes(trans->Write(&(i->fFlags), 
sizeof(i->fFlags)));
  1315         CheckRes(trans->Write(terminator, 
sizeof(terminator)));
  1330         for (std::list<JackSessionCommand>::iterator ci = fCommandList.begin(); ci != fCommandList.end(); ci++) {
  1331             session_command[i].uuid = strdup(ci->fUUID);
  1332             session_command[i].client_name = strdup(ci->fClientName);
  1333             session_command[i].command = strdup(ci->fCommand);
  1334             session_command[i].flags = ci->fFlags;
  1338         session_command[i].uuid = NULL;
  1339         session_command[i].client_name = NULL;
  1340         session_command[i].command = NULL;
  1343         return session_command;
  1353     char fPath[JACK_MESSAGE_SIZE+1];
  1354     char fDst[JACK_CLIENT_NAME_SIZE+1];
  1355     jack_session_event_type_t fEventType;
  1361             : 
JackRequest(JackRequest::kSessionNotify), fEventType(type), fRefNum(refnum)
  1363         memset(fPath, 0, 
sizeof(fPath));
  1364         memset(fDst, 0, 
sizeof(fDst));
  1365         snprintf(fPath, 
sizeof(fPath), 
"%s", path);
  1366         fPath[JACK_MESSAGE_SIZE] = 0;
  1368             snprintf(fDst, 
sizeof(fDst), 
"%s", dst);
  1369             fDst[JACK_CLIENT_NAME_SIZE] = 0;
  1376         CheckRes(trans->Read(&fRefNum, 
sizeof(fRefNum)));
  1377         CheckRes(trans->Read(&fPath, 
sizeof(fPath)));
  1378         CheckRes(trans->Read(&fDst, 
sizeof(fDst)));
  1379         CheckRes(trans->Read(&fEventType, 
sizeof(fEventType)));
  1385         CheckRes(JackRequest::Write(trans, Size()));
  1386         CheckRes(trans->Write(&fRefNum, 
sizeof(fRefNum)));
  1387         CheckRes(trans->Write(&fPath, 
sizeof(fPath)));
  1388         CheckRes(trans->Write(&fDst, 
sizeof(fDst)));
  1389         CheckRes(trans->Write(&fEventType, 
sizeof(fEventType)));
  1393     int Size() { 
return sizeof(fRefNum) + 
sizeof(fPath) + 
sizeof(fDst) + 
sizeof(fEventType); }
  1404             : 
JackRequest(JackRequest::kSessionReply), fRefNum(refnum)
  1410         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
  1416         CheckRes(JackRequest::Write(trans, Size()));
  1417         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
  1421     int Size() { 
return sizeof(int); }
  1427     char fName[JACK_CLIENT_NAME_SIZE+1];
  1431         memset(fName, 0, 
sizeof(fName));
  1436         memset(fName, 0, 
sizeof(fName));
  1437         snprintf(fName, 
sizeof(fName), 
"%s", name);
  1442         CheckRes(JackResult::Read(trans));
  1443         CheckRes(trans->Read(&fName, 
sizeof(fName)));
  1449         CheckRes(JackResult::Write(trans));
  1450         CheckRes(trans->Write(&fName, 
sizeof(fName)));
  1458     char fUUID[JACK_UUID_SIZE];
  1462         memset(fUUID, 0, 
sizeof(fUUID));
  1467         memset(fUUID, 0, 
sizeof(fUUID));
  1468         snprintf(fUUID, 
sizeof(fUUID), 
"%s", uuid);
  1473         CheckRes(JackResult::Read(trans));
  1474         CheckRes(trans->Read(&fUUID, 
sizeof(fUUID)));
  1480         CheckRes(JackResult::Write(trans));
  1481         CheckRes(trans->Write(&fUUID, 
sizeof(fUUID)));
  1489     char fName[JACK_CLIENT_NAME_SIZE+1];
  1493         memset(fName, 0, 
sizeof(fName));
  1499         memset(fName, 0, 
sizeof(fName));
  1500         strncpy(fName, client_name, 
sizeof(fName)-1);
  1506         CheckRes(trans->Read(&fName, 
sizeof(fName)));
  1512         CheckRes(JackRequest::Write(trans, Size()));
  1513         CheckRes(trans->Write(&fName, 
sizeof(fName)));
  1517     int Size() { 
return sizeof(fName); }
  1523     char fUUID[JACK_UUID_SIZE];
  1527         memset(fUUID, 0, 
sizeof(fUUID));
  1533         memset(fUUID, 0, 
sizeof(fUUID));
  1534         strncpy(fUUID, uuid, 
sizeof(fUUID)-1);
  1540         CheckRes(trans->Read(&fUUID, 
sizeof(fUUID)));
  1546         CheckRes(JackRequest::Write(trans, Size()));
  1547         CheckRes(trans->Write(&fUUID, 
sizeof(fUUID)));
  1551     int Size() { 
return sizeof(fUUID); }
  1558     char fName[JACK_CLIENT_NAME_SIZE+1];
  1559     char fUUID[JACK_UUID_SIZE];
  1563         memset(fName, 0, 
sizeof(fName));
  1564         memset(fUUID, 0, 
sizeof(fUUID));
  1568             : 
JackRequest(JackRequest::kReserveClientName), fRefNum(refnum)
  1570         memset(fName, 0, 
sizeof(fName));
  1571         memset(fUUID, 0, 
sizeof(fUUID));
  1572         strncpy(fName, name, 
sizeof(fName)-1);
  1573         strncpy(fUUID, uuid, 
sizeof(fUUID)-1);
  1579         CheckRes(trans->Read(&fUUID, 
sizeof(fUUID)));
  1580         CheckRes(trans->Read(&fName, 
sizeof(fName)));
  1581         CheckRes(trans->Read(&fRefNum, 
sizeof(fRefNum)));
  1587         CheckRes(JackRequest::Write(trans, Size()));
  1588         CheckRes(trans->Write(&fUUID, 
sizeof(fUUID)));
  1589         CheckRes(trans->Write(&fName, 
sizeof(fName)));
  1590         CheckRes(trans->Write(&fRefNum, 
sizeof(fRefNum)));
  1594     int Size() { 
return sizeof(fUUID) + 
sizeof(fName) + 
sizeof(fRefNum); }
  1600     char fName[JACK_CLIENT_NAME_SIZE+1];
  1604         memset(fName, 0, 
sizeof(fName));
  1608             : 
JackRequest(JackRequest::kClientHasSessionCallback)
  1610         memset(fName, 0, 
sizeof(fName));
  1611         strncpy(fName, name, 
sizeof(fName)-1);
  1617         CheckRes(trans->Read(&fName, 
sizeof(fName)));
  1623         CheckRes(JackRequest::Write(trans, Size()));
  1624         CheckRes(trans->Write(&fName, 
sizeof(fName)));
  1628     int Size() { 
return sizeof(fName); }
  1639     char fName[JACK_CLIENT_NAME_SIZE+1];
  1645     char fMessage[JACK_MESSAGE_SIZE+1];
  1649         memset(fName, 0, 
sizeof(fName));
  1650         memset(fMessage, 0, 
sizeof(fMessage));
  1652     JackClientNotification(
const char* name, 
int refnum, 
int notify, 
int sync, 
const char* message, 
int value1, 
int value2)
  1653             : fRefNum(refnum), fNotify(notify), fValue1(value1), fValue2(value2), fSync(sync)
  1655         memset(fName, 0, 
sizeof(fName));
  1656         memset(fMessage, 0, 
sizeof(fMessage));
  1657         snprintf(fName, 
sizeof(fName), 
"%s", name);
  1658         snprintf(fMessage, 
sizeof(fMessage), 
"%s", message);
  1665         CheckRes(trans->Read(&fName, 
sizeof(fName)));
  1666         CheckRes(trans->Read(&fRefNum, 
sizeof(
int)));
  1667         CheckRes(trans->Read(&fNotify, 
sizeof(
int)));
  1668         CheckRes(trans->Read(&fValue1, 
sizeof(
int)));
  1669         CheckRes(trans->Read(&fValue2, 
sizeof(
int)));
  1670         CheckRes(trans->Read(&fSync, 
sizeof(
int)));
  1671         CheckRes(trans->Read(&fMessage, 
sizeof(fMessage)));
  1677         CheckRes(trans->Write(&fSize, 
sizeof(
int)));
  1678         CheckRes(trans->Write(&fName, 
sizeof(fName)));
  1679         CheckRes(trans->Write(&fRefNum, 
sizeof(
int)));
  1680         CheckRes(trans->Write(&fNotify, 
sizeof(
int)));
  1681         CheckRes(trans->Write(&fValue1, 
sizeof(
int)));
  1682         CheckRes(trans->Write(&fValue2, 
sizeof(
int)));
  1683         CheckRes(trans->Write(&fSync, 
sizeof(
int)));
  1684         CheckRes(trans->Write(&fMessage, 
sizeof(fMessage)));
  1688     int Size() { 
return sizeof(int) + 
sizeof(fName) + 5 * 
sizeof(int) + 
sizeof(fMessage); }
 
InternalClientHandle result.
SetTimebaseCallback request.
InternalClientLoad result.
Request from client to server.
ClientNotification request.
GetInternalClientName request.
GetInternalClient result.
ComputeTotalLatencies request.
enum JackSessionFlags jack_session_flags_t
InternalClientUnload request.
InternalClientLoad request.
InternalClientLoad result.
PortDisconnectName request.
InternalClientHandle request.