2 Copyright (C) 2001 Paul Davis
3 Copyright (C) 2004-2008 Grame
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 #ifndef __JackRequest__
22 #define __JackRequest__
24 #include "JackConstants.h"
25 #include "JackPlatformPlug.h"
33 #define CheckRes(exp) { if ((exp) < 0) return -1;}
36 \brief Request from client to server.
47 kSetTimeBaseClient
= 5,
49 kDeactivateClient
= 7,
51 kSetClientCapabilities
= 9,
52 kGetPortConnections
= 10,
53 kGetPortNConnections
= 11,
54 kReleaseTimebase
= 12,
55 kSetTimebaseCallback
= 13,
61 kConnectNamePorts
= 25,
62 kDisconnectNamePorts
= 26,
63 kGetInternalClientName
= 27,
64 kInternalClientHandle
= 28,
65 kInternalClientLoad
= 29,
66 kInternalClientUnload
= 30,
76 JackRequest(RequestType type
): fType(type
)
79 virtual ~JackRequest()
82 virtual int Read(JackChannelTransaction
* trans
)
84 return trans
->Read(&fType
, sizeof(RequestType
));
87 virtual int Write(JackChannelTransaction
* trans
)
89 return trans
->Write(&fType
, sizeof(RequestType
));
95 \brief Result from the server.
103 JackResult(): fResult( -1)
105 JackResult(int result
): fResult(result
)
107 virtual ~JackResult()
110 virtual int Read(JackChannelTransaction
* trans
)
112 return trans
->Read(&fResult
, sizeof(int));
115 virtual int Write(JackChannelTransaction
* trans
)
117 return trans
->Write(&fResult
, sizeof(int));
122 \brief CheckClient request.
125 struct JackClientCheckRequest
: public JackRequest
128 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
132 JackClientCheckRequest()
134 JackClientCheckRequest(const char* name
, int protocol
, int options
)
135 : JackRequest(JackRequest::kClientCheck
), fProtocol(protocol
), fOptions(options
)
137 snprintf(fName
, sizeof(fName
), "%s", name
);
140 int Read(JackChannelTransaction
* trans
)
142 CheckRes(trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
143 CheckRes(trans
->Read(&fProtocol
, sizeof(int)));
144 return trans
->Read(&fOptions
, sizeof(int));
147 int Write(JackChannelTransaction
* trans
)
149 CheckRes(JackRequest::Write(trans
));
150 CheckRes(trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
151 CheckRes(trans
->Write(&fProtocol
, sizeof(int)));
152 return trans
->Write(&fOptions
, sizeof(int));
157 \brief CheckClient result.
160 struct JackClientCheckResult
: public JackResult
163 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
166 JackClientCheckResult(): JackResult(), fStatus(0)
168 JackClientCheckResult(int32_t result
, const char* name
, int status
)
169 : JackResult(result
), fStatus(status
)
171 snprintf(fName
, sizeof(fName
), "%s", name
);
174 int Read(JackChannelTransaction
* trans
)
176 CheckRes(JackResult::Read(trans
));
177 CheckRes(trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
178 CheckRes(trans
->Read(&fStatus
, sizeof(int)));
182 int Write(JackChannelTransaction
* trans
)
184 CheckRes(JackResult::Write(trans
));
185 CheckRes(trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
186 CheckRes(trans
->Write(&fStatus
, sizeof(int)));
192 \brief NewClient request.
195 struct JackClientOpenRequest
: public JackRequest
199 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
201 JackClientOpenRequest()
203 JackClientOpenRequest(const char* name
, int pid
): JackRequest(JackRequest::kClientOpen
)
205 snprintf(fName
, sizeof(fName
), "%s", name
);
209 int Read(JackChannelTransaction
* trans
)
211 CheckRes(trans
->Read(&fPID
, sizeof(int)));
212 return trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1);
215 int Write(JackChannelTransaction
* trans
)
217 CheckRes(JackRequest::Write(trans
));
218 CheckRes(trans
->Write(&fPID
, sizeof(int)));
219 return trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1);
224 \brief NewClient result.
227 struct JackClientOpenResult
: public JackResult
234 JackClientOpenResult()
235 : JackResult(), fSharedEngine(-1), fSharedClient(-1), fSharedGraph(-1)
237 JackClientOpenResult(int32_t result
, int index1
, int index2
, int index3
)
238 : JackResult(result
), fSharedEngine(index1
), fSharedClient(index2
), fSharedGraph(index3
)
241 int Read(JackChannelTransaction
* trans
)
243 CheckRes(JackResult::Read(trans
));
244 CheckRes(trans
->Read(&fSharedEngine
, sizeof(int)));
245 CheckRes(trans
->Read(&fSharedClient
, sizeof(int)));
246 CheckRes(trans
->Read(&fSharedGraph
, sizeof(int)));
250 int Write(JackChannelTransaction
* trans
)
252 CheckRes(JackResult::Write(trans
));
253 CheckRes(trans
->Write(&fSharedEngine
, sizeof(int)));
254 CheckRes(trans
->Write(&fSharedClient
, sizeof(int)));
255 CheckRes(trans
->Write(&fSharedGraph
, sizeof(int)));
261 \brief CloseClient request.
264 struct JackClientCloseRequest
: public JackRequest
269 JackClientCloseRequest()
271 JackClientCloseRequest(int refnum
): JackRequest(JackRequest::kClientClose
), fRefNum(refnum
)
274 int Read(JackChannelTransaction
* trans
)
276 return trans
->Read(&fRefNum
, sizeof(int));
279 int Write(JackChannelTransaction
* trans
)
281 CheckRes(JackRequest::Write(trans
));
282 return trans
->Write(&fRefNum
, sizeof(int));
287 \brief Activate request.
290 struct JackActivateRequest
: public JackRequest
296 JackActivateRequest()
298 JackActivateRequest(int refnum
, int state
)
299 : JackRequest(JackRequest::kActivateClient
), fRefNum(refnum
), fState(state
)
302 int Read(JackChannelTransaction
* trans
)
304 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
305 return trans
->Read(&fState
, sizeof(int));
308 int Write(JackChannelTransaction
* trans
)
310 CheckRes(JackRequest::Write(trans
));
311 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
312 return trans
->Write(&fState
, sizeof(int));
318 \brief Deactivate request.
321 struct JackDeactivateRequest
: public JackRequest
326 JackDeactivateRequest()
328 JackDeactivateRequest(int refnum
): JackRequest(JackRequest::kDeactivateClient
), fRefNum(refnum
)
331 int Read(JackChannelTransaction
* trans
)
333 return trans
->Read(&fRefNum
, sizeof(int));
336 int Write(JackChannelTransaction
* trans
)
338 CheckRes(JackRequest::Write(trans
));
339 return trans
->Write(&fRefNum
, sizeof(int));
345 \brief PortRegister request.
348 struct JackPortRegisterRequest
: public JackRequest
352 char fName
[JACK_PORT_NAME_SIZE
+ 1];
353 char fPortType
[JACK_PORT_TYPE_SIZE
+ 1];
355 unsigned int fBufferSize
;
357 JackPortRegisterRequest()
359 JackPortRegisterRequest(int refnum
, const char* name
, const char* port_type
, unsigned int flags
, unsigned int buffer_size
)
360 : JackRequest(JackRequest::kRegisterPort
), fRefNum(refnum
), fFlags(flags
), fBufferSize(buffer_size
)
363 strcpy(fPortType
, port_type
);
366 int Read(JackChannelTransaction
* trans
)
368 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
369 CheckRes(trans
->Read(&fName
, JACK_PORT_NAME_SIZE
+ 1));
370 CheckRes(trans
->Read(&fPortType
, JACK_PORT_TYPE_SIZE
+ 1));
371 CheckRes(trans
->Read(&fFlags
, sizeof(unsigned int)));
372 CheckRes(trans
->Read(&fBufferSize
, sizeof(unsigned int)));
376 int Write(JackChannelTransaction
* trans
)
378 CheckRes(JackRequest::Write(trans
));
379 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
380 CheckRes(trans
->Write(&fName
, JACK_PORT_NAME_SIZE
+ 1));
381 CheckRes(trans
->Write(&fPortType
, JACK_PORT_TYPE_SIZE
+ 1));
382 CheckRes(trans
->Write(&fFlags
, sizeof(unsigned int)));
383 CheckRes(trans
->Write(&fBufferSize
, sizeof(unsigned int)));
389 \brief PortRegister result.
392 struct JackPortRegisterResult
: public JackResult
395 jack_port_id_t fPortIndex
;
397 JackPortRegisterResult(): JackResult(), fPortIndex(NO_PORT
)
400 int Read(JackChannelTransaction
* trans
)
402 CheckRes(JackResult::Read(trans
));
403 return trans
->Read(&fPortIndex
, sizeof(jack_port_id_t
));
406 int Write(JackChannelTransaction
* trans
)
408 CheckRes(JackResult::Write(trans
));
409 return trans
->Write(&fPortIndex
, sizeof(jack_port_id_t
));
414 \brief PortUnregister request.
417 struct JackPortUnRegisterRequest
: public JackRequest
421 jack_port_id_t fPortIndex
;
423 JackPortUnRegisterRequest()
425 JackPortUnRegisterRequest(int refnum
, jack_port_id_t index
)
426 : JackRequest(JackRequest::kUnRegisterPort
), fRefNum(refnum
), fPortIndex(index
)
429 int Read(JackChannelTransaction
* trans
)
431 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
432 CheckRes(trans
->Read(&fPortIndex
, sizeof(jack_port_id_t
)));
436 int Write(JackChannelTransaction
* trans
)
438 CheckRes(JackRequest::Write(trans
));
439 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
440 CheckRes(trans
->Write(&fPortIndex
, sizeof(jack_port_id_t
)));
446 \brief PortConnectName request.
449 struct JackPortConnectNameRequest
: public JackRequest
453 char fSrc
[JACK_PORT_NAME_SIZE
+ 1];
454 char fDst
[JACK_PORT_NAME_SIZE
+ 1];
456 JackPortConnectNameRequest()
458 JackPortConnectNameRequest(int refnum
, const char* src_name
, const char* dst_name
)
459 : JackRequest(JackRequest::kConnectNamePorts
), fRefNum(refnum
)
461 strcpy(fSrc
, src_name
);
462 strcpy(fDst
, dst_name
);
465 int Read(JackChannelTransaction
* trans
)
467 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
468 CheckRes(trans
->Read(&fSrc
, JACK_PORT_NAME_SIZE
+ 1));
469 CheckRes(trans
->Read(&fDst
, JACK_PORT_NAME_SIZE
+ 1));
474 int Write(JackChannelTransaction
* trans
)
476 CheckRes(JackRequest::Write(trans
));
477 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
478 CheckRes(trans
->Write(&fSrc
, JACK_PORT_NAME_SIZE
+ 1));
479 CheckRes(trans
->Write(&fDst
, JACK_PORT_NAME_SIZE
+ 1));
485 \brief PortDisconnectName request.
488 struct JackPortDisconnectNameRequest
: public JackRequest
492 char fSrc
[JACK_PORT_NAME_SIZE
+ 1];
493 char fDst
[JACK_PORT_NAME_SIZE
+ 1];
495 JackPortDisconnectNameRequest()
497 JackPortDisconnectNameRequest(int refnum
, const char* src_name
, const char* dst_name
)
498 : JackRequest(JackRequest::kDisconnectNamePorts
), fRefNum(refnum
)
500 strcpy(fSrc
, src_name
);
501 strcpy(fDst
, dst_name
);
504 int Read(JackChannelTransaction
* trans
)
506 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
507 CheckRes(trans
->Read(&fSrc
, JACK_PORT_NAME_SIZE
+ 1));
508 CheckRes(trans
->Read(&fDst
, JACK_PORT_NAME_SIZE
+ 1));
512 int Write(JackChannelTransaction
* trans
)
514 CheckRes(JackRequest::Write(trans
));
515 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
516 CheckRes(trans
->Write(&fSrc
, JACK_PORT_NAME_SIZE
+ 1));
517 CheckRes(trans
->Write(&fDst
, JACK_PORT_NAME_SIZE
+ 1));
523 \brief PortConnect request.
526 struct JackPortConnectRequest
: public JackRequest
533 JackPortConnectRequest()
535 JackPortConnectRequest(int refnum
, jack_port_id_t src
, jack_port_id_t dst
)
536 : JackRequest(JackRequest::kConnectPorts
), fRefNum(refnum
), fSrc(src
), fDst(dst
)
539 int Read(JackChannelTransaction
* trans
)
541 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
542 CheckRes(trans
->Read(&fSrc
, sizeof(jack_port_id_t
)));
543 CheckRes(trans
->Read(&fDst
, sizeof(jack_port_id_t
)));
547 int Write(JackChannelTransaction
* trans
)
549 CheckRes(JackRequest::Write(trans
));
550 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
551 CheckRes(trans
->Write(&fSrc
, sizeof(jack_port_id_t
)));
552 CheckRes(trans
->Write(&fDst
, sizeof(jack_port_id_t
)));
559 \brief PortDisconnect request.
562 struct JackPortDisconnectRequest
: public JackRequest
569 JackPortDisconnectRequest()
571 JackPortDisconnectRequest(int refnum
, jack_port_id_t src
, jack_port_id_t dst
)
572 : JackRequest(JackRequest::kDisconnectPorts
), fRefNum(refnum
), fSrc(src
), fDst(dst
)
575 int Read(JackChannelTransaction
* trans
)
577 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
578 CheckRes(trans
->Read(&fSrc
, sizeof(jack_port_id_t
)));
579 CheckRes(trans
->Read(&fDst
, sizeof(jack_port_id_t
)));
583 int Write(JackChannelTransaction
* trans
)
585 CheckRes(JackRequest::Write(trans
));
586 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
587 CheckRes(trans
->Write(&fSrc
, sizeof(jack_port_id_t
)));
588 CheckRes(trans
->Write(&fDst
, sizeof(jack_port_id_t
)));
595 \brief PortRename request.
598 struct JackPortRenameRequest
: public JackRequest
602 jack_port_id_t fPort
;
603 char fName
[JACK_PORT_NAME_SIZE
+ 1];
605 JackPortRenameRequest()
607 JackPortRenameRequest(int refnum
, jack_port_id_t port
, const char* name
)
608 : JackRequest(JackRequest::kPortRename
), fRefNum(refnum
), fPort(port
)
613 int Read(JackChannelTransaction
* trans
)
615 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
616 CheckRes(trans
->Read(&fPort
, sizeof(jack_port_id_t
)));
617 CheckRes(trans
->Read(&fName
, JACK_PORT_NAME_SIZE
+ 1));
621 int Write(JackChannelTransaction
* trans
)
623 CheckRes(JackRequest::Write(trans
));
624 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
625 CheckRes(trans
->Write(&fPort
, sizeof(jack_port_id_t
)));
626 CheckRes(trans
->Write(&fName
, JACK_PORT_NAME_SIZE
+ 1));
633 \brief SetBufferSize request.
636 struct JackSetBufferSizeRequest
: public JackRequest
639 jack_nframes_t fBufferSize
;
641 JackSetBufferSizeRequest()
643 JackSetBufferSizeRequest(jack_nframes_t buffer_size
)
644 : JackRequest(JackRequest::kSetBufferSize
), fBufferSize(buffer_size
)
647 int Read(JackChannelTransaction
* trans
)
649 return trans
->Read(&fBufferSize
, sizeof(jack_nframes_t
));
652 int Write(JackChannelTransaction
* trans
)
654 CheckRes(JackRequest::Write(trans
));
655 return trans
->Write(&fBufferSize
, sizeof(jack_nframes_t
));
660 \brief SetFreeWheel request.
663 struct JackSetFreeWheelRequest
: public JackRequest
668 JackSetFreeWheelRequest()
670 JackSetFreeWheelRequest(int onoff
)
671 : JackRequest(JackRequest::kSetFreeWheel
), fOnOff(onoff
)
674 int Read(JackChannelTransaction
* trans
)
676 return trans
->Read(&fOnOff
, sizeof(int));
679 int Write(JackChannelTransaction
* trans
)
681 CheckRes(JackRequest::Write(trans
));
682 return trans
->Write(&fOnOff
, sizeof(int));
687 \brief ReleaseTimebase request.
690 struct JackReleaseTimebaseRequest
: public JackRequest
695 JackReleaseTimebaseRequest()
697 JackReleaseTimebaseRequest(int refnum
)
698 : JackRequest(JackRequest::kReleaseTimebase
), fRefNum(refnum
)
701 int Read(JackChannelTransaction
* trans
)
703 return trans
->Read(&fRefNum
, sizeof(int));
706 int Write(JackChannelTransaction
* trans
)
708 CheckRes(JackRequest::Write(trans
));
709 return trans
->Write(&fRefNum
, sizeof(int));
714 \brief SetTimebaseCallback request.
717 struct JackSetTimebaseCallbackRequest
: public JackRequest
723 JackSetTimebaseCallbackRequest()
725 JackSetTimebaseCallbackRequest(int refnum
, int conditional
)
726 : JackRequest(JackRequest::kSetTimebaseCallback
), fRefNum(refnum
), fConditionnal(conditional
)
729 int Read(JackChannelTransaction
* trans
)
731 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
732 return trans
->Read(&fConditionnal
, sizeof(int));
735 int Write(JackChannelTransaction
* trans
)
737 CheckRes(JackRequest::Write(trans
));
738 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
739 return trans
->Write(&fConditionnal
, sizeof(int));
744 \brief GetInternalClientName request.
747 struct JackGetInternalClientNameRequest
: public JackRequest
753 JackGetInternalClientNameRequest()
755 JackGetInternalClientNameRequest(int refnum
, int int_ref
)
756 : JackRequest(JackRequest::kGetInternalClientName
), fRefNum(refnum
), fIntRefNum(int_ref
)
759 int Read(JackChannelTransaction
* trans
)
761 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
762 return trans
->Read(&fIntRefNum
, sizeof(int));
765 int Write(JackChannelTransaction
* trans
)
767 CheckRes(JackRequest::Write(trans
));
768 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
769 return trans
->Write(&fIntRefNum
, sizeof(int));
774 \brief GetInternalClient result.
777 struct JackGetInternalClientNameResult
: public JackResult
780 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
782 JackGetInternalClientNameResult(): JackResult()
784 JackGetInternalClientNameResult(int32_t result
, const char* name
)
787 snprintf(fName
, sizeof(fName
), "%s", name
);
790 int Read(JackChannelTransaction
* trans
)
792 CheckRes(JackResult::Read(trans
));
793 CheckRes(trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
797 int Write(JackChannelTransaction
* trans
)
799 CheckRes(JackResult::Write(trans
));
800 CheckRes(trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
806 \brief InternalClientHandle request.
809 struct JackInternalClientHandleRequest
: public JackRequest
813 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
815 JackInternalClientHandleRequest()
817 JackInternalClientHandleRequest(int refnum
, const char* client_name
)
818 : JackRequest(JackRequest::kInternalClientHandle
), fRefNum(refnum
)
820 snprintf(fName
, sizeof(fName
), "%s", client_name
);
823 int Read(JackChannelTransaction
* trans
)
825 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
826 return trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1);
829 int Write(JackChannelTransaction
* trans
)
831 CheckRes(JackRequest::Write(trans
));
832 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
833 return trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1);
838 \brief InternalClientHandle result.
841 struct JackInternalClientHandleResult
: public JackResult
847 JackInternalClientHandleResult(): JackResult()
849 JackInternalClientHandleResult(int32_t result
, int status
, int int_ref
)
850 : JackResult(result
), fStatus(status
), fIntRefNum(int_ref
)
853 int Read(JackChannelTransaction
* trans
)
855 CheckRes(JackResult::Read(trans
));
856 CheckRes(trans
->Read(&fStatus
, sizeof(int)));
857 CheckRes(trans
->Read(&fIntRefNum
, sizeof(int)));
861 int Write(JackChannelTransaction
* trans
)
863 CheckRes(JackResult::Write(trans
));
864 CheckRes(trans
->Write(&fStatus
, sizeof(int)));
865 CheckRes(trans
->Write(&fIntRefNum
, sizeof(int)));
871 \brief InternalClientLoad request.
874 struct JackInternalClientLoadRequest
: public JackRequest
882 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
883 char fDllName
[MAX_PATH
+ 1];
884 char fLoadInitName
[JACK_LOAD_INIT_LIMIT
+ 1];
887 JackInternalClientLoadRequest()
889 JackInternalClientLoadRequest(int refnum
, const char* client_name
, const char* so_name
, const char* objet_data
, int options
)
890 : JackRequest(JackRequest::kInternalClientLoad
), fRefNum(refnum
), fOptions(options
)
892 snprintf(fName
, sizeof(fName
), "%s", client_name
);
893 snprintf(fDllName
, sizeof(fDllName
), "%s", so_name
);
894 snprintf(fLoadInitName
, sizeof(fLoadInitName
), "%s", objet_data
);
897 int Read(JackChannelTransaction
* trans
)
899 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
900 CheckRes(trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
901 CheckRes(trans
->Read(&fDllName
, MAX_PATH
+ 1));
902 CheckRes(trans
->Read(&fLoadInitName
, JACK_LOAD_INIT_LIMIT
+ 1));
903 return trans
->Read(&fOptions
, sizeof(int));
906 int Write(JackChannelTransaction
* trans
)
908 CheckRes(JackRequest::Write(trans
));
909 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
910 CheckRes(trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
911 CheckRes(trans
->Write(&fDllName
, MAX_PATH
+ 1));
912 CheckRes(trans
->Write(&fLoadInitName
, JACK_LOAD_INIT_LIMIT
+ 1));
913 return trans
->Write(&fOptions
, sizeof(int));
918 \brief InternalClientLoad result.
921 struct JackInternalClientLoadResult
: public JackResult
927 JackInternalClientLoadResult(): JackResult()
929 JackInternalClientLoadResult(int32_t result
, int status
, int int_ref
)
930 : JackResult(result
), fStatus(status
), fIntRefNum(int_ref
)
933 int Read(JackChannelTransaction
* trans
)
935 CheckRes(JackResult::Read(trans
));
936 CheckRes(trans
->Read(&fStatus
, sizeof(int)));
937 CheckRes(trans
->Read(&fIntRefNum
, sizeof(int)));
941 int Write(JackChannelTransaction
* trans
)
943 CheckRes(JackResult::Write(trans
));
944 CheckRes(trans
->Write(&fStatus
, sizeof(int)));
945 CheckRes(trans
->Write(&fIntRefNum
, sizeof(int)));
951 \brief InternalClientUnload request.
954 struct JackInternalClientUnloadRequest
: public JackRequest
960 JackInternalClientUnloadRequest()
962 JackInternalClientUnloadRequest(int refnum
, int int_ref
)
963 : JackRequest(JackRequest::kInternalClientUnload
), fRefNum(refnum
), fIntRefNum(int_ref
)
966 int Read(JackChannelTransaction
* trans
)
968 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
969 return trans
->Read(&fIntRefNum
, sizeof(int));
972 int Write(JackChannelTransaction
* trans
)
974 CheckRes(JackRequest::Write(trans
));
975 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
976 return trans
->Write(&fIntRefNum
, sizeof(int));
982 \brief InternalClientLoad result.
985 struct JackInternalClientUnloadResult
: public JackResult
990 JackInternalClientUnloadResult(): JackResult()
992 JackInternalClientUnloadResult(int32_t result
, int status
)
993 : JackResult(result
), fStatus(status
)
996 int Read(JackChannelTransaction
* trans
)
998 CheckRes(JackResult::Read(trans
));
999 CheckRes(trans
->Read(&fStatus
, sizeof(int)));
1003 int Write(JackChannelTransaction
* trans
)
1005 CheckRes(JackResult::Write(trans
));
1006 CheckRes(trans
->Write(&fStatus
, sizeof(int)));
1012 \brief ClientNotification request.
1015 struct JackClientNotificationRequest
: public JackRequest
1022 JackClientNotificationRequest()
1024 JackClientNotificationRequest(int refnum
, int notify
, int value
)
1025 : JackRequest(JackRequest::kNotification
), fRefNum(refnum
), fNotify(notify
), fValue(value
)
1028 int Read(JackChannelTransaction
* trans
)
1030 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
1031 CheckRes(trans
->Read(&fNotify
, sizeof(int)));
1032 CheckRes(trans
->Read(&fValue
, sizeof(int)));
1036 int Write(JackChannelTransaction
* trans
)
1038 CheckRes(JackRequest::Write(trans
));
1039 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
1040 CheckRes(trans
->Write(&fNotify
, sizeof(int)));
1041 CheckRes(trans
->Write(&fValue
, sizeof(int)));
1048 \brief ClientNotification.
1051 struct JackClientNotification
1053 char fName
[JACK_CLIENT_NAME_SIZE
+ 1];
1060 JackClientNotification(): fNotify(-1), fValue1(-1), fValue2(-1)
1062 JackClientNotification(const char* name
, int refnum
, int notify
, int sync
, int value1
, int value2
)
1063 : fRefNum(refnum
), fNotify(notify
), fValue1(value1
), fValue2(value2
), fSync(sync
)
1065 snprintf(fName
, sizeof(fName
), "%s", name
);
1068 int Read(JackChannelTransaction
* trans
)
1070 CheckRes(trans
->Read(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
1071 CheckRes(trans
->Read(&fRefNum
, sizeof(int)));
1072 CheckRes(trans
->Read(&fNotify
, sizeof(int)));
1073 CheckRes(trans
->Read(&fValue1
, sizeof(int)));
1074 CheckRes(trans
->Read(&fValue2
, sizeof(int)));
1075 CheckRes(trans
->Read(&fSync
, sizeof(int)));
1079 int Write(JackChannelTransaction
* trans
)
1081 CheckRes(trans
->Write(&fName
, JACK_CLIENT_NAME_SIZE
+ 1));
1082 CheckRes(trans
->Write(&fRefNum
, sizeof(int)));
1083 CheckRes(trans
->Write(&fNotify
, sizeof(int)));
1084 CheckRes(trans
->Write(&fValue1
, sizeof(int)));
1085 CheckRes(trans
->Write(&fValue2
, sizeof(int)));
1086 CheckRes(trans
->Write(&fSync
, sizeof(int)));
1092 } // end of namespace