20 #ifndef __JackNetInterface__
21 #define __JackNetInterface__
23 #include "JackNetTool.h"
29 #define DEFAULT_MULTICAST_IP "225.3.19.154"
30 #define DEFAULT_PORT 19000
31 #define DEFAULT_MTU 1500
33 #define SLAVE_SETUP_RETRY 5
35 #define MANAGER_INIT_TIMEOUT 2000000 // in usec
36 #define MASTER_INIT_TIMEOUT 1000000 * 10 // in usec
37 #define SLAVE_INIT_TIMEOUT 1000000 * 10 // in usec
38 #define PACKET_TIMEOUT 500000 // in usec
40 #define NETWORK_MAX_LATENCY 20
57 char fMulticastIP[32];
80 int SetNetBufferSize();
81 void FreeNetworkBuffers();
84 virtual bool SetParams();
85 virtual bool Init() = 0;
88 virtual void EncodeTransportData() = 0;
89 virtual void DecodeTransportData() = 0;
92 virtual void EncodeSyncPacket() = 0;
93 virtual void DecodeSyncPacket() = 0;
95 virtual int SyncRecv() = 0;
96 virtual int SyncSend() = 0;
97 virtual int DataRecv() = 0;
98 virtual int DataSend() = 0;
100 virtual int Send(
size_t size,
int flags) = 0;
101 virtual int Recv(
size_t size,
int flags) = 0;
103 virtual void FatalRecvError() = 0;
104 virtual void FatalSendError() = 0;
106 int MidiSend(
NetMidiBuffer* buffer,
int midi_channnels,
int audio_channels);
114 void SetRcvTimeOut();
138 int fCurrentCycleOffset;
153 void EncodeSyncPacket();
154 void DecodeSyncPacket();
156 int Send(
size_t size,
int flags);
157 int Recv(
size_t size,
int flags);
161 void FatalRecvError();
162 void FatalSendError();
169 :
JackNetInterface(params, socket, multicast_ip), fRunning(
false), fCurrentCycleOffset(0), fMaxCycleOffset(0)
185 static uint fSlaveCounter;
188 bool InitConnection(
int time_out_sec);
189 bool InitRendering();
191 net_status_t SendAvailableToMaster(
long count = LONG_MAX);
192 net_status_t SendStartToMaster();
203 void EncodeSyncPacket();
204 void DecodeSyncPacket();
206 int Recv(
size_t size,
int flags);
207 int Send(
size_t size,
int flags);
209 void FatalRecvError();
210 void FatalSendError();
229 if (--fSlaveCounter == 0) {
This structure containes master/slave connection parameters, it's used to setup the whole system...