From 4a77ee5fc4e5b340364a0051f97582725b66e8d9 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 3 Feb 2014 19:05:53 +0100 Subject: [PATCH] Added QAudioOutput to voice lib, as an approach to overcome #117 --- samples/voiceclient/sample_voice_client.pro | 11 ++++++----- src/blackcore/voice_vatlib.cpp | 10 ++++++---- src/blackcore/voice_vatlib.h | 2 ++ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/samples/voiceclient/sample_voice_client.pro b/samples/voiceclient/sample_voice_client.pro index 5c51b3531..6b3fa206b 100644 --- a/samples/voiceclient/sample_voice_client.pro +++ b/samples/voiceclient/sample_voice_client.pro @@ -1,6 +1,6 @@ include (../../externals.pri) -QT += core dbus network +QT += core dbus network multimedia QT -= gui TARGET = sample_voice_client @@ -15,12 +15,13 @@ INCLUDEPATH += . ../../src SOURCES += *.cpp HEADERS += *.h -LIBS += -L../../lib -lblackcore -lblackmisc +LIBS += -L../../lib -lblackcore -lblackmisc -lblacksound LIBS += -lvatlib win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib \ - ../../lib/blackcore.lib + ../../lib/blackcore.lib \ + ../../lib/blacksound.lib else: PRE_TARGETDEPS += ../../lib/libblackmisc.a \ - ../../lib/libblackcore.a - + ../../lib/libblackcore.a \ + ../../lib/libblacksound.a DESTDIR = ../../bin diff --git a/src/blackcore/voice_vatlib.cpp b/src/blackcore/voice_vatlib.cpp index ff8c265df..125fb7e7a 100644 --- a/src/blackcore/voice_vatlib.cpp +++ b/src/blackcore/voice_vatlib.cpp @@ -18,6 +18,7 @@ namespace BlackCore CVoiceVatlib::CVoiceVatlib(QObject *parent) : IVoice(parent), m_voice(Cvatlib_Voice_Simple::Create()), + m_audioOutput(new QAudioOutput()), m_keyboardPtt(new CKeyboard(nullptr)), m_pushToTalk(false), m_inputSquelch(-1), @@ -45,6 +46,7 @@ namespace BlackCore this->m_outputEnabled.insert(COM2, true); this->m_currentInputDevice = this->defaultAudioInputDevice(); this->m_currentOutputDevice = this->defaultAudioOutputDevice(); + this->m_audioOutput->setVolume(1.0); // do processing this->startTimer(100); @@ -77,7 +79,7 @@ namespace BlackCore const BlackMisc::Voice::CAudioDevice CVoiceVatlib::defaultAudioInputDevice() const { // Constructor creates already a default device - return BlackMisc::Voice::CAudioDevice(BlackMisc::Voice::CAudioDevice::InputDevice, BlackMisc::Voice::CAudioDevice::defaultDevice(), "default"); + return BlackMisc::Voice::CAudioDevice(BlackMisc::Voice::CAudioDevice::InputDevice, BlackMisc::Voice::CAudioDevice::defaultDeviceIndex(), "default"); } /* @@ -86,7 +88,7 @@ namespace BlackCore const BlackMisc::Voice::CAudioDevice CVoiceVatlib::defaultAudioOutputDevice() const { // Constructor creates already a default device - return BlackMisc::Voice::CAudioDevice(BlackMisc::Voice::CAudioDevice::OutputDevice, BlackMisc::Voice::CAudioDevice::defaultDevice(), "default"); + return BlackMisc::Voice::CAudioDevice(BlackMisc::Voice::CAudioDevice::OutputDevice, BlackMisc::Voice::CAudioDevice::defaultDeviceIndex(), "default"); } /* @@ -379,14 +381,14 @@ namespace BlackCore /* * Room output volume as per COM unit */ - void CVoiceVatlib::setRoomOutputVolume(const ComUnit comUnit, const qint32 volumne) + void CVoiceVatlib::setRoomOutputVolume(const ComUnit comUnit, const qint32 volume) { Q_ASSERT_X(m_voice->IsValid() && m_voice->IsSetup(), "CVoiceClientVatlib", "Cvatlib_Voice_Simple invalid or not setup!"); Q_ASSERT_X(m_voice->IsRoomValid(static_cast(comUnit)), "CVoiceClientVatlib", "Room index out of bounds!"); try { - m_voice->SetRoomVolume(static_cast(comUnit), volumne); + m_voice->SetRoomVolume(static_cast(comUnit), volume); } catch (...) { diff --git a/src/blackcore/voice_vatlib.h b/src/blackcore/voice_vatlib.h index 06ad3efbd..d20a74007 100644 --- a/src/blackcore/voice_vatlib.h +++ b/src/blackcore/voice_vatlib.h @@ -7,6 +7,7 @@ #define BLACKCORE_VOICE_VATLIB_H #include "voice.h" +#include "../blacksound/soundgenerator.h" #include "../blackmisc/vaudiodevicelist.h" #include "../blackmisc/nwuserlist.h" #include "../blackmisc/avcallsignlist.h" @@ -294,6 +295,7 @@ namespace BlackCore #endif QScopedPointer m_voice; + QScopedPointer m_audioOutput; BlackMisc::Aviation::CCallsign m_aircraftCallsign; /*!< own callsign to join voice rooms */ BlackMisc::Voice::CVoiceRoomList m_voiceRooms; BlackMisc::Voice::CAudioDeviceList m_devices; /*!< in and output devices */