diff --git a/daemon/src/audio/audiorecorder.cpp b/daemon/src/audio/audiorecorder.cpp index f49c00771c6207f757fc88fef7e5c8ed9558460e..54a742179ae0e45943f65fffa50b92ac2756bd69 100644 --- a/daemon/src/audio/audiorecorder.cpp +++ b/daemon/src/audio/audiorecorder.cpp @@ -30,6 +30,7 @@ #include "audiorecorder.h" #include "mainbuffer.h" +#include "logger.h" #include <sstream> #include <cassert> #include <tr1/array> @@ -37,7 +38,7 @@ int AudioRecorder::count_ = 0; AudioRecorder::AudioRecorder(AudioRecord *arec, MainBuffer *mb) : ost::Thread(), - recorderId_(), mbuffer_(mb), arecord_(arec) + recorderId_(), mbuffer_(mb), arecord_(arec), running_(true) { assert(mb); @@ -63,13 +64,13 @@ void AudioRecorder::run() std::tr1::array<SFLDataFormat, BUFFER_LENGTH> buffer; buffer.assign(0); - while (isRunning()) { + while (running_) { size_t availBytes = mbuffer_->availForGet(recorderId_); mbuffer_->getData(buffer.data(), std::min(availBytes, buffer.size()), recorderId_); if (availBytes > 0) arecord_->recData(buffer.data(), availBytes / sizeof(SFLDataFormat)); - sleep(20); + Thread::sleep(20); } } diff --git a/daemon/src/audio/audiorecorder.h b/daemon/src/audio/audiorecorder.h index 82be9a4795f4555073944080294a0c56dc14c8b5..c417b4cc7bd8aaaf9969643fbdfa5f49e84b69eb 100644 --- a/daemon/src/audio/audiorecorder.h +++ b/daemon/src/audio/audiorecorder.h @@ -44,6 +44,7 @@ class AudioRecorder : public ost::Thread { AudioRecorder(AudioRecord *arec, MainBuffer *mb); ~AudioRecorder() { + running_ = false; terminate(); } @@ -61,6 +62,7 @@ class AudioRecorder : public ost::Thread { std::string recorderId_; MainBuffer *mbuffer_; AudioRecord *arecord_; + bool running_; }; #endif