Added QAudioOutput to voice lib, as an approach to overcome #117

This commit is contained in:
Klaus Basan
2014-02-03 19:05:53 +01:00
committed by Mathew Sutcliffe
parent 82af8f0c4c
commit 4a77ee5fc4
3 changed files with 14 additions and 9 deletions

View File

@@ -1,6 +1,6 @@
include (../../externals.pri) include (../../externals.pri)
QT += core dbus network QT += core dbus network multimedia
QT -= gui QT -= gui
TARGET = sample_voice_client TARGET = sample_voice_client
@@ -15,12 +15,13 @@ INCLUDEPATH += . ../../src
SOURCES += *.cpp SOURCES += *.cpp
HEADERS += *.h HEADERS += *.h
LIBS += -L../../lib -lblackcore -lblackmisc LIBS += -L../../lib -lblackcore -lblackmisc -lblacksound
LIBS += -lvatlib LIBS += -lvatlib
win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib \ win32:!win32-g++*: PRE_TARGETDEPS += ../../lib/blackmisc.lib \
../../lib/blackcore.lib ../../lib/blackcore.lib \
../../lib/blacksound.lib
else: PRE_TARGETDEPS += ../../lib/libblackmisc.a \ else: PRE_TARGETDEPS += ../../lib/libblackmisc.a \
../../lib/libblackcore.a ../../lib/libblackcore.a \
../../lib/libblacksound.a
DESTDIR = ../../bin DESTDIR = ../../bin

View File

@@ -18,6 +18,7 @@ namespace BlackCore
CVoiceVatlib::CVoiceVatlib(QObject *parent) : CVoiceVatlib::CVoiceVatlib(QObject *parent) :
IVoice(parent), IVoice(parent),
m_voice(Cvatlib_Voice_Simple::Create()), m_voice(Cvatlib_Voice_Simple::Create()),
m_audioOutput(new QAudioOutput()),
m_keyboardPtt(new CKeyboard(nullptr)), m_keyboardPtt(new CKeyboard(nullptr)),
m_pushToTalk(false), m_pushToTalk(false),
m_inputSquelch(-1), m_inputSquelch(-1),
@@ -45,6 +46,7 @@ namespace BlackCore
this->m_outputEnabled.insert(COM2, true); this->m_outputEnabled.insert(COM2, true);
this->m_currentInputDevice = this->defaultAudioInputDevice(); this->m_currentInputDevice = this->defaultAudioInputDevice();
this->m_currentOutputDevice = this->defaultAudioOutputDevice(); this->m_currentOutputDevice = this->defaultAudioOutputDevice();
this->m_audioOutput->setVolume(1.0);
// do processing // do processing
this->startTimer(100); this->startTimer(100);
@@ -77,7 +79,7 @@ namespace BlackCore
const BlackMisc::Voice::CAudioDevice CVoiceVatlib::defaultAudioInputDevice() const const BlackMisc::Voice::CAudioDevice CVoiceVatlib::defaultAudioInputDevice() const
{ {
// Constructor creates already a default device // 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 const BlackMisc::Voice::CAudioDevice CVoiceVatlib::defaultAudioOutputDevice() const
{ {
// Constructor creates already a default device // 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 * 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->IsValid() && m_voice->IsSetup(), "CVoiceClientVatlib", "Cvatlib_Voice_Simple invalid or not setup!");
Q_ASSERT_X(m_voice->IsRoomValid(static_cast<qint32>(comUnit)), "CVoiceClientVatlib", "Room index out of bounds!"); Q_ASSERT_X(m_voice->IsRoomValid(static_cast<qint32>(comUnit)), "CVoiceClientVatlib", "Room index out of bounds!");
try try
{ {
m_voice->SetRoomVolume(static_cast<qint32>(comUnit), volumne); m_voice->SetRoomVolume(static_cast<qint32>(comUnit), volume);
} }
catch (...) catch (...)
{ {

View File

@@ -7,6 +7,7 @@
#define BLACKCORE_VOICE_VATLIB_H #define BLACKCORE_VOICE_VATLIB_H
#include "voice.h" #include "voice.h"
#include "../blacksound/soundgenerator.h"
#include "../blackmisc/vaudiodevicelist.h" #include "../blackmisc/vaudiodevicelist.h"
#include "../blackmisc/nwuserlist.h" #include "../blackmisc/nwuserlist.h"
#include "../blackmisc/avcallsignlist.h" #include "../blackmisc/avcallsignlist.h"
@@ -294,6 +295,7 @@ namespace BlackCore
#endif #endif
QScopedPointer<Cvatlib_Voice_Simple, Cvatlib_Voice_Simple_Deleter> m_voice; QScopedPointer<Cvatlib_Voice_Simple, Cvatlib_Voice_Simple_Deleter> m_voice;
QScopedPointer<QAudioOutput> m_audioOutput;
BlackMisc::Aviation::CCallsign m_aircraftCallsign; /*!< own callsign to join voice rooms */ BlackMisc::Aviation::CCallsign m_aircraftCallsign; /*!< own callsign to join voice rooms */
BlackMisc::Voice::CVoiceRoomList m_voiceRooms; BlackMisc::Voice::CVoiceRoomList m_voiceRooms;
BlackMisc::Voice::CAudioDeviceList m_devices; /*!< in and output devices */ BlackMisc::Voice::CAudioDeviceList m_devices; /*!< in and output devices */