git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4756 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.9.5
| @@ -496,11 +496,13 @@ struct JackNetExtSlave : public JackNetSlaveInterface, public JackRunnableInterf | |||
| int Open(jack_master_t* result) | |||
| { | |||
| // Check CELT encoder parameters | |||
| if ((fParams.fSampleEncoder == JackCeltEncoder) && (fParams.fKBps == 0)) { | |||
| jack_error("CELT encoder with 0 for kps..."); | |||
| return -1; | |||
| } | |||
| // Check latency | |||
| if (fParams.fNetworkLatency > NETWORK_MAX_LATENCY) { | |||
| jack_error("Error : network latency is limited to %d", NETWORK_MAX_LATENCY); | |||
| return -1; | |||
| @@ -552,7 +554,7 @@ struct JackNetExtSlave : public JackNetSlaveInterface, public JackRunnableInterf | |||
| return -1; | |||
| } | |||
| // Finish connection... | |||
| // Finish connection | |||
| if (!JackNetSlaveInterface::InitRendering()) { | |||
| jack_error("Starting network fails..."); | |||
| return -1; | |||
| @@ -615,29 +617,33 @@ struct JackNetExtSlave : public JackNetSlaveInterface, public JackRunnableInterf | |||
| void FreePorts() | |||
| { | |||
| if (fAudioCaptureBuffer) { | |||
| for (int audio_port_index = 0; audio_port_index < fParams.fSendAudioChannels; audio_port_index++) | |||
| for (int audio_port_index = 0; audio_port_index < fParams.fSendAudioChannels; audio_port_index++) { | |||
| delete[] fAudioCaptureBuffer[audio_port_index]; | |||
| } | |||
| delete[] fAudioCaptureBuffer; | |||
| fAudioCaptureBuffer = NULL; | |||
| } | |||
| if (fMidiCaptureBuffer) { | |||
| for (int midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) | |||
| for (int midi_port_index = 0; midi_port_index < fParams.fSendMidiChannels; midi_port_index++) { | |||
| delete[] (fMidiCaptureBuffer[midi_port_index]); | |||
| } | |||
| delete[] fMidiCaptureBuffer; | |||
| fMidiCaptureBuffer = NULL; | |||
| } | |||
| if (fAudioPlaybackBuffer) { | |||
| for (int audio_port_index = 0; audio_port_index < fParams.fReturnAudioChannels; audio_port_index++) | |||
| for (int audio_port_index = 0; audio_port_index < fParams.fReturnAudioChannels; audio_port_index++) { | |||
| delete[] fAudioPlaybackBuffer[audio_port_index]; | |||
| } | |||
| delete[] fAudioPlaybackBuffer; | |||
| fAudioPlaybackBuffer = NULL; | |||
| } | |||
| if (fMidiPlaybackBuffer) { | |||
| for (int midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) | |||
| for (int midi_port_index = 0; midi_port_index < fParams.fReturnMidiChannels; midi_port_index++) { | |||
| delete[] fMidiPlaybackBuffer[midi_port_index]; | |||
| } | |||
| delete[] fMidiPlaybackBuffer; | |||
| fMidiPlaybackBuffer = NULL; | |||
| } | |||
| @@ -995,8 +1001,8 @@ LIB_EXPORT int jack_adapter_pull_and_push(jack_adapter_t* adapter, float** input | |||
| static void jack_format_and_log(int level, const char *prefix, const char *fmt, va_list ap) | |||
| { | |||
| const char* netjack_log = getenv("JACK_NETJACK_LOG"); | |||
| bool is_netjack_log = (netjack_log) ? atoi(netjack_log) : 0; | |||
| static const char* netjack_log = getenv("JACK_NETJACK_LOG"); | |||
| static bool is_netjack_log = (netjack_log) ? atoi(netjack_log) : 0; | |||
| if (is_netjack_log) { | |||
| char buffer[300]; | |||
| @@ -199,6 +199,7 @@ namespace Jack | |||
| fRxHeader.fCycle = rx_head->fCycle; | |||
| fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; | |||
| buffer->RenderFromNetwork(rx_head->fSubCycle, rx_bytes - HEADER_SIZE); | |||
| // Last midi packet is received, so finish rendering... | |||
| if (++recvd_midi_pckt == rx_head->fNumPacket) { | |||
| buffer->RenderToJackPorts(); | |||
| @@ -214,6 +215,7 @@ namespace Jack | |||
| fRxHeader.fIsLastPckt = rx_head->fIsLastPckt; | |||
| fRxHeader.fActivePorts = rx_head->fActivePorts; | |||
| rx_bytes = buffer->RenderFromNetwork(rx_head->fCycle, rx_head->fSubCycle, fRxHeader.fActivePorts); | |||
| // Last audio packet is received, so finish rendering... | |||
| if (fRxHeader.fIsLastPckt) { | |||
| buffer->RenderToJackPorts(); | |||
| @@ -223,7 +225,6 @@ namespace Jack | |||
| int JackNetInterface::FinishRecv(NetAudioBuffer* buffer) | |||
| { | |||
| // TODO : finish midi and audio rendering ? | |||
| buffer->RenderToJackPorts(); | |||
| return NET_PACKET_ERROR; | |||
| } | |||
| @@ -656,8 +657,9 @@ namespace Jack | |||
| // then tell the master we are ready | |||
| jack_info("Initializing connection with %s...", fParams.fMasterNetName); | |||
| status = SendStartToMaster(); | |||
| if (status == NET_ERROR) | |||
| if (status == NET_ERROR) { | |||
| return false; | |||
| } | |||
| } | |||
| while (status != NET_ROLLING); | |||
| @@ -704,8 +706,9 @@ namespace Jack | |||
| session_params_t net_params; | |||
| memset(&net_params, 0, sizeof(session_params_t)); | |||
| SessionParamsHToN(&fParams, &net_params); | |||
| if (fSocket.SendTo(&net_params, sizeof(session_params_t), 0, fMulticastIP) == SOCKET_ERROR) | |||
| if (fSocket.SendTo(&net_params, sizeof(session_params_t), 0, fMulticastIP) == SOCKET_ERROR) { | |||
| jack_error("Error in data send : %s", StrError(NET_ERROR_CODE)); | |||
| } | |||
| // filter incoming packets : don't exit while no error is detected | |||
| memset(&net_params, 0, sizeof(session_params_t)); | |||
| @@ -1743,9 +1743,6 @@ | |||
| 4B370A21133DD7E300237B68 /* JackCoreMidiVirtualInputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiVirtualInputPort.h; path = ../../coremidi/JackCoreMidiVirtualInputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4B370A22133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JackCoreMidiVirtualOutputPort.cpp; path = ../../coremidi/JackCoreMidiVirtualOutputPort.cpp; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4B370A23133DD7E300237B68 /* JackCoreMidiVirtualOutputPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JackCoreMidiVirtualOutputPort.h; path = ../../coremidi/JackCoreMidiVirtualOutputPort.h; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = CALatencyLog.cpp; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.cpp; sourceTree = "<absolute>"; }; | |||
| 4B37C20406DF1FBE0016E567 /* CALatencyLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = CALatencyLog.h; path = /Developer/Examples/CoreAudio/PublicUtility/CALatencyLog.h; sourceTree = "<absolute>"; }; | |||
| 4B37C20906DF1FE20016E567 /* latency.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = latency.c; path = /Developer/Examples/CoreAudio/PublicUtility/latency.c; sourceTree = "<absolute>"; }; | |||
| 4B38115F1326878E00C61B14 /* jack_latent_client */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_latent_client; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4B3811971326884E00C61B14 /* jack_latent_client */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = jack_latent_client; sourceTree = BUILT_PRODUCTS_DIR; }; | |||
| 4B3811FA13269C8300C61B14 /* latent_client.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = latent_client.c; path = "../example-clients/latent_client.c"; sourceTree = SOURCE_ROOT; }; | |||
| @@ -3049,9 +3046,6 @@ | |||
| 4B37C20006DF1F900016E567 /* Latency */ = { | |||
| isa = PBXGroup; | |||
| children = ( | |||
| 4B37C20906DF1FE20016E567 /* latency.c */, | |||
| 4B37C20306DF1FBE0016E567 /* CALatencyLog.cpp */, | |||
| 4B37C20406DF1FBE0016E567 /* CALatencyLog.h */, | |||
| ); | |||
| name = Latency; | |||
| sourceTree = "<group>"; | |||