diff --git a/common/JackNetDriver.cpp b/common/JackNetDriver.cpp index f674d882..48474ff4 100644 --- a/common/JackNetDriver.cpp +++ b/common/JackNetDriver.cpp @@ -35,12 +35,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. namespace Jack { JackNetDriver::JackNetDriver ( const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, - const char* ip, size_t port, int midi_input_ports, int midi_output_ports, const char* net_name ) + const char* ip, int port, int midi_input_ports, int midi_output_ports, const char* net_name ) : JackAudioDriver ( name, alias, engine, table ) { fMulticastIP = new char[strlen ( ip ) + 1]; strcpy ( fMulticastIP, ip ); - fPort = port; + fUDPPort = port; fParams.fSendMidiChannels = midi_input_ports; fParams.fReturnMidiChannels = midi_output_ports; strcpy ( fParams.fName, net_name ); @@ -150,13 +150,13 @@ namespace Jack //set the multicast address mcast_addr.sin_family = AF_INET; - mcast_addr.sin_port = htons ( fPort ); + mcast_addr.sin_port = htons ( fUDPPort ); inet_aton ( fMulticastIP, &mcast_addr.sin_addr ); memset ( &mcast_addr.sin_zero, 0, 8 ); //set the listening address listen_addr.sin_family = AF_INET; - listen_addr.sin_port = htons ( fPort ); + listen_addr.sin_port = htons ( fUDPPort ); listen_addr.sin_addr.s_addr = htonl ( INADDR_ANY ); memset ( &listen_addr.sin_zero, 0, 8 ); @@ -394,9 +394,9 @@ namespace Jack fGraphManager->ReleasePort ( fClientControl->fRefNum, fCapturePortList[port_index] ); for ( int port_index = 0; port_index < fPlaybackChannels; port_index++ ) fGraphManager->ReleasePort ( fClientControl->fRefNum, fPlaybackPortList[port_index] ); - for ( int port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) fGraphManager->ReleasePort ( fClientControl->fRefNum, fMidiCapturePortList[port_index] ); - for ( int port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) fGraphManager->ReleasePort ( fClientControl->fRefNum, fMidiPlaybackPortList[port_index] ); return 0; } @@ -456,12 +456,12 @@ namespace Jack int JackNetDriver::Read() { int rx_bytes; - size_t recvd_midi_pckt = 0; + uint recvd_midi_pckt = 0; packet_header_t* rx_head = reinterpret_cast ( fRxBuffer ); fRxHeader.fIsLastPckt = 'n'; //buffers - for ( int port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) fNetMidiCaptureBuffer->fPortBuffer[port_index] = GetMidiInputBuffer ( port_index ); for ( int port_index = 0; port_index < fCaptureChannels; port_index++ ) fNetAudioCaptureBuffer->fPortBuffer[port_index] = GetInputBuffer ( port_index ); @@ -525,7 +525,7 @@ namespace Jack fTxHeader.fIsLastPckt = 'n'; //buffers - for ( int port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) fNetMidiPlaybackBuffer->fPortBuffer[port_index] = GetMidiOutputBuffer ( port_index ); for ( int port_index = 0; port_index < fPlaybackChannels; port_index++ ) fNetAudioPlaybackBuffer->fPortBuffer[port_index] = GetOutputBuffer ( port_index ); @@ -536,7 +536,7 @@ namespace Jack fTxHeader.fDataType = 'm'; fTxHeader.fMidiDataSize = fNetMidiPlaybackBuffer->RenderFromJackPorts(); fTxHeader.fNMidiPckt = GetNMidiPckt ( &fParams, fTxHeader.fMidiDataSize ); - for ( size_t subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ ) + for ( uint subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ ) { fTxHeader.fSubCycle = subproc; if ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fReturnAudioChannels ) @@ -551,7 +551,7 @@ namespace Jack if ( fParams.fReturnAudioChannels ) { fTxHeader.fDataType = 'a'; - for ( size_t subproc = 0; subproc < fNSubProcess; subproc++ ) + for ( uint subproc = 0; subproc < fNSubProcess; subproc++ ) { fTxHeader.fSubCycle = subproc; if ( subproc == ( fNSubProcess - 1 ) ) @@ -577,7 +577,7 @@ namespace Jack desc->nparams = 7; desc->params = ( jack_driver_param_desc_t* ) calloc ( desc->nparams, sizeof ( jack_driver_param_desc_t ) ); - size_t i = 0; + int i = 0; strcpy ( desc->params[i].name, "multicast_ip" ); desc->params[i].character = 'a'; desc->params[i].type = JackDriverParamString; @@ -588,8 +588,8 @@ namespace Jack i++; strcpy ( desc->params[i].name, "udp_net_port" ); desc->params[i].character = 'p'; - desc->params[i].type = JackDriverParamUInt; - desc->params[i].value.ui = 19000U; + desc->params[i].type = JackDriverParamInt; + desc->params[i].value.i = 19000; strcpy ( desc->params[i].short_desc, "UDP port" ); strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); @@ -604,7 +604,7 @@ namespace Jack i++; strcpy ( desc->params[i].name, "output_ports" ); desc->params[i].character = 'P'; - desc->params[i].type = JackDriverParamUInt; + desc->params[i].type = JackDriverParamInt; desc->params[i].value.i = 2; strcpy ( desc->params[i].short_desc, "Number of audio output ports" ); strcpy ( desc->params[i].long_desc, desc->params[i].short_desc ); @@ -641,7 +641,7 @@ namespace Jack const char* multicast_ip = DEFAULT_MULTICAST_IP; char name[JACK_CLIENT_NAME_SIZE]; gethostname ( name, JACK_CLIENT_NAME_SIZE ); - jack_nframes_t udp_port = DEFAULT_PORT; + int udp_port = DEFAULT_PORT; jack_nframes_t period_size = 128; jack_nframes_t sample_rate = 48000; int audio_capture_ports = 2; diff --git a/common/JackNetDriver.h b/common/JackNetDriver.h index 8b0e8b0a..e44b2be9 100644 --- a/common/JackNetDriver.h +++ b/common/JackNetDriver.h @@ -32,10 +32,10 @@ namespace Jack private: session_params_t fParams; char* fMulticastIP; - size_t fPort; + int fUDPPort; int fSockfd; struct sockaddr_in fMasterAddr; - size_t fNSubProcess; + uint fNSubProcess; jack_port_id_t* fMidiCapturePortList; jack_port_id_t* fMidiPlaybackPortList; @@ -72,7 +72,7 @@ namespace Jack public: JackNetDriver ( const char* name, const char* alias, JackLockedEngine* engine, JackSynchro* table, - const char* ip, size_t port, int midi_input_ports, int midi_output_ports, const char* master_name ); + const char* ip, int port, int midi_input_ports, int midi_output_ports, const char* master_name ); ~JackNetDriver(); int Open ( jack_nframes_t frames_per_cycle, jack_nframes_t rate, bool capturing, bool playing, diff --git a/common/JackNetManager.cpp b/common/JackNetManager.cpp index 3a8d370e..bef748b7 100644 --- a/common/JackNetManager.cpp +++ b/common/JackNetManager.cpp @@ -48,17 +48,17 @@ namespace Jack //jack audio ports fAudioCapturePorts = new jack_port_t* [fParams.fSendAudioChannels]; - for ( int port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) fAudioCapturePorts[port_index] = NULL; fAudioPlaybackPorts = new jack_port_t* [fParams.fReturnAudioChannels]; - for ( int port_index = 0; port_index < fParams.fReturnAudioChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fReturnAudioChannels; port_index++ ) fAudioPlaybackPorts[port_index] = NULL; //jack midi ports fMidiCapturePorts = new jack_port_t* [fParams.fSendMidiChannels]; - for ( int port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) fMidiCapturePorts[port_index] = NULL; fMidiPlaybackPorts = new jack_port_t* [fParams.fReturnMidiChannels]; - for ( int port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) + for ( uint port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) fMidiPlaybackPorts[port_index] = NULL; //TX header init @@ -190,7 +190,7 @@ namespace Jack jack_set_process_callback ( fJackClient, SetProcess, this ); //port registering - int i; + uint i; char name[24]; //audio for ( i = 0; i < fParams.fSendAudioChannels; i++ ) @@ -242,16 +242,17 @@ namespace Jack void JackNetMaster::FreePorts() { jack_log ( "JackNetMaster::FreePorts, ID %u", fParams.fID ); - for ( int port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) + uint port_index; + for ( port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) if ( fAudioCapturePorts[port_index] ) jack_port_unregister ( fJackClient, fAudioCapturePorts[port_index] ); - for ( int port_index = 0; port_index < fParams.fReturnAudioChannels; port_index++ ) + for ( port_index = 0; port_index < fParams.fReturnAudioChannels; port_index++ ) if ( fAudioPlaybackPorts[port_index] ) jack_port_unregister ( fJackClient, fAudioPlaybackPorts[port_index] ); - for ( int port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) + for ( port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) if ( fMidiCapturePorts[port_index] ) jack_port_unregister ( fJackClient, fMidiCapturePorts[port_index] ); - for ( int port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) + for ( port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) if ( fMidiPlaybackPorts[port_index] ) jack_port_unregister ( fJackClient, fMidiPlaybackPorts[port_index] ); } @@ -340,16 +341,17 @@ namespace Jack packet_header_t* rx_head = reinterpret_cast ( fRxBuffer ); //buffers - for ( int port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) + uint port_index; + for ( port_index = 0; port_index < fParams.fSendMidiChannels; port_index++ ) fNetMidiCaptureBuffer->fPortBuffer[port_index] = static_cast ( jack_port_get_buffer ( fMidiCapturePorts[port_index], fParams.fPeriodSize ) ); - for ( int port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) + for ( port_index = 0; port_index < fParams.fSendAudioChannels; port_index++ ) fNetAudioCaptureBuffer->fPortBuffer[port_index] = static_cast ( jack_port_get_buffer ( fAudioCapturePorts[port_index], fParams.fPeriodSize ) ); - for ( int port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) + for ( port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) fNetMidiPlaybackBuffer->fPortBuffer[port_index] = static_cast ( jack_port_get_buffer ( fMidiPlaybackPorts[port_index], fParams.fPeriodSize ) ); - for ( int port_index = 0; port_index < fParams.fReturnAudioChannels; port_index++ ) + for ( port_index = 0; port_index < fParams.fReturnAudioChannels; port_index++ ) fNetAudioPlaybackBuffer->fPortBuffer[port_index] = static_cast ( jack_port_get_buffer ( fAudioPlaybackPorts[port_index], fParams.fPeriodSize ) ); @@ -368,7 +370,7 @@ namespace Jack fTxHeader.fDataType = 'm'; fTxHeader.fMidiDataSize = fNetMidiCaptureBuffer->RenderFromJackPorts(); fTxHeader.fNMidiPckt = GetNMidiPckt ( &fParams, fTxHeader.fMidiDataSize ); - for ( size_t subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ ) + for ( uint subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ ) { fTxHeader.fSubCycle = subproc; if ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fSendAudioChannels ) @@ -385,7 +387,7 @@ namespace Jack if ( fParams.fSendAudioChannels ) { fTxHeader.fDataType = 'a'; - for ( size_t subproc = 0; subproc < fNSubProcess; subproc++ ) + for ( uint subproc = 0; subproc < fNSubProcess; subproc++ ) { fTxHeader.fSubCycle = subproc; if ( subproc == ( fNSubProcess - 1 ) ) @@ -444,7 +446,7 @@ namespace Jack fManagerClient = client; fManagerName = jack_get_client_name ( fManagerClient ); fMCastIP = DEFAULT_MULTICAST_IP; - fPort = DEFAULT_PORT; + fUDPPort = DEFAULT_PORT; fGlobalID = 0; fRunning = true; @@ -479,7 +481,7 @@ namespace Jack struct timeval timeout; timeout.tv_sec = 2; timeout.tv_usec = 0; - size_t attempt = 0; + int attempt = 0; //network int mcast_sockfd; @@ -501,7 +503,7 @@ namespace Jack //set the multicast address mcast_addr.sin_family = AF_INET; - mcast_addr.sin_port = htons ( fPort ); + mcast_addr.sin_port = htons ( fUDPPort ); if ( inet_aton ( fMCastIP, &mcast_addr.sin_addr ) < 0 ) { jack_error ( "Cant set multicast address : %s", strerror ( errno ) ); @@ -617,7 +619,7 @@ namespace Jack sprintf ( params.fName, "%s-%u", params.fName, params.fID ); } - master_list_it_t JackNetMasterManager::FindMaster ( size_t id ) + master_list_it_t JackNetMasterManager::FindMaster ( uint32_t id ) { jack_log ( "JackNetMasterManager::FindMaster, ID %u.", id ); master_list_it_t it; diff --git a/common/JackNetManager.h b/common/JackNetManager.h index e09a27c5..8fb1d32a 100644 --- a/common/JackNetManager.h +++ b/common/JackNetManager.h @@ -41,8 +41,8 @@ namespace Jack struct sockaddr_in fAddr; struct sockaddr_in fMcastAddr; int fSockfd; - size_t fNSubProcess; - size_t fNetJumpCnt; + uint fNSubProcess; + int fNetJumpCnt; bool fRunning; jack_client_t* fJackClient; @@ -93,15 +93,15 @@ namespace Jack jack_client_t* fManagerClient; const char* fManagerName; const char* fMCastIP; + int fUDPPort; pthread_t fManagerThread; master_list_t fMasterList; - size_t fGlobalID; + uint32_t fGlobalID; bool fRunning; - size_t fPort; void Run(); JackNetMaster* MasterInit ( session_params_t& params, struct sockaddr_in& address, struct sockaddr_in& mcast_addr ); - master_list_it_t FindMaster ( size_t client_id ); + master_list_it_t FindMaster ( uint32_t client_id ); void KillMaster ( session_params_t* params ); void SetSlaveName ( session_params_t& params ); int Process(); diff --git a/common/JackNetTool.cpp b/common/JackNetTool.cpp index 7ac8ffda..14d8f542 100644 --- a/common/JackNetTool.cpp +++ b/common/JackNetTool.cpp @@ -35,7 +35,7 @@ namespace Jack { for ( int port_index = 0; port_index < fNPorts; port_index++ ) { - for ( size_t event = 0; event < fPortBuffer[port_index]->event_count; event++ ) + for ( uint event = 0; event < fPortBuffer[port_index]->event_count; event++ ) if ( fPortBuffer[port_index]->IsValid() ) jack_info ( "port %d : midi event %u/%u -> time : %u, size : %u", port_index + 1, event + 1, fPortBuffer[port_index]->event_count, @@ -46,7 +46,7 @@ namespace Jack int NetMidiBuffer::RenderFromJackPorts() { int pos = 0; - int copy_size; + size_t copy_size; for ( int port_index = 0; port_index < fNPorts; port_index++ ) { copy_size = sizeof ( JackMidiBuffer ) + fPortBuffer[port_index]->event_count * sizeof ( JackMidiEvent ); @@ -75,13 +75,13 @@ namespace Jack return pos; } - int NetMidiBuffer::RenderFromNetwork ( size_t subcycle, size_t copy_size ) + int NetMidiBuffer::RenderFromNetwork ( int subcycle, size_t copy_size ) { memcpy ( fBuffer + subcycle * fMaxPcktSize, fNetBuffer, copy_size ); return copy_size; } - int NetMidiBuffer::RenderToNetwork ( size_t subcycle, size_t total_size ) + int NetMidiBuffer::RenderToNetwork ( int subcycle, size_t total_size ) { int size = total_size - subcycle * fMaxPcktSize; int copy_size = ( size <= fMaxPcktSize ) ? size : fMaxPcktSize; @@ -113,13 +113,13 @@ namespace Jack return fNPorts * fSubPeriodBytesSize; } - void NetAudioBuffer::RenderFromJackPorts ( size_t subcycle ) + void NetAudioBuffer::RenderFromJackPorts ( int subcycle ) { for ( int port_index = 0; port_index < fNPorts; port_index++ ) memcpy ( fNetBuffer + port_index * fSubPeriodBytesSize, fPortBuffer[port_index] + subcycle * fSubPeriodSize, fSubPeriodBytesSize ); } - void NetAudioBuffer::RenderToJackPorts ( size_t subcycle ) + void NetAudioBuffer::RenderToJackPorts ( int subcycle ) { for ( int port_index = 0; port_index < fNPorts; port_index++ ) memcpy ( fPortBuffer[port_index] + subcycle * fSubPeriodSize, fNetBuffer + port_index * fSubPeriodBytesSize, fSubPeriodBytesSize ); @@ -257,7 +257,7 @@ namespace Jack // Utility ******************************************************************************************************* - EXPORT size_t SetFramesPerPacket ( session_params_t* params ) + EXPORT jack_nframes_t SetFramesPerPacket ( session_params_t* params ) { if ( !params->fSendAudioChannels && !params->fReturnAudioChannels ) return ( params->fFramesPerPacket = params->fPeriodSize ); @@ -267,14 +267,14 @@ namespace Jack return params->fFramesPerPacket; } - EXPORT size_t GetNMidiPckt ( session_params_t* params, size_t data_size ) + EXPORT int GetNMidiPckt ( session_params_t* params, size_t data_size ) { //even if there is no midi data, jack need an empty buffer to know there is no event to read //99% of the cases : all data in one packet if ( data_size <= ( params->fMtu - sizeof ( packet_header_t ) ) ) return 1; //else, get the number of needed packets (simply slice the biiig buffer) - size_t npckt = data_size / ( params->fMtu - sizeof ( packet_header_t ) ); + int npckt = data_size / ( params->fMtu - sizeof ( packet_header_t ) ); if ( data_size % ( params->fMtu - sizeof ( packet_header_t ) ) ) return ++npckt; return npckt; @@ -295,7 +295,7 @@ namespace Jack // Packet ******************************************************************************************************* - EXPORT bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, size_t subcycles ) + EXPORT bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, uint subcycles ) { //ignore first cycle if ( previous->fCycle <= 1 ) diff --git a/common/JackNetTool.h b/common/JackNetTool.h index 7edeb893..f61fc2ce 100644 --- a/common/JackNetTool.h +++ b/common/JackNetTool.h @@ -34,15 +34,15 @@ namespace Jack { char fPacketType[7]; //packet type ('param') char fProtocolVersion; //version - int32_t fPacketID; //indicates the packet type + uint32_t fPacketID; //indicates the packet type char fMasterNetName[256]; //master hostname (network) char fSlaveNetName[256]; //slave hostname (network) uint32_t fMtu; //connection mtu uint32_t fID; //slave's ID - int32_t fSendAudioChannels; //number of master->slave channels - int32_t fReturnAudioChannels; //number of slave->master channels - int32_t fSendMidiChannels; //number of master->slave midi channels - int32_t fReturnMidiChannels; //number of slave->master midi channels + uint32_t fSendAudioChannels; //number of master->slave channels + uint32_t fReturnAudioChannels; //number of slave->master channels + uint32_t fSendMidiChannels; //number of master->slave midi channels + uint32_t fReturnMidiChannels; //number of slave->master midi channels uint32_t fSampleRate; //session sample rate uint32_t fPeriodSize; //period size uint32_t fFramesPerPacket; //complete frames per packet @@ -124,8 +124,8 @@ namespace Jack int RenderFromJackPorts(); int RenderToJackPorts(); //network<->buffer - int RenderFromNetwork ( size_t subcycle, size_t copy_size ); - int RenderToNetwork ( size_t subcycle, size_t copy_size ); + int RenderFromNetwork ( int subcycle, size_t copy_size ); + int RenderToNetwork ( int subcycle, size_t total_size ); }; // audio data ********************************************************************************* @@ -146,8 +146,8 @@ namespace Jack size_t GetSize(); //jack<->buffer - void RenderFromJackPorts ( size_t subcycle ); - void RenderToJackPorts ( size_t subcycle ); + void RenderFromJackPorts ( int subcycle ); + void RenderToJackPorts ( int subcycle ); }; //utility ************************************************************************************* @@ -166,11 +166,11 @@ namespace Jack //set the packet type in a session parameters EXPORT int SetPacketType ( session_params_t* params, sync_packet_type_t packet_type ); //step of network initialization - EXPORT size_t SetFramesPerPacket ( session_params_t* params ); + EXPORT jack_nframes_t SetFramesPerPacket ( session_params_t* params ); //get the midi packet number for a given cycle - EXPORT size_t GetNMidiPckt ( session_params_t* params, size_t data_size ); + EXPORT int GetNMidiPckt ( session_params_t* params, size_t data_size ); //set the recv timeout on a socket EXPORT int SetRxTimeout ( int* sockfd, session_params_t* params ); //check if 'next' packet is really the next after 'previous' - EXPORT bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, size_t subcycles ); + EXPORT bool IsNextPacket ( packet_header_t* previous, packet_header_t* next, int subcycles ); }