diff --git a/common/JackCallbackNetIOAdapter.cpp b/common/JackCallbackNetIOAdapter.cpp index 373aeb24..4af008f0 100644 --- a/common/JackCallbackNetIOAdapter.cpp +++ b/common/JackCallbackNetIOAdapter.cpp @@ -57,38 +57,33 @@ int JackCallbackNetIOAdapter::Process(jack_nframes_t frames, void* arg) // Reset all ringbuffers in case of failure if (failure) { - jack_error("JackCallbackNetIOAdapter::Process ringbuffer failure... reset"); - - for (i = 0; i < adapter->fCaptureChannels; i++) { - adapter->fCaptureRingBuffer[i]->Reset(); - } - - for (i = 0; i < adapter->fPlaybackChannels; i++) { - adapter->fPlaybackRingBuffer[i]->Reset(); - } - - adapter->fIOAdapter->Reset(); + adapter->Reset(); } return 0; } int JackCallbackNetIOAdapter::BufferSize(jack_nframes_t nframes, void* arg) { - int i; JackCallbackNetIOAdapter* adapter = static_cast(arg); + adapter->Reset(); + adapter->fIOAdapter->SetBufferSize(nframes); + return 0; +} + +void JackCallbackNetIOAdapter::Reset() +{ + int i; - for (i = 0; i < adapter->fCaptureChannels; i++) { - adapter->fCaptureRingBuffer[i]->Reset(); + for (i = 0; i < fCaptureChannels; i++) { + fCaptureRingBuffer[i]->Reset(); } - for (i = 0; i < adapter->fPlaybackChannels; i++) { - adapter->fPlaybackRingBuffer[i]->Reset(); + for (i = 0; i < fPlaybackChannels; i++) { + fPlaybackRingBuffer[i]->Reset(); } - adapter->fIOAdapter->Reset(); - adapter->fIOAdapter->SetBufferSize(nframes); - return 0; + fIOAdapter->Reset(); } JackCallbackNetIOAdapter::JackCallbackNetIOAdapter(jack_client_t* jack_client, diff --git a/common/JackCallbackNetIOAdapter.h b/common/JackCallbackNetIOAdapter.h index 32978b86..bdf5c07f 100644 --- a/common/JackCallbackNetIOAdapter.h +++ b/common/JackCallbackNetIOAdapter.h @@ -37,6 +37,8 @@ namespace Jack static int Process(jack_nframes_t, void* arg); static int BufferSize(jack_nframes_t nframes, void *arg); + void Reset(); + public: JackCallbackNetIOAdapter(jack_client_t* jack_client, diff --git a/common/JackDummyDriver.cpp b/common/JackDummyDriver.cpp index 9e6f517f..db88ab43 100644 --- a/common/JackDummyDriver.cpp +++ b/common/JackDummyDriver.cpp @@ -71,6 +71,13 @@ int JackDummyDriver::Process() return 0; } +int JackDummyDriver::SetBufferSize(jack_nframes_t buffer_size) +{ + JackAudioDriver::SetBufferSize(buffer_size); + fWaitTime = (unsigned long)((((float)buffer_size) / ((float)fEngineControl->fSampleRate)) * 1000000.0f); + return 0; +} + } // end of namespace #ifdef __cplusplus diff --git a/common/JackDummyDriver.h b/common/JackDummyDriver.h index 2a12f7df..c84aee45 100644 --- a/common/JackDummyDriver.h +++ b/common/JackDummyDriver.h @@ -57,6 +57,8 @@ class JackDummyDriver : public JackAudioDriver jack_nframes_t playback_latency); int Process(); + + int SetBufferSize(jack_nframes_t buffer_size); };