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 34 #define SLAVE_SETUP_RETRY 5 36 #define MANAGER_INIT_TIMEOUT 1000000 * 2 // in usec 37 #define MASTER_INIT_TIMEOUT 1000000 * 10 // in usec 38 #define SLAVE_INIT_TIMEOUT 1000000 * 1 // in usec 39 #define PACKET_TIMEOUT 500000 // in usec 41 #define NETWORK_DEFAULT_LATENCY 2 42 #define NETWORK_MAX_LATENCY 30 // maximum possible latency in network master/slave loop 51 friend class JackNetExt;
62 char fMulticastIP[32];
85 int SetNetBufferSize();
86 void FreeNetworkBuffers();
89 virtual bool SetParams();
90 virtual bool Init() = 0;
93 virtual void EncodeTransportData() = 0;
94 virtual void DecodeTransportData() = 0;
97 virtual void EncodeSyncPacket(
int frames = -1) = 0;
98 virtual void DecodeSyncPacket(
int& frames) = 0;
100 virtual int SyncRecv() = 0;
101 virtual int SyncSend() = 0;
102 virtual int DataRecv() = 0;
103 virtual int DataSend() = 0;
105 virtual int Send(
size_t size,
int flags) = 0;
106 virtual int Recv(
size_t size,
int flags) = 0;
108 virtual void FatalRecvError() = 0;
109 virtual void FatalSendError() = 0;
111 int MidiSend(
NetMidiBuffer* buffer,
int midi_channnels,
int audio_channels);
119 void SetRcvTimeOut();
120 void SetPacketTimeOut(
int time_out)
123 fPacketTimeOut = time_out;
149 int fCurrentCycleOffset;
165 void EncodeSyncPacket(
int frames = -1);
166 void DecodeSyncPacket(
int& frames);
168 int Send(
size_t size,
int flags);
169 int Recv(
size_t size,
int flags);
171 void FatalRecvError();
172 void FatalSendError();
179 fCurrentCycleOffset(0),
186 fCurrentCycleOffset(0),
204 static uint fSlaveCounter;
207 bool InitConnection(
int time_out_sec);
208 bool InitRendering();
210 net_status_t SendAvailableToMaster(
int count = INT_MAX);
211 net_status_t SendStartToMaster();
222 void EncodeSyncPacket(
int frames = -1);
223 void DecodeSyncPacket(
int& frames);
225 int Recv(
size_t size,
int flags);
226 int Send(
size_t size,
int flags);
228 void FatalRecvError();
229 void FatalSendError();
248 if (--fSlaveCounter == 0) {
This structure containes master/slave connection parameters, it's used to setup the whole system...