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);
 }