[AFV] Ref T730, changed to "startedAudio" signal, relayed from CAfvClient (and not like before emitted in context)

Since start can be async (in another thread) it was possible the "old" signal was emitted too early
This commit is contained in:
Klaus Basan
2019-10-13 01:44:50 +02:00
parent 0a24d80291
commit f76448fbaf
4 changed files with 17 additions and 24 deletions

View File

@@ -109,7 +109,7 @@ namespace BlackGui
// context
c = connect(sGui->getIContextAudio(), &IContextAudio::changedAudioDevices, this, &CAudioDeviceVolumeSetupComponent::onAudioDevicesChanged, Qt::QueuedConnection);
Q_ASSERT(c);
c = connect(sGui->getIContextAudio(), &IContextAudio::changedSelectedAudioDevices, this, &CAudioDeviceVolumeSetupComponent::onCurrentAudioDevicesChanged, Qt::QueuedConnection);
c = connect(sGui->getIContextAudio(), &IContextAudio::startedAudio, this, &CAudioDeviceVolumeSetupComponent::onAudioStarted, Qt::QueuedConnection);
Q_ASSERT(c);
c = connect(sGui->getIContextAudio(), &IContextAudio::outputVolumePeakVU, this, &CAudioDeviceVolumeSetupComponent::onOutputVU, Qt::QueuedConnection);
@@ -193,6 +193,7 @@ namespace BlackGui
void CAudioDeviceVolumeSetupComponent::setTransmitReceiveInUiFromVoiceClient()
{
if (!this->hasAudio()) { return; }
const bool com1Enabled = sGui->getIContextAudio()->isEnabledComUnit(CComSystem::Com1);
const bool com2Enabled = sGui->getIContextAudio()->isEnabledComUnit(CComSystem::Com2);
@@ -218,7 +219,8 @@ namespace BlackGui
{
if (!this->hasAudio()) { return; }
this->onAudioDevicesChanged(sGui->getIContextAudio()->getAudioDevices());
this->onCurrentAudioDevicesChanged(sGui->getIContextAudio()->getCurrentAudioDevices());
const CAudioDeviceInfoList currentDevices = sGui->getIContextAudio()->getCurrentAudioDevices();
this->onAudioStarted(currentDevices.getInputDevices().frontOrDefault(), currentDevices.getOutputDevices().frontOrDefault());
}
bool CAudioDeviceVolumeSetupComponent::hasAudio() const
@@ -306,19 +308,10 @@ namespace BlackGui
sGui->getIContextAudio()->setCurrentAudioDevices(in, out);
}
void CAudioDeviceVolumeSetupComponent::onCurrentAudioDevicesChanged(const CAudioDeviceInfoList &devices)
void CAudioDeviceVolumeSetupComponent::onAudioStarted(const CAudioDeviceInfo &input, const CAudioDeviceInfo &output)
{
for (auto &device : devices)
{
if (device.getType() == CAudioDeviceInfo::InputDevice)
{
ui->cb_SetupAudioInputDevice->setCurrentText(device.toQString(true));
}
else if (device.getType() == CAudioDeviceInfo::OutputDevice)
{
ui->cb_SetupAudioOutputDevice->setCurrentText(device.toQString(true));
}
}
ui->cb_SetupAudioInputDevice->setCurrentText(input.toQString(true));
ui->cb_SetupAudioOutputDevice->setCurrentText(output.toQString(true));
}
void CAudioDeviceVolumeSetupComponent::onAudioDevicesChanged(const CAudioDeviceInfoList &devices)

View File

@@ -71,7 +71,7 @@ namespace BlackGui
void onAudioDeviceSelected(int index);
//! Current audio devices changed
void onCurrentAudioDevicesChanged(const BlackMisc::Audio::CAudioDeviceInfoList &devices);
void onAudioStarted(const BlackMisc::Audio::CAudioDeviceInfo &input, const BlackMisc::Audio::CAudioDeviceInfo &output);
//! Audio devices changed
void onAudioDevicesChanged(const BlackMisc::Audio::CAudioDeviceInfoList &devices);