diff --git a/ChangeLog b/ChangeLog index 39ee2723..ef1336e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -25,7 +25,8 @@ Michael Voigt 2009-02-23 Stephane Letz - * Another fix in systemdeps.h and types.h: jack_time_t now uniquely defined in types.h. + * Another fix in systemdeps.h and types.h: jack_time_t now uniquely defined in types.h. + * Move generic code and data in JackNetInterface and JackNetMasterInterface classes. 2009-02-20 Stephane Letz diff --git a/common/JackNetInterface.cpp b/common/JackNetInterface.cpp index bf238c53..299c4588 100644 --- a/common/JackNetInterface.cpp +++ b/common/JackNetInterface.cpp @@ -42,6 +42,8 @@ namespace Jack fNetAudioPlaybackBuffer = NULL; fNetMidiCaptureBuffer = NULL; fNetMidiPlaybackBuffer = NULL; + memset(&fSendTransportData, 0, sizeof(net_transport_data_t)); + memset(&fReturnTransportData, 0, sizeof(net_transport_data_t)); } JackNetInterface::JackNetInterface ( const char* multicast_ip, int port ) : fSocket ( multicast_ip, port ) @@ -53,6 +55,8 @@ namespace Jack fNetAudioPlaybackBuffer = NULL; fNetMidiCaptureBuffer = NULL; fNetMidiPlaybackBuffer = NULL; + memset(&fSendTransportData, 0, sizeof(net_transport_data_t)); + memset(&fReturnTransportData, 0, sizeof(net_transport_data_t)); } JackNetInterface::JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ) : fSocket ( socket ) @@ -65,6 +69,8 @@ namespace Jack fNetAudioPlaybackBuffer = NULL; fNetMidiCaptureBuffer = NULL; fNetMidiPlaybackBuffer = NULL; + memset(&fSendTransportData, 0, sizeof(net_transport_data_t)); + memset(&fReturnTransportData, 0, sizeof(net_transport_data_t)); } JackNetInterface::~JackNetInterface() @@ -558,6 +564,41 @@ namespace Jack } return rx_bytes; } + + int JackNetMasterInterface::EncodeSyncPacket() + { + //this method contains every step of sync packet informations coding + //first of all, reset sync packet + memset ( fTxData, 0, fPayloadSize ); + + //then, first step : transport + if ( fParams.fTransportSync ) + { + if ( EncodeTransportData() < 0 ) + return -1; + //copy to TxBuffer + memcpy ( fTxData, &fSendTransportData, sizeof ( net_transport_data_t ) ); + } + //then others (freewheel etc.) + //... + return 0; + } + + int JackNetMasterInterface::DecodeSyncPacket() + { + //this method contains every step of sync packet informations decoding process + //first : transport + if ( fParams.fTransportSync ) + { + //copy received transport data to transport data structure + memcpy ( &fReturnTransportData, fRxData, sizeof ( net_transport_data_t ) ); + if ( DecodeTransportData() < 0 ) + return -1; + } + //then others + //... + return 0; + } // JackNetSlaveInterface ************************************************************************************************ diff --git a/common/JackNetInterface.h b/common/JackNetInterface.h index 40617a16..9d2c95c2 100644 --- a/common/JackNetInterface.h +++ b/common/JackNetInterface.h @@ -40,6 +40,10 @@ namespace Jack //headers packet_header_t fTxHeader; packet_header_t fRxHeader; + + // transport + net_transport_data_t fSendTransportData; + net_transport_data_t fReturnTransportData; //network buffers char* fTxBuffer; @@ -105,11 +109,18 @@ namespace Jack bool Init(); int SetRxTimeout(); void SetParams(); + void Exit(); + int SyncRecv(); int SyncSend(); + int DataRecv(); int DataSend(); + + //sync packet + int EncodeSyncPacket(); + int DecodeSyncPacket(); int Send ( size_t size, int flags ); int Recv ( size_t size, int flags ); @@ -135,10 +146,7 @@ namespace Jack protected: static uint fSlaveCounter; - - net_transport_data_t fSendTransportData; - net_transport_data_t fReturnTransportData; - + bool Init(); bool InitConnection(); bool InitRendering(); diff --git a/common/JackNetManager.cpp b/common/JackNetManager.cpp index a30b77e6..b935d252 100644 --- a/common/JackNetManager.cpp +++ b/common/JackNetManager.cpp @@ -343,41 +343,7 @@ namespace Jack } //sync-------------------------------------------------------------------------------- - int JackNetMaster::EncodeSyncPacket() - { - //this method contains every step of sync packet informations coding - //first of all, reset sync packet - memset ( fTxData, 0, fPayloadSize ); - - //then, first step : transport - if ( fParams.fTransportSync ) - { - if ( EncodeTransportData() < 0 ) - return -1; - //copy to TxBuffer - memcpy ( fTxData, &fSendTransportData, sizeof ( net_transport_data_t ) ); - } - //then others (freewheel etc.) - //... - return 0; - } - - int JackNetMaster::DecodeSyncPacket() - { - //this method contains every step of sync packet informations decoding process - //first : transport - if ( fParams.fTransportSync ) - { - //copy received transport data to transport data structure - memcpy ( &fReturnTransportData, fRxData, sizeof ( net_transport_data_t ) ); - if ( DecodeTransportData() < 0 ) - return -1; - } - //then others - //... - return 0; - } - + bool JackNetMaster::IsSlaveReadyToRoll() { return ( fReturnTransportData.fState == JackTransportNetStarting ); diff --git a/common/JackNetManager.h b/common/JackNetManager.h index a9cb8a37..9d748d34 100644 --- a/common/JackNetManager.h +++ b/common/JackNetManager.h @@ -71,10 +71,6 @@ namespace Jack int EncodeTransportData(); int DecodeTransportData(); - //sync packet - int EncodeSyncPacket(); - int DecodeSyncPacket(); - int Process(); void TimebaseCallback ( jack_position_t* pos );