diff --git a/common/JackAudioAdapter.cpp b/common/JackAudioAdapter.cpp index 0bf82dff..03f4605f 100644 --- a/common/JackAudioAdapter.cpp +++ b/common/JackAudioAdapter.cpp @@ -45,14 +45,12 @@ namespace Jack memset(inputBuffer[i], 0, frames * sizeof(float)); } - if (adapter->fAudioAdapter->IsRunning()) { - for (int i = 0; i < adapter->fAudioAdapter->GetOutputs(); i++) { - outputBuffer[i] = (float*)jack_port_get_buffer(adapter->fPlaybackPortList[i], frames); - } - adapter->fAudioAdapter->PullAndPush(inputBuffer, outputBuffer, frames); + for (int i = 0; i < adapter->fAudioAdapter->GetOutputs(); i++) { + outputBuffer[i] = (float*)jack_port_get_buffer(adapter->fPlaybackPortList[i], frames); } - return 0; + adapter->fAudioAdapter->PullAndPush(inputBuffer, outputBuffer, frames); + return 0; } int JackAudioAdapter::BufferSize ( jack_nframes_t buffer_size, void* arg ) diff --git a/common/JackAudioAdapterInterface.cpp b/common/JackAudioAdapterInterface.cpp index 03cefc38..12afd811 100644 --- a/common/JackAudioAdapterInterface.cpp +++ b/common/JackAudioAdapterInterface.cpp @@ -261,9 +261,12 @@ namespace Jack int JackAudioAdapterInterface::PullAndPush(float** inputBuffer, float** outputBuffer, unsigned int frames) { - int res = 0; fPullAndPushTime = GetMicroSeconds(); - + if (!fRunning) + return 0; + + int res = 0; + // Push/pull from ringbuffer for (int i = 0; i < fCaptureChannels; i++) { if (fCaptureRingBuffer[i]->Read(inputBuffer[i], frames) < frames) diff --git a/common/JackAudioAdapterInterface.h b/common/JackAudioAdapterInterface.h index ce24a8ca..298b6071 100644 --- a/common/JackAudioAdapterInterface.h +++ b/common/JackAudioAdapterInterface.h @@ -92,7 +92,7 @@ namespace Jack unsigned int fQuality; unsigned int fRingbufferCurSize; jack_time_t fPullAndPushTime; - + bool fRunning; bool fAdaptative; @@ -121,11 +121,6 @@ namespace Jack virtual ~JackAudioAdapterInterface() {} - bool IsRunning() - { - return fRunning; - } - virtual void Reset(); void Create();