diff --git a/include/AudioJack.h b/include/AudioJack.h index 9bbb3bd48..9c412e202 100644 --- a/include/AudioJack.h +++ b/include/AudioJack.h @@ -34,6 +34,7 @@ #include "AudioWeakJack.h" #endif +#include #include #include #include @@ -106,7 +107,7 @@ private: jack_client_t * m_client; bool m_active; - bool m_stopped; + std::atomic m_stopped; MidiJack *m_midiClient; QVector m_outputPorts; diff --git a/src/core/audio/AudioJack.cpp b/src/core/audio/AudioJack.cpp index bca41356b..ba0daae94 100644 --- a/src/core/audio/AudioJack.cpp +++ b/src/core/audio/AudioJack.cpp @@ -56,6 +56,8 @@ AudioJack::AudioJack( bool & _success_ful, Mixer* _mixer ) : m_framesDoneInCurBuf( 0 ), m_framesToDoInCurBuf( 0 ) { + m_stopped = true; + _success_ful = initJackClient(); if( _success_ful ) { @@ -201,8 +203,6 @@ bool AudioJack::initJackClient() void AudioJack::startProcessing() { - m_stopped = false; - if( m_active || m_client == NULL ) { return; @@ -245,6 +245,7 @@ void AudioJack::startProcessing() } } + m_stopped = false; free( ports ); }