From 69100b2e551f8257c842e2a7b9c17a39c6d25e65 Mon Sep 17 00:00:00 2001 From: moret Date: Thu, 14 Aug 2008 12:39:41 +0000 Subject: [PATCH] various cleanup. git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@2783 0c269be4-1314-0410-8aa9-9f06e86f4224 --- common/JackNetAdapter.cpp | 2 +- common/JackNetDriver.cpp | 23 +++++---- common/JackNetInterface.cpp | 91 +++++++++++++++++++----------------- common/JackNetInterface.h | 4 +- common/JackNetManager.cpp | 5 +- common/JackNetTool.cpp | 4 +- common/JackNetTool.h | 4 +- common/JackTools.h | 10 ++-- windows/JackNetWinSocket.cpp | 2 + windows/jack_netadapter.cbp | 20 ++++---- windows/jackdmp.workspace | 4 +- 11 files changed, 91 insertions(+), 78 deletions(-) diff --git a/common/JackNetAdapter.cpp b/common/JackNetAdapter.cpp index e17c864b..664d4757 100644 --- a/common/JackNetAdapter.cpp +++ b/common/JackNetAdapter.cpp @@ -111,7 +111,7 @@ namespace Jack int port_index; //display some additional infos - jack_info ( "NetAdapter started in %s mode %s Master's transport sync.", + jack_info ( "Net adapter started in %s mode %s Master's transport sync.", ( fParams.fSlaveSyncMode ) ? "sync" : "async", ( fParams.fTransportSync ) ? "with" : "without" ); //init network connection diff --git a/common/JackNetDriver.cpp b/common/JackNetDriver.cpp index 5cbf6c06..d7771cde 100644 --- a/common/JackNetDriver.cpp +++ b/common/JackNetDriver.cpp @@ -109,12 +109,16 @@ namespace Jack fParams.fSlaveSyncMode = fEngineControl->fSyncMode; //display some additional infos - jack_info ( "NetAdapter started in %s mode %s Master's transport sync.", + jack_info ( "Net driver started in %s mode %s Master's transport sync.", ( fParams.fSlaveSyncMode ) ? "sync" : "async", ( fParams.fTransportSync ) ? "with" : "without" ); + //init network if ( !JackNetSlaveInterface::Init() ) return false;; + //set global paramaters + SetParams(); + //driver parametering JackAudioDriver::SetBufferSize ( fParams.fPeriodSize ); JackAudioDriver::SetSampleRate ( fParams.fSampleRate ); @@ -133,9 +137,6 @@ namespace Jack return false; } - //set global paramaters - SetParams(); - //init done, display parameters SessionParamsDisplay ( &fParams ); @@ -180,6 +181,7 @@ namespace Jack void JackNetDriver::Restart() { jack_log ( "JackNetDriver::Restart" ); + jack_info ( "Restarting driver..." ); delete[] fTxBuffer; fTxBuffer = NULL; @@ -207,6 +209,7 @@ namespace Jack int JackNetDriver::AllocPorts() { jack_log ( "JackNetDriver::AllocPorts fBufferSize = %ld fSampleRate = %ld", fEngineControl->fBufferSize, fEngineControl->fSampleRate ); + JackPort* port; jack_port_id_t port_id; char name[JACK_CLIENT_NAME_SIZE + JACK_PORT_NAME_SIZE]; @@ -291,6 +294,7 @@ namespace Jack int JackNetDriver::FreePorts() { jack_log ( "JackNetDriver::FreePorts" ); + int audio_port_index; uint midi_port_index; for ( audio_port_index = 0; audio_port_index < fCaptureChannels; audio_port_index++ ) @@ -502,7 +506,8 @@ namespace Jack jack_error ( "Can't init Socket API, exiting..." ); return NULL; } - const char* multicast_ip = DEFAULT_MULTICAST_IP; + char multicast_ip[16]; + strcpy ( multicast_ip, DEFAULT_MULTICAST_IP ); char name[JACK_CLIENT_NAME_SIZE]; GetHostName ( name, JACK_CLIENT_NAME_SIZE ); int udp_port = DEFAULT_PORT; @@ -525,7 +530,7 @@ namespace Jack switch ( param->character ) { case 'a' : - multicast_ip = strdup ( param->value.str ); + strncpy ( multicast_ip, param->value.str, 15 ); break; case 'p': udp_port = param->value.ui; @@ -552,10 +557,10 @@ namespace Jack transport_sync = param->value.ui; break; case 'm' : - if ( strcmp ( param->value.str, "slow" ) == 0 ) - network_mode = 's'; - else if ( strcmp ( param->value.str, "normal" ) == 0 ) + if ( strcmp ( param->value.str, "normal" ) == 0 ) network_mode = 'n'; + else if ( strcmp ( param->value.str, "slow" ) == 0 ) + network_mode = 's'; else if ( strcmp ( param->value.str, "fast" ) == 0 ) network_mode = 'f'; break; diff --git a/common/JackNetInterface.cpp b/common/JackNetInterface.cpp index 4791758c..d0b15615 100644 --- a/common/JackNetInterface.cpp +++ b/common/JackNetInterface.cpp @@ -30,24 +30,22 @@ namespace Jack { // JackNetInterface******************************************* - JackNetInterface::JackNetInterface ( const char* ip, int port ) : fSocket ( ip, port ) + JackNetInterface::JackNetInterface ( const char* multicast_ip, int port ) : fSocket ( multicast_ip, port ) { - jack_log ( "JackNetInterface::JackNetInterface ip = %s port = %d", ip, port ); - fMulticastIP = strdup ( ip ); + fMulticastIP = strdup ( multicast_ip ); } JackNetInterface::JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ) : fSocket ( socket ) { - jack_log ( "JackNetInterface::JackNetInterface ID = %d", params.fID ); - - fParams = params; + fParams = params; fMulticastIP = strdup ( multicast_ip ); } JackNetInterface::~JackNetInterface() { jack_log ( "JackNetInterface::~JackNetInterface" ); + fSocket.Close(); delete[] fTxBuffer; delete[] fRxBuffer; @@ -60,16 +58,19 @@ namespace Jack jack_nframes_t JackNetInterface::SetFramesPerPacket() { + jack_log ( "JackNetInterface::SetFramesPerPacket" ); + if ( !fParams.fSendAudioChannels && !fParams.fReturnAudioChannels ) return ( fParams.fFramesPerPacket = fParams.fPeriodSize ); jack_nframes_t period = ( int ) powf ( 2.f, ( int ) ( log ( ( fParams.fMtu - sizeof ( packet_header_t ) ) / ( max ( fParams.fReturnAudioChannels, fParams.fSendAudioChannels ) * sizeof ( sample_t ) ) ) / log ( 2 ) ) ); - ( period > fParams.fPeriodSize ) ? fParams.fFramesPerPacket = fParams.fPeriodSize : fParams.fFramesPerPacket = period; - return fParams.fFramesPerPacket; + return ( fParams.fFramesPerPacket = ( period > fParams.fPeriodSize ) ? fParams.fPeriodSize : period ); } int JackNetInterface::SetNetBufferSize() { + jack_log ( "JackNetInterface::SetNetBufferSize" ); + float audio_size, midi_size; int bufsize, res = 0; //audio @@ -122,9 +123,12 @@ namespace Jack void JackNetInterface::SetParams() { - SetFramesPerPacket(); + //number of audio subcycles (packets) fNSubProcess = fParams.fPeriodSize / fParams.fFramesPerPacket; + //payload size + fPayloadSize = fParams.fMtu - sizeof ( packet_header_t ); + //TX header init strcpy ( fTxHeader.fPacketType, "header" ); fTxHeader.fID = fParams.fID; @@ -132,6 +136,7 @@ namespace Jack fTxHeader.fSubCycle = 0; fTxHeader.fMidiDataSize = 0; fTxHeader.fBitdepth = fParams.fBitdepth; + fTxHeader.fIsLastPckt = 0; //RX header init strcpy ( fRxHeader.fPacketType, "header" ); @@ -140,17 +145,15 @@ namespace Jack fRxHeader.fSubCycle = 0; fRxHeader.fMidiDataSize = 0; fRxHeader.fBitdepth = fParams.fBitdepth; + fRxHeader.fIsLastPckt = 0; //network buffers fTxBuffer = new char[fParams.fMtu]; fRxBuffer = new char[fParams.fMtu]; - //net audio/midi buffers + //net audio/midi buffers'addresses fTxData = fTxBuffer + sizeof ( packet_header_t ); fRxData = fRxBuffer + sizeof ( packet_header_t ); - - //payload size - fPayloadSize = fParams.fMtu - sizeof ( packet_header_t ); } // JackNetMasterInterface ************************************************************************************ @@ -181,6 +184,9 @@ namespace Jack return false; } + //set the number of complete audio frames we can put in a packet + SetFramesPerPacket(); + //send 'SLAVE_SETUP' until 'START_MASTER' received jack_info ( "Sending parameters to %s ...", fParams.fSlaveNetName ); do @@ -237,6 +243,8 @@ namespace Jack { jack_log ( "JackNetMasterInterface::SetParams" ); + SetFramesPerPacket(); + JackNetInterface::SetParams(); fTxHeader.fDataStream = 's'; @@ -317,7 +325,7 @@ namespace Jack fTxHeader.fCycle++; fTxHeader.fSubCycle = 0; fTxHeader.fDataType = 's'; - fTxHeader.fIsLastPckt = ( !fParams.fSendMidiChannels && !fParams.fSendAudioChannels ) ? 'y' : 'n'; + fTxHeader.fIsLastPckt = ( !fParams.fSendMidiChannels && !fParams.fSendAudioChannels ) ? 1 : 0; fTxHeader.fPacketSize = fParams.fMtu; memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); return Send ( fTxHeader.fPacketSize, 0 ); @@ -335,15 +343,11 @@ namespace Jack fTxHeader.fNMidiPckt = GetNMidiPckt(); for ( subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ ) { - //fill the packet header fields fTxHeader.fSubCycle = subproc; - if ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fSendAudioChannels ) - fTxHeader.fIsLastPckt = 'y'; - //get the data from buffer + fTxHeader.fIsLastPckt = ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fSendAudioChannels ) ? 1 : 0; fTxHeader.fPacketSize = fNetMidiCaptureBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize ); fTxHeader.fPacketSize += sizeof ( packet_header_t ); memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); - //and send if ( Send ( fTxHeader.fPacketSize, 0 ) == SOCKET_ERROR ) return SOCKET_ERROR; } @@ -355,15 +359,11 @@ namespace Jack fTxHeader.fDataType = 'a'; for ( subproc = 0; subproc < fNSubProcess; subproc++ ) { - //set the header fTxHeader.fSubCycle = subproc; - if ( subproc == ( fNSubProcess - 1 ) ) - fTxHeader.fIsLastPckt = 'y'; + fTxHeader.fIsLastPckt = ( subproc == ( fNSubProcess - 1 ) ) ? 1 : 0; fTxHeader.fPacketSize = fAudioTxLen; memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); - //get the data fNetAudioCaptureBuffer->RenderFromJackPorts ( subproc ); - //and send if ( Send ( fTxHeader.fPacketSize, 0 ) == SOCKET_ERROR ) return SOCKET_ERROR; } @@ -417,6 +417,7 @@ namespace Jack jack_error ( "'%s' can't run in fast network mode, data received too late (%d cycle(s) offset)", fParams.fName, cycle_offset ); break; } + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; return rx_bytes; } @@ -427,7 +428,7 @@ namespace Jack uint midi_recvd_pckt = 0; packet_header_t* rx_head = reinterpret_cast ( fRxBuffer ); - while ( rx_head->fIsLastPckt != 'y' ) + while ( !fRxHeader.fIsLastPckt ) { //how much data is queued on the rx buffer ? rx_bytes = Recv ( fParams.fMtu, MSG_PEEK ); @@ -448,6 +449,7 @@ namespace Jack case 'm': //midi Recv ( rx_head->fPacketSize, 0 ); fRxHeader.fCycle = rx_head->fCycle; + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; fNetMidiPlaybackBuffer->RenderFromNetwork ( rx_head->fSubCycle, rx_bytes - sizeof ( packet_header_t ) ); if ( ++midi_recvd_pckt == rx_head->fNMidiPckt ) fNetMidiPlaybackBuffer->RenderToJackPorts(); @@ -459,6 +461,7 @@ namespace Jack jack_error ( "Packet(s) missing from '%s'...", fParams.fName ); fRxHeader.fCycle = rx_head->fCycle; fRxHeader.fSubCycle = rx_head->fSubCycle; + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; fNetAudioPlaybackBuffer->RenderToJackPorts ( rx_head->fSubCycle ); jumpcnt = 0; break; @@ -498,7 +501,7 @@ namespace Jack //then tell the master we are ready jack_info ( "Initializing connection with %s...", fParams.fMasterNetName ); - status = SendMasterStartSync(); + status = SendStartToMaster(); if ( status == NET_ERROR ) return false; } @@ -534,10 +537,6 @@ namespace Jack if ( fSocket.SetOption ( IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof ( loop ) ) == SOCKET_ERROR ) jack_error ( "Can't disable multicast loop : %s", StrError ( NET_ERROR_CODE ) ); - //set the new rx buffer size - if ( SetNetBufferSize() == SOCKET_ERROR ) - jack_error ( "Can't set net buffer sizes : %s", StrError ( NET_ERROR_CODE ) ); - //send 'AVAILABLE' until 'SLAVE_SETUP' received jack_info ( "Waiting for a master..." ); do @@ -555,6 +554,13 @@ namespace Jack } while ( strcmp ( params.fPacketType, fParams.fPacketType ) && ( GetPacketType ( ¶ms ) != SLAVE_SETUP ) ); + //everything is OK, copy parameters + fParams = params; + + //set the new buffer sizes + if ( SetNetBufferSize() == SOCKET_ERROR ) + jack_error ( "Can't set net buffer sizes : %s", StrError ( NET_ERROR_CODE ) ); + //connect the socket if ( fSocket.Connect() == SOCKET_ERROR ) { @@ -562,15 +568,13 @@ namespace Jack return NET_CONNECT_ERROR; } - //everything is OK, copy parameters and return - fParams = params; - - return NET_CONNECTED; + return NET_CONNECTED; } - net_status_t JackNetSlaveInterface::SendMasterStartSync() + net_status_t JackNetSlaveInterface::SendStartToMaster() { - jack_log ( "JackNetSlaveInterface::GetNetMasterStartSync()" ); + jack_log ( "JackNetSlaveInterface::SendStartToMaster()" ); + //tell the master to start SetPacketType ( &fParams, START_MASTER ); if ( fSocket.Send ( &fParams, sizeof ( session_params_t ), 0 ) == SOCKET_ERROR ) @@ -657,6 +661,7 @@ namespace Jack return rx_bytes; } while ( !rx_bytes && ( rx_head->fDataType != 's' ) ); + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; return rx_bytes; } @@ -666,10 +671,11 @@ namespace Jack int rx_bytes = 0; packet_header_t* rx_head = reinterpret_cast ( fRxBuffer ); - while ( rx_head->fIsLastPckt != 'y' ); + while ( !fRxHeader.fIsLastPckt ); { rx_bytes = Recv ( fParams.fMtu, MSG_PEEK ); //error here, problem with recv, just skip the cycle (return -1) + if ( rx_bytes == SOCKET_ERROR ) return rx_bytes; if ( rx_bytes && ( rx_head->fDataStream == 's' ) && ( rx_head->fID == fParams.fID ) ) @@ -679,16 +685,19 @@ namespace Jack case 'm': //midi rx_bytes = Recv ( rx_head->fPacketSize, 0 ); fRxHeader.fCycle = rx_head->fCycle; + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; fNetMidiCaptureBuffer->RenderFromNetwork ( rx_head->fSubCycle, rx_bytes - sizeof ( packet_header_t ) ); if ( ++recvd_midi_pckt == rx_head->fNMidiPckt ) fNetMidiCaptureBuffer->RenderToJackPorts(); break; case 'a': //audio + jack_info ( "recv audio : %u - %u", rx_head->fCycle, rx_head->fSubCycle ); rx_bytes = Recv ( rx_head->fPacketSize, 0 ); if ( !IsNextPacket() ) jack_error ( "Packet(s) missing..." ); fRxHeader.fCycle = rx_head->fCycle; fRxHeader.fSubCycle = rx_head->fSubCycle; + fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; fNetAudioCaptureBuffer->RenderToJackPorts ( rx_head->fSubCycle ); break; case 's': //sync @@ -710,7 +719,7 @@ namespace Jack fTxHeader.fCycle++; fTxHeader.fSubCycle = 0; fTxHeader.fDataType = 's'; - fTxHeader.fIsLastPckt = ( !fParams.fReturnMidiChannels && !fParams.fReturnAudioChannels ) ? 'y' : 'n'; + fTxHeader.fIsLastPckt = ( !fParams.fReturnMidiChannels && !fParams.fReturnAudioChannels ) ? 1 : 0; fTxHeader.fPacketSize = fParams.fMtu; memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); return Send ( fTxHeader.fPacketSize, 0 ); @@ -729,8 +738,7 @@ namespace Jack for ( subproc = 0; subproc < fTxHeader.fNMidiPckt; subproc++ ) { fTxHeader.fSubCycle = subproc; - if ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fReturnAudioChannels ) - fTxHeader.fIsLastPckt = 'y'; + fTxHeader.fIsLastPckt = ( ( subproc == ( fTxHeader.fNMidiPckt - 1 ) ) && !fParams.fReturnAudioChannels ) ? 1 : 0; fTxHeader.fPacketSize = fNetMidiPlaybackBuffer->RenderToNetwork ( subproc, fTxHeader.fMidiDataSize ); fTxHeader.fPacketSize += sizeof ( packet_header_t ); memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); @@ -746,8 +754,7 @@ namespace Jack for ( subproc = 0; subproc < fNSubProcess; subproc++ ) { fTxHeader.fSubCycle = subproc; - if ( subproc == ( fNSubProcess - 1 ) ) - fTxHeader.fIsLastPckt = 'y'; + fTxHeader.fIsLastPckt = ( subproc == ( fNSubProcess - 1 ) ) ? 1 : 0; fTxHeader.fPacketSize = fAudioTxLen; memcpy ( fTxBuffer, &fTxHeader, sizeof ( packet_header_t ) ); fNetAudioPlaybackBuffer->RenderFromJackPorts ( subproc ); diff --git a/common/JackNetInterface.h b/common/JackNetInterface.h index 2c12a9ff..601c04d1 100644 --- a/common/JackNetInterface.h +++ b/common/JackNetInterface.h @@ -78,7 +78,7 @@ namespace Jack JackNetInterface() {} - JackNetInterface ( const char* ip, int port ); + JackNetInterface ( const char* multicast_ip, int port ); JackNetInterface ( session_params_t& params, JackNetSocket& socket, const char* multicast_ip ); public: @@ -125,7 +125,7 @@ namespace Jack protected: bool Init(); net_status_t GetNetMaster(); - net_status_t SendMasterStartSync(); + net_status_t SendStartToMaster(); void SetParams(); int SyncRecv(); int SyncSend(); diff --git a/common/JackNetManager.cpp b/common/JackNetManager.cpp index 573dcf20..ee486e4d 100644 --- a/common/JackNetManager.cpp +++ b/common/JackNetManager.cpp @@ -58,8 +58,6 @@ namespace Jack for ( port_index = 0; port_index < fParams.fReturnMidiChannels; port_index++ ) fMidiPlaybackPorts[port_index] = NULL; - SetParams(); - //monitor #ifdef JACK_MONITOR fPeriodUsecs = ( int ) ( 1000000.f * ( ( float ) fParams.fPeriodSize / ( float ) fParams.fSampleRate ) ); @@ -122,6 +120,9 @@ namespace Jack if ( !JackNetMasterInterface::Init() ) return false; + //set global parameters + SetParams(); + //jack client and process jack_status_t status; if ( ( fJackClient = jack_client_open ( fClientName, JackNullOption, &status, NULL ) ) == NULL ) diff --git a/common/JackNetTool.cpp b/common/JackNetTool.cpp index 95b32ada..c1c1c7e8 100644 --- a/common/JackNetTool.cpp +++ b/common/JackNetTool.cpp @@ -288,6 +288,7 @@ namespace Jack header->fPacketSize = htonl ( header->fPacketSize ); header->fCycle = ntohl ( header->fCycle ); header->fSubCycle = htonl ( header->fSubCycle ); + header->fIsLastPckt = htonl ( header->fIsLastPckt ); } EXPORT void PacketHeaderNToH ( packet_header_t* header ) @@ -299,6 +300,7 @@ namespace Jack header->fPacketSize = ntohl ( header->fPacketSize ); header->fCycle = ntohl ( header->fCycle ); header->fSubCycle = ntohl ( header->fSubCycle ); + header->fIsLastPckt = ntohl ( header->fIsLastPckt ); } EXPORT void PacketHeaderDisplay ( packet_header_t* header ) @@ -313,7 +315,7 @@ namespace Jack jack_info ( "SubCycle : %u", header->fSubCycle ); jack_info ( "Midi packets : %u", header->fNMidiPckt ); jack_info ( "Midi data size : %u", header->fMidiDataSize ); - jack_info ( "Last packet : '%c'", header->fIsLastPckt ); + jack_info ( "Last packet : '%s'", ( header->fIsLastPckt ) ? "yes" : "no" ); jack_info ( "Bitdepth : %s", bitdepth ); jack_info ( "**********************************************" ); } diff --git a/common/JackNetTool.h b/common/JackNetTool.h index d5d5ab07..7155521b 100644 --- a/common/JackNetTool.h +++ b/common/JackNetTool.h @@ -145,9 +145,9 @@ namespace Jack uint32_t fPacketSize; //packet size in bytes uint32_t fCycle; //process cycle counter uint32_t fSubCycle; //midi/audio subcycle counter - char fIsLastPckt; //is it the last packet of a given cycle ('y' or 'n') + uint32_t fIsLastPckt; //is it the last packet of a given cycle ('y' or 'n') char fASyncWrongCycle; //is the current async cycle wrong (slave's side; 'y' or 'n') - char fFree[29]; //unused + char fFree[26]; //unused }; //transport data ****************************************************************************** diff --git a/common/JackTools.h b/common/JackTools.h index 123127eb..023a0222 100644 --- a/common/JackTools.h +++ b/common/JackTools.h @@ -119,7 +119,7 @@ namespace Jack public: JackGnuPlotMonitor ( uint32_t measure_cnt = 512, uint32_t measure_points = 5, std::string name = std::string ( "default" ) ) { - jack_log ( "JackGnuPlotMonitor::JackGnuPlotMonitor measure_cnt %u measure_points %u", measure_cnt, measure_points ); + jack_log ( "JackGnuPlotMonitor::JackGnuPlotMonitor %u measure points - %u measures", measure_points, measure_cnt ); fMeasureCnt = measure_cnt; fMeasurePoints = measure_points; @@ -137,6 +137,7 @@ namespace Jack ~JackGnuPlotMonitor() { jack_log ( "JackGnuPlotMonitor::~JackGnuPlotMonitor" ); + for ( uint32_t cnt = 0; cnt < fMeasureCnt; cnt++ ) delete[] fMeasureTable[cnt]; delete[] fMeasureTable; @@ -210,21 +211,16 @@ namespace Jack file << "set title \"" << title << "\"" << std::endl; for ( uint32_t i = 0; i < options_number; i++ ) - { - jack_log ( "JackGnuPlotMonitor::SetPlotFile - Add plot option : '%s'", options_list[i].c_str() ); file << options_list[i] << std::endl; - } file << "plot "; for ( uint32_t row = 1; row <= field_number; row++ ) { - jack_log ( "JackGnuPlotMonitor::SetPlotFile - Add plot : file '%s' row '%d' title '%s' field '%s'", - data_filename.c_str(), row, title.c_str(), field_names[row-1].c_str() ); file << "\"" << data_filename << "\" using " << row << " title \"" << field_names[row-1] << "\" with lines"; file << ( ( row < field_number ) ? ", " : "\n" ); } - jack_log ( "JackGnuPlotMonitor::SetPlotFile - Save GnuPlot '.plt' file to '%s'", plot_filename.c_str() ); + jack_log ( "JackGnuPlotMonitor::SetPlotFile - Save GnuPlot file to '%s'", plot_filename.c_str() ); file.close(); return 0; diff --git a/windows/JackNetWinSocket.cpp b/windows/JackNetWinSocket.cpp index 9991483a..e8a64779 100644 --- a/windows/JackNetWinSocket.cpp +++ b/windows/JackNetWinSocket.cpp @@ -278,6 +278,8 @@ namespace Jack //tiemout************************************************************************************************************ int JackNetWinSocket::SetTimeOut ( int usec ) { + jack_log ( "JackNetWinSocket::SetTimeout %d usec", usec ); + //negative timeout, or exceeding 10s, return if ( ( usec < 0 ) || ( usec > 10000000 ) ) return SOCKET_ERROR; diff --git a/windows/jack_netadapter.cbp b/windows/jack_netadapter.cbp index 88b1a3ab..1eb27ec2 100644 --- a/windows/jack_netadapter.cbp +++ b/windows/jack_netadapter.cbp @@ -6,14 +6,14 @@