Mercurial > hg > svapp
diff audio/AudioRecordTarget.cpp @ 498:cd9dec2f47e8 recording
Fix suspending/resuming audio device; it wasn't suspending when playback reached the end, only when the user stopped explicitly
author | Chris Cannam |
---|---|
date | Tue, 22 Sep 2015 17:12:37 +0100 |
parents | 3dbc964f5907 |
children | dcd2afbc1bb7 |
line wrap: on
line diff
--- a/audio/AudioRecordTarget.cpp Wed Sep 16 15:16:54 2015 +0100 +++ b/audio/AudioRecordTarget.cpp Tue Sep 22 17:12:37 2015 +0100 @@ -19,11 +19,14 @@ #include "data/model/WritableWaveFileModel.h" +#include <bqaudioio/SystemRecordSource.h> + #include <QDir> AudioRecordTarget::AudioRecordTarget(ViewManagerBase *manager, QString clientName) : m_viewManager(manager), + m_source(0), m_clientName(clientName.toUtf8().data()), m_recording(false), m_recordSampleRate(44100), @@ -38,6 +41,12 @@ } void +AudioRecordTarget::setSystemRecordSource(breakfastquay::SystemRecordSource *s) +{ + m_source = s; +} + +void AudioRecordTarget::setSystemRecordBlockSize(int sz) { } @@ -113,8 +122,11 @@ WritableWaveFileModel * AudioRecordTarget::startRecording() { + if (m_source) m_source->resume(); + { QMutexLocker locker(&m_mutex); + if (m_recording) { cerr << "WARNING: AudioRecordTarget::startRecording: We are already recording" << endl; return 0; @@ -169,6 +181,8 @@ m_recording = false; } + if (m_source) m_source->suspend(); + emit recordStatusChanged(false); }