From e4771d0d1cf139b7bbe1ea0b6f27f596875dbb67 Mon Sep 17 00:00:00 2001 From: "michal.szwaj" Date: Sat, 24 Mar 2018 01:04:26 +0100 Subject: [PATCH] Add Qt prefixes to audio class implementations --- .../{AudioInput.hpp => QtAudioInput.hpp} | 4 +- .../{AudioOutput.hpp => QtAudioOutput.hpp} | 4 +- .../{AudioInput.cpp => QtAudioInput.cpp} | 34 +++++++------- .../{AudioOutput.cpp => QtAudioOutput.cpp} | 47 +++++++++---------- src/autoapp/Projection/ServiceFactory.cpp | 12 ++--- 5 files changed, 50 insertions(+), 51 deletions(-) rename include/f1x/openauto/autoapp/Projection/{AudioInput.hpp => QtAudioInput.hpp} (92%) rename include/f1x/openauto/autoapp/Projection/{AudioOutput.hpp => QtAudioOutput.hpp} (92%) rename src/autoapp/Projection/{AudioInput.cpp => QtAudioInput.cpp} (77%) rename src/autoapp/Projection/{AudioOutput.cpp => QtAudioOutput.cpp} (62%) diff --git a/include/f1x/openauto/autoapp/Projection/AudioInput.hpp b/include/f1x/openauto/autoapp/Projection/QtAudioInput.hpp similarity index 92% rename from include/f1x/openauto/autoapp/Projection/AudioInput.hpp rename to include/f1x/openauto/autoapp/Projection/QtAudioInput.hpp index 1dd7db0..97816ea 100644 --- a/include/f1x/openauto/autoapp/Projection/AudioInput.hpp +++ b/include/f1x/openauto/autoapp/Projection/QtAudioInput.hpp @@ -32,11 +32,11 @@ namespace autoapp namespace projection { -class AudioInput: public QObject, public IAudioInput +class QtAudioInput: public QObject, public IAudioInput { Q_OBJECT public: - AudioInput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate); + QtAudioInput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate); bool open() override; bool isActive() const override; diff --git a/include/f1x/openauto/autoapp/Projection/AudioOutput.hpp b/include/f1x/openauto/autoapp/Projection/QtAudioOutput.hpp similarity index 92% rename from include/f1x/openauto/autoapp/Projection/AudioOutput.hpp rename to include/f1x/openauto/autoapp/Projection/QtAudioOutput.hpp index 9aa4d41..e026a91 100644 --- a/include/f1x/openauto/autoapp/Projection/AudioOutput.hpp +++ b/include/f1x/openauto/autoapp/Projection/QtAudioOutput.hpp @@ -32,12 +32,12 @@ namespace autoapp namespace projection { -class AudioOutput: public QObject, public IAudioOutput +class QtAudioOutput: public QObject, public IAudioOutput { Q_OBJECT public: - AudioOutput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate); + QtAudioOutput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate); bool open() override; void write(const aasdk::common::DataConstBuffer& buffer) override; void start() override; diff --git a/src/autoapp/Projection/AudioInput.cpp b/src/autoapp/Projection/QtAudioInput.cpp similarity index 77% rename from src/autoapp/Projection/AudioInput.cpp rename to src/autoapp/Projection/QtAudioInput.cpp index 2fe3fbf..1558430 100644 --- a/src/autoapp/Projection/AudioInput.cpp +++ b/src/autoapp/Projection/QtAudioInput.cpp @@ -17,7 +17,7 @@ */ #include -#include +#include #include namespace f1x @@ -29,7 +29,7 @@ namespace autoapp namespace projection { -AudioInput::AudioInput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate) +QtAudioInput::QtAudioInput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate) : ioDevice_(nullptr) { qRegisterMetaType("StartPromise::Pointer"); @@ -42,32 +42,32 @@ AudioInput::AudioInput(uint32_t channelCount, uint32_t sampleSize, uint32_t samp audioFormat_.setSampleType(QAudioFormat::SignedInt); this->moveToThread(QApplication::instance()->thread()); - connect(this, &AudioInput::startRecording, this, &AudioInput::onStartRecording, Qt::QueuedConnection); - connect(this, &AudioInput::stopRecording, this, &AudioInput::onStopRecording, Qt::QueuedConnection); + connect(this, &QtAudioInput::startRecording, this, &QtAudioInput::onStartRecording, Qt::QueuedConnection); + connect(this, &QtAudioInput::stopRecording, this, &QtAudioInput::onStopRecording, Qt::QueuedConnection); QMetaObject::invokeMethod(this, "createAudioInput", Qt::BlockingQueuedConnection); } -void AudioInput::createAudioInput() +void QtAudioInput::createAudioInput() { OPENAUTO_LOG(debug) << "[AudioInput] create."; audioInput_ = (std::make_unique(QAudioDeviceInfo::defaultInputDevice(), audioFormat_)); } -bool AudioInput::open() +bool QtAudioInput::open() { std::lock_guard lock(mutex_); return ioDevice_ == nullptr; } -bool AudioInput::isActive() const +bool QtAudioInput::isActive() const { std::lock_guard lock(mutex_); return ioDevice_ != nullptr; } -void AudioInput::read(ReadPromise::Pointer promise) +void QtAudioInput::read(ReadPromise::Pointer promise) { std::lock_guard lock(mutex_); @@ -85,32 +85,32 @@ void AudioInput::read(ReadPromise::Pointer promise) } } -void AudioInput::start(StartPromise::Pointer promise) +void QtAudioInput::start(StartPromise::Pointer promise) { emit startRecording(std::move(promise)); } -void AudioInput::stop() +void QtAudioInput::stop() { emit stopRecording(); } -uint32_t AudioInput::getSampleSize() const +uint32_t QtAudioInput::getSampleSize() const { return audioFormat_.sampleSize(); } -uint32_t AudioInput::getChannelCount() const +uint32_t QtAudioInput::getChannelCount() const { return audioFormat_.channelCount(); } -uint32_t AudioInput::getSampleRate() const +uint32_t QtAudioInput::getSampleRate() const { return audioFormat_.sampleRate(); } -void AudioInput::onStartRecording(StartPromise::Pointer promise) +void QtAudioInput::onStartRecording(StartPromise::Pointer promise) { std::lock_guard lock(mutex_); @@ -118,7 +118,7 @@ void AudioInput::onStartRecording(StartPromise::Pointer promise) if(ioDevice_ != nullptr) { - connect(ioDevice_, &QIODevice::readyRead, this, &AudioInput::onReadyRead, Qt::QueuedConnection); + connect(ioDevice_, &QIODevice::readyRead, this, &QtAudioInput::onReadyRead, Qt::QueuedConnection); promise->resolve(); } else @@ -127,7 +127,7 @@ void AudioInput::onStartRecording(StartPromise::Pointer promise) } } -void AudioInput::onStopRecording() +void QtAudioInput::onStopRecording() { std::lock_guard lock(mutex_); @@ -147,7 +147,7 @@ void AudioInput::onStopRecording() audioInput_->stop(); } -void AudioInput::onReadyRead() +void QtAudioInput::onReadyRead() { std::lock_guard lock(mutex_); diff --git a/src/autoapp/Projection/AudioOutput.cpp b/src/autoapp/Projection/QtAudioOutput.cpp similarity index 62% rename from src/autoapp/Projection/AudioOutput.cpp rename to src/autoapp/Projection/QtAudioOutput.cpp index f211987..959ca1f 100644 --- a/src/autoapp/Projection/AudioOutput.cpp +++ b/src/autoapp/Projection/QtAudioOutput.cpp @@ -17,7 +17,7 @@ */ #include -#include +#include #include namespace f1x @@ -29,7 +29,7 @@ namespace autoapp namespace projection { -AudioOutput::AudioOutput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate) +QtAudioOutput::QtAudioOutput(uint32_t channelCount, uint32_t sampleSize, uint32_t sampleRate) : playbackStarted_(false) { audioFormat_.setChannelCount(channelCount); @@ -40,79 +40,78 @@ AudioOutput::AudioOutput(uint32_t channelCount, uint32_t sampleSize, uint32_t sa audioFormat_.setSampleType(QAudioFormat::SignedInt); this->moveToThread(QApplication::instance()->thread()); - connect(this, &AudioOutput::startPlayback, this, &AudioOutput::onStartPlayback); - connect(this, &AudioOutput::suspendPlayback, this, &AudioOutput::onSuspendPlayback); - connect(this, &AudioOutput::stopPlayback, this, &AudioOutput::onStopPlayback); + connect(this, &QtAudioOutput::startPlayback, this, &QtAudioOutput::onStartPlayback); + connect(this, &QtAudioOutput::suspendPlayback, this, &QtAudioOutput::onSuspendPlayback); + connect(this, &QtAudioOutput::stopPlayback, this, &QtAudioOutput::onStopPlayback); QMetaObject::invokeMethod(this, "createAudioOutput", Qt::BlockingQueuedConnection); } -void AudioOutput::createAudioOutput() +void QtAudioOutput::createAudioOutput() { - OPENAUTO_LOG(debug) << "[AudioOutput] create."; + OPENAUTO_LOG(debug) << "[QtAudioOutput] create."; audioOutput_ = std::make_unique(QAudioDeviceInfo::defaultOutputDevice(), audioFormat_); - - // Setting this category switching to the low latency mode - // See: http://code.qt.io/cgit/qt/qtmultimedia.git/tree/src/plugins/pulseaudio/qaudiooutput_pulse.cpp?h=5.7#n58 - audioOutput_->setCategory("game"); } -bool AudioOutput::open() +bool QtAudioOutput::open() { return audioBuffer_.open(QIODevice::ReadWrite); } -void AudioOutput::write(const aasdk::common::DataConstBuffer& buffer) +void QtAudioOutput::write(const aasdk::common::DataConstBuffer& buffer) { audioBuffer_.write(reinterpret_cast(buffer.cdata), buffer.size); } -void AudioOutput::start() +void QtAudioOutput::start() { emit startPlayback(); } -void AudioOutput::stop() +void QtAudioOutput::stop() { emit stopPlayback(); } -void AudioOutput::suspend() +void QtAudioOutput::suspend() { emit suspendPlayback(); } -uint32_t AudioOutput::getSampleSize() const +uint32_t QtAudioOutput::getSampleSize() const { return audioFormat_.sampleSize(); } -uint32_t AudioOutput::getChannelCount() const +uint32_t QtAudioOutput::getChannelCount() const { return audioFormat_.channelCount(); } -uint32_t AudioOutput::getSampleRate() const +uint32_t QtAudioOutput::getSampleRate() const { return audioFormat_.sampleRate(); } -void AudioOutput::onStartPlayback() +void QtAudioOutput::onStartPlayback() { if(!playbackStarted_) { audioOutput_->start(&audioBuffer_); playbackStarted_ = true; } + else + { + audioOutput_->resume(); + } } -void AudioOutput::onSuspendPlayback() +void QtAudioOutput::onSuspendPlayback() { - // QAudioOutput is in pull mode so suspending/resuming are not needed. - // Keep this interface for any further purposes + audioOutput_->suspend(); } -void AudioOutput::onStopPlayback() +void QtAudioOutput::onStopPlayback() { if(playbackStarted_) { diff --git a/src/autoapp/Projection/ServiceFactory.cpp b/src/autoapp/Projection/ServiceFactory.cpp index ade1e38..9205b25 100644 --- a/src/autoapp/Projection/ServiceFactory.cpp +++ b/src/autoapp/Projection/ServiceFactory.cpp @@ -32,8 +32,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -59,22 +59,22 @@ ServiceList ServiceFactory::create(aasdk::messenger::IMessenger::Pointer messeng { ServiceList serviceList; - IAudioInput::Pointer audioInput(new AudioInput(1, 16, 16000), std::bind(&QObject::deleteLater, std::placeholders::_1)); + IAudioInput::Pointer audioInput(new QtAudioInput(1, 16, 16000), std::bind(&QObject::deleteLater, std::placeholders::_1)); serviceList.emplace_back(std::make_shared(ioService_, messenger, std::move(audioInput))); if(configuration_->musicAudioChannelEnabled()) { - IAudioOutput::Pointer mediaAudioOutput(new AudioOutput(2, 16, 48000), std::bind(&QObject::deleteLater, std::placeholders::_1)); + IAudioOutput::Pointer mediaAudioOutput(new QtAudioOutput(2, 16, 48000), std::bind(&QObject::deleteLater, std::placeholders::_1)); serviceList.emplace_back(std::make_shared(ioService_, messenger, std::move(mediaAudioOutput))); } if(configuration_->speechAudioChannelEnabled()) { - IAudioOutput::Pointer speechAudioOutput(new AudioOutput(1, 16, 16000), std::bind(&QObject::deleteLater, std::placeholders::_1)); + IAudioOutput::Pointer speechAudioOutput(new QtAudioOutput(1, 16, 16000), std::bind(&QObject::deleteLater, std::placeholders::_1)); serviceList.emplace_back(std::make_shared(ioService_, messenger, std::move(speechAudioOutput))); } - IAudioOutput::Pointer systemAudioOutput(new AudioOutput(1, 16, 16000), std::bind(&QObject::deleteLater, std::placeholders::_1)); + IAudioOutput::Pointer systemAudioOutput(new QtAudioOutput(1, 16, 16000), std::bind(&QObject::deleteLater, std::placeholders::_1)); serviceList.emplace_back(std::make_shared(ioService_, messenger, std::move(systemAudioOutput))); serviceList.emplace_back(std::make_shared(ioService_, messenger));