Ref T731, connected AFV client signals with UI

This commit is contained in:
Klaus Basan
2019-09-23 00:30:50 +02:00
committed by Mat Sutcliffe
parent dc5cc4c7b0
commit 11275d3560
3 changed files with 35 additions and 5 deletions

View File

@@ -80,6 +80,9 @@ namespace BlackCore
//! Destructor //! Destructor
virtual ~CContextAudio() override; virtual ~CContextAudio() override;
//! Reference to voice client
BlackCore::Afv::Clients::CAfvClient &voiceClient() { return m_voiceClient; }
public slots: public slots:
// Interface implementations // Interface implementations
//! \publicsection //! \publicsection
@@ -127,11 +130,13 @@ namespace BlackCore
bool canTalk() const; bool canTalk() const;
BlackMisc::Aviation::CCallsignSet getRoomCallsigns(BlackMisc::Aviation::CComSystem::ComUnit comUnitValue) const; BlackMisc::Aviation::CCallsignSet getRoomCallsigns(BlackMisc::Aviation::CComSystem::ComUnit comUnitValue) const;
//! @deprecated old voice @{
void initVoiceChannels(); void initVoiceChannels();
void initInputDevice(); void initInputDevice();
void initOutputDevice(); void initOutputDevice();
void initAudioMixer(); void initAudioMixer();
void initVoiceVatlib(bool allocateInput = true); void initVoiceVatlib(bool allocateInput = true);
//! @}
//! \copydoc IVoice::connectionStatusChanged //! \copydoc IVoice::connectionStatusChanged
//! \sa IContextAudio::changedVoiceRooms //! \sa IContextAudio::changedVoiceRooms

View File

@@ -6,9 +6,12 @@
* or distributed except according to the terms contained in the LICENSE file. * or distributed except according to the terms contained in the LICENSE file.
*/ */
#include "blackcore/context/contextaudio.h"
#include "blackgui/components/audiodevicevolumesetupcomponent.h" #include "blackgui/components/audiodevicevolumesetupcomponent.h"
#include "blackgui/guiapplication.h" #include "blackgui/guiapplication.h"
#include "blackcore/afv/clients/afvclient.h"
#include "blackcore/context/contextaudioimpl.h"
#include "blackmisc/audio/audiodeviceinfo.h" #include "blackmisc/audio/audiodeviceinfo.h"
#include "blackmisc/audio/notificationsounds.h" #include "blackmisc/audio/notificationsounds.h"
#include "blackmisc/audio/audiosettings.h" #include "blackmisc/audio/audiosettings.h"
@@ -23,6 +26,7 @@
#include <QFileDialog> #include <QFileDialog>
using namespace BlackCore; using namespace BlackCore;
using namespace BlackCore::Afv::Clients;
using namespace BlackCore::Context; using namespace BlackCore::Context;
using namespace BlackMisc; using namespace BlackMisc;
using namespace BlackMisc::Aviation; using namespace BlackMisc::Aviation;
@@ -84,8 +88,16 @@ namespace BlackGui
Q_ASSERT(c); Q_ASSERT(c);
c = connect(sGui->getIContextAudio(), &IContextAudio::changedSelectedAudioDevices, this, &CAudioDeviceVolumeSetupComponent::onCurrentAudioDevicesChanged, Qt::QueuedConnection); c = connect(sGui->getIContextAudio(), &IContextAudio::changedSelectedAudioDevices, this, &CAudioDeviceVolumeSetupComponent::onCurrentAudioDevicesChanged, Qt::QueuedConnection);
Q_ASSERT(c); Q_ASSERT(c);
if (sGui->getIContextAudio()->isUsingImplementingObject())
{
CAfvClient &afvClient = sGui->getCoreFacade()->getCContextAudio()->voiceClient();
connect(&afvClient, &CAfvClient::outputVolumePeakVU, this, &CAudioDeviceVolumeSetupComponent::onOutputVU);
connect(&afvClient, &CAfvClient::inputVolumePeakVU, this, &CAudioDeviceVolumeSetupComponent::onInputVU);
} }
Q_UNUSED(c);
}
Q_UNUSED(c)
} }
CAudioDeviceVolumeSetupComponent::~CAudioDeviceVolumeSetupComponent() CAudioDeviceVolumeSetupComponent::~CAudioDeviceVolumeSetupComponent()
@@ -177,7 +189,7 @@ namespace BlackGui
void CAudioDeviceVolumeSetupComponent::onVolumeSliderChanged(int v) void CAudioDeviceVolumeSetupComponent::onVolumeSliderChanged(int v)
{ {
Q_UNUSED(v); Q_UNUSED(v)
m_volumeSliderChanged.inputSignal(); m_volumeSliderChanged.inputSignal();
} }
@@ -192,6 +204,16 @@ namespace BlackGui
m_audioSettings.setAndSave(as); m_audioSettings.setAndSave(as);
} }
void CAudioDeviceVolumeSetupComponent::onOutputVU(double vu)
{
this->setOutLevel(qRound(vu * 100.0), 0, 100);
}
void CAudioDeviceVolumeSetupComponent::onInputVU(double vu)
{
this->setInLevel(qRound(vu * 100.0), 0, 100);
}
void CAudioDeviceVolumeSetupComponent::onAudioDeviceSelected(int index) void CAudioDeviceVolumeSetupComponent::onAudioDeviceSelected(int index)
{ {
if (!sGui || sGui->isShuttingDown() || !sGui->getIContextAudio()) { return; } if (!sGui || sGui->isShuttingDown() || !sGui->getIContextAudio()) { return; }

View File

@@ -50,8 +50,8 @@ namespace BlackGui
//! @} //! @}
//! Set input and output level values @{ //! Set input and output level values @{
void setInLevel(int value, int from = BlackMisc::Audio::CSettings::InMin, int to = BlackMisc::Audio::CSettings::InMax); void setInLevel(int value, int from, int to);
void setOutLevel(int value, int from = BlackMisc::Audio::CSettings::OutMin, int to = BlackMisc::Audio::CSettings::OutMax); void setOutLevel(int value, int from, int to);
//! @} //! @}
//! Info string //! Info string
@@ -92,6 +92,9 @@ namespace BlackGui
//! Save the audio volumes //! Save the audio volumes
void saveVolumes(); void saveVolumes();
void onOutputVU(double vu);
void onInputVU(double vu);
QScopedPointer<Ui::CAudioDeviceVolumeSetupComponent> ui; QScopedPointer<Ui::CAudioDeviceVolumeSetupComponent> ui;
BlackMisc::CDigestSignal m_volumeSliderChanged { this, &CAudioDeviceVolumeSetupComponent::saveVolumes, 1000, 10 }; BlackMisc::CDigestSignal m_volumeSliderChanged { this, &CAudioDeviceVolumeSetupComponent::saveVolumes, 1000, 10 };
BlackMisc::CSetting<BlackMisc::Audio::TSettings> m_audioSettings { this, &CAudioDeviceVolumeSetupComponent::reloadSettings }; BlackMisc::CSetting<BlackMisc::Audio::TSettings> m_audioSettings { this, &CAudioDeviceVolumeSetupComponent::reloadSettings };