Mercurial > hg > svapp
diff audio/AudioCallbackRecordTarget.h @ 575:c2e27ad7f408 3.0-integration
Pull out record buffer into a separate RT-ish thread
author | Chris Cannam |
---|---|
date | Wed, 04 Jan 2017 16:53:06 +0000 |
parents | b3c35447ef31 |
children | 298d864113f0 |
line wrap: on
line diff
--- a/audio/AudioCallbackRecordTarget.h Wed Jan 04 16:03:12 2017 +0000 +++ b/audio/AudioCallbackRecordTarget.h Wed Jan 04 16:53:06 2017 +0000 @@ -20,11 +20,13 @@ #include <bqaudioio/ApplicationRecordTarget.h> #include <string> +#include <atomic> #include <QObject> #include <QMutex> #include "base/BaseTypes.h" +#include "base/RingBuffer.h" class ViewManagerBase; class WritableWaveFileModel; @@ -73,19 +75,24 @@ protected slots: void modelAboutToBeDeleted(); + void updateModel(); private: ViewManagerBase *m_viewManager; std::string m_clientName; - bool m_recording; + std::atomic_bool m_recording; sv_samplerate_t m_recordSampleRate; int m_recordChannelCount; sv_frame_t m_frameCount; QString m_audioFileName; WritableWaveFileModel *m_model; + RingBuffer<float> **m_buffers; + QMutex m_bufPtrMutex; + int m_bufferCount; float m_inputLeft; float m_inputRight; - QMutex m_mutex; + + void recreateBuffers(); }; #endif