Commit 897d9ee6 authored by sletz's avatar sletz
Browse files

Cleanup in NetJack2 transport handing code.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@3396 0c269be4-1314-0410-8aa9-9f06e86f4224
parent 0bef67a3
......@@ -260,7 +260,7 @@ namespace Jack
}
//transport---------------------------------------------------------------------------
int JackNetAdapter::DecodeTransportData()
void JackNetAdapter::DecodeTransportData()
{
//TODO : we need here to get the actual timebase master to eventually release it from its duty (see JackNetDriver)
......@@ -288,11 +288,9 @@ namespace Jack
break;
}
}
return 0;
}
int JackNetAdapter::EncodeTransportData()
void JackNetAdapter::EncodeTransportData()
{
//is there a timebase master change ?
int refnum = -1;
......@@ -326,8 +324,6 @@ namespace Jack
if ( fReturnTransportData.fNewState )
jack_info ( "Sending transport state '%s'.", GetTransportState ( fReturnTransportData.fState ) );
fLastTransportState = fReturnTransportData.fState;
return 0;
}
//read/write operations---------------------------------------------------------------
......@@ -338,17 +334,14 @@ namespace Jack
if ( SyncRecv() == SOCKET_ERROR )
return 0;
if ( DecodeSyncPacket() < 0 )
return 0;
DecodeSyncPacket();
return DataRecv();
}
int JackNetAdapter::Write()
{
if ( EncodeSyncPacket() < 0 )
return 0;
EncodeSyncPacket();
if ( SyncSend() == SOCKET_ERROR )
return SOCKET_ERROR;
......
......@@ -48,8 +48,8 @@ namespace Jack
JackThread fThread;
//transport
int EncodeTransportData();
int DecodeTransportData();
void EncodeTransportData();
void DecodeTransportData();
public:
......
......@@ -381,7 +381,7 @@ namespace Jack
}
//transport---------------------------------------------------------------------------
int JackNetDriver::DecodeTransportData()
void JackNetDriver::DecodeTransportData()
{
//is there a new timebase master on the net master ?
// - release timebase master only if it's a non-conditional request
......@@ -397,9 +397,10 @@ namespace Jack
jack_info ( "The NetMaster is now the new timebase master." );
}
//is there a tranport state change to handle ?
//is there a transport state change to handle ?
if ( fSendTransportData.fNewState && ( fSendTransportData.fState != fEngineControl->fTransport.GetState() ) )
{
switch ( fSendTransportData.fState )
{
case JackTransportStopped :
......@@ -419,11 +420,9 @@ namespace Jack
break;
}
}
return 0;
}
int JackNetDriver::EncodeTransportData()
void JackNetDriver::EncodeTransportData()
{
//is there a timebase master change ?
int refnum;
......@@ -457,8 +456,6 @@ namespace Jack
if ( fReturnTransportData.fNewState )
jack_info ( "Sending '%s'.", GetTransportState ( fReturnTransportData.fState ) );
fLastTransportState = fReturnTransportData.fState;
return 0;
}
//driver processes--------------------------------------------------------------------
......@@ -486,9 +483,8 @@ namespace Jack
//decode sync
//if there is an error, don't return -1, it will skip Write() and the network error probably won't be identified
if ( DecodeSyncPacket() < 0 )
return 0;
DecodeSyncPacket();
#ifdef JACK_MONITOR
fNetTimeMon->Add ( ( ( float ) ( GetMicroSeconds() - JackDriver::fBeginDateUst ) / ( float ) fEngineControl->fPeriodUsecs ) * 100.f );
#endif
......@@ -519,9 +515,8 @@ namespace Jack
#endif
//sync
if ( EncodeSyncPacket() < 0 )
return 0;
EncodeSyncPacket();
//send sync
if ( SyncSend() == SOCKET_ERROR )
return SOCKET_ERROR;
......
......@@ -57,8 +57,8 @@ namespace Jack
int FreePorts();
//transport
int EncodeTransportData();
int DecodeTransportData();
void EncodeTransportData();
void DecodeTransportData();
JackMidiBuffer* GetMidiInputBuffer ( int port_index );
JackMidiBuffer* GetMidiOutputBuffer ( int port_index );
......
......@@ -565,39 +565,33 @@ namespace Jack
return rx_bytes;
}
int JackNetMasterInterface::EncodeSyncPacket()
void 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;
if (fParams.fTransportSync) {
EncodeTransportData();
//copy to TxBuffer
memcpy ( fTxData, &fSendTransportData, sizeof ( net_transport_data_t ) );
}
//then others (freewheel etc.)
//...
return 0;
}
int JackNetMasterInterface::DecodeSyncPacket()
void JackNetMasterInterface::DecodeSyncPacket()
{
//this method contains every step of sync packet informations decoding process
//first : transport
if ( fParams.fTransportSync )
{
if (fParams.fTransportSync) {
//copy received transport data to transport data structure
memcpy ( &fReturnTransportData, fRxData, sizeof ( net_transport_data_t ) );
if ( DecodeTransportData() < 0 )
return -1;
DecodeTransportData();
}
//then others
//...
return 0;
}
// JackNetSlaveInterface ************************************************************************************************
......@@ -955,38 +949,32 @@ namespace Jack
}
//network sync------------------------------------------------------------------------
int JackNetSlaveInterface::DecodeSyncPacket()
void JackNetSlaveInterface::DecodeSyncPacket()
{
//this method contains every step of sync packet informations decoding process
//first : transport
if ( fParams.fTransportSync )
{
if (fParams.fTransportSync) {
//copy received transport data to transport data structure
memcpy ( &fSendTransportData, fRxData, sizeof ( net_transport_data_t ) );
if ( DecodeTransportData() < 0 )
return -1;
DecodeTransportData();
}
//then others
//...
return 0;
}
int JackNetSlaveInterface::EncodeSyncPacket()
void JackNetSlaveInterface::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;
if (fParams.fTransportSync) {
EncodeTransportData();
//copy to TxBuffer
memcpy ( fTxData, &fReturnTransportData, sizeof ( net_transport_data_t ) );
}
//then others
//...
return 0;
}
}
......@@ -73,12 +73,12 @@ namespace Jack
virtual bool Init() = 0;
//transport
virtual int EncodeTransportData() = 0;
virtual int DecodeTransportData() = 0;
virtual void EncodeTransportData() = 0;
virtual void DecodeTransportData() = 0;
//sync packet
virtual int EncodeSyncPacket() = 0;
virtual int DecodeSyncPacket() = 0;
virtual void EncodeSyncPacket() = 0;
virtual void DecodeSyncPacket() = 0;
virtual int SyncRecv() = 0;
virtual int SyncSend() = 0;
......@@ -119,8 +119,8 @@ namespace Jack
int DataSend();
//sync packet
int EncodeSyncPacket();
int DecodeSyncPacket();
void EncodeSyncPacket();
void DecodeSyncPacket();
int Send ( size_t size, int flags );
int Recv ( size_t size, int flags );
......@@ -163,8 +163,8 @@ namespace Jack
int DataSend();
//sync packet
int EncodeSyncPacket();
int DecodeSyncPacket();
void EncodeSyncPacket();
void DecodeSyncPacket();
int Recv ( size_t size, int flags );
int Send ( size_t size, int flags );
......
......@@ -245,7 +245,7 @@ namespace Jack
}
//transport---------------------------------------------------------------------------
int JackNetMaster::EncodeTransportData()
void JackNetMaster::EncodeTransportData()
{
//is there a new timebase master ?
//TODO : check if any timebase callback has been called (and if it's conditional or not) and set correct value...
......@@ -260,11 +260,9 @@ namespace Jack
if ( fSendTransportData.fNewState )
jack_info ( "Sending '%s' to '%s'.", GetTransportState ( fSendTransportData.fState ), fParams.fName );
fLastTransportState = fSendTransportData.fState;
}
return 0;
}
int JackNetMaster::DecodeTransportData()
void JackNetMaster::DecodeTransportData()
{
//is there timebase master change ?
if ( fReturnTransportData.fTimebaseMaster != NO_CHANGE )
......@@ -322,7 +320,6 @@ namespace Jack
break;
}
}
return 0;
}
void JackNetMaster::SetTimebaseCallback ( jack_transport_state_t state, jack_nframes_t nframes, jack_position_t* pos, int new_pos, void* arg )
......@@ -385,9 +382,8 @@ namespace Jack
if (IsSynched()) { // only send if connection is "synched"
//encode the first packet
if ( EncodeSyncPacket() < 0 )
return 0;
EncodeSyncPacket();
//send sync
if ( SyncSend() == SOCKET_ERROR )
return SOCKET_ERROR;
......@@ -418,9 +414,8 @@ namespace Jack
#endif
//decode sync
if ( DecodeSyncPacket() < 0 )
return 0;
DecodeSyncPacket();
//receive data
res = DataRecv();
if ( ( res == 0 ) || ( res == SOCKET_ERROR ) )
......
......@@ -68,8 +68,8 @@ namespace Jack
void Exit();
//transport
int EncodeTransportData();
int DecodeTransportData();
void EncodeTransportData();
void DecodeTransportData();
int Process();
void TimebaseCallback ( jack_position_t* pos );
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment