mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 20:15:35 +08:00
[AFV] Ref T739, avoid roundtrips if devices did not change but are refreshed
This commit is contained in:
@@ -222,7 +222,8 @@ namespace BlackGui
|
||||
void CAudioDeviceVolumeSetupComponent::initAudioDeviceLists()
|
||||
{
|
||||
if (!this->hasAudio()) { return; }
|
||||
this->onAudioDevicesChanged(sGui->getCContextAudioBase()->getAudioDevices());
|
||||
const bool changed = this->onAudioDevicesChanged(sGui->getCContextAudioBase()->getAudioDevices());
|
||||
if (!changed) { return; }
|
||||
const CAudioDeviceInfoList currentDevices = sGui->getCContextAudioBase()->getCurrentAudioDevices();
|
||||
this->onAudioStarted(currentDevices.getInputDevices().frontOrDefault(), currentDevices.getOutputDevices().frontOrDefault());
|
||||
}
|
||||
@@ -264,7 +265,7 @@ namespace BlackGui
|
||||
if (!hasAudio()) { return; }
|
||||
this->initAudioDeviceLists();
|
||||
const CAudioDeviceInfo i = this->getSelectedInputDevice();
|
||||
const CAudioDeviceInfo o = this->getSelectedInputDevice();
|
||||
const CAudioDeviceInfo o = this->getSelectedOutputDevice();
|
||||
sGui->getCContextAudioBase()->setCurrentAudioDevices(i, o);
|
||||
}
|
||||
|
||||
@@ -318,8 +319,11 @@ namespace BlackGui
|
||||
ui->cb_SetupAudioOutputDevice->setCurrentText(output.toQString(true));
|
||||
}
|
||||
|
||||
void CAudioDeviceVolumeSetupComponent::onAudioDevicesChanged(const CAudioDeviceInfoList &devices)
|
||||
bool CAudioDeviceVolumeSetupComponent::onAudioDevicesChanged(const CAudioDeviceInfoList &devices)
|
||||
{
|
||||
if (m_cbDevices.hasSameDevices(devices)) { return false; } // avoid numerous follow up actions
|
||||
m_cbDevices = devices;
|
||||
|
||||
ui->cb_SetupAudioOutputDevice->clear();
|
||||
ui->cb_SetupAudioInputDevice->clear();
|
||||
|
||||
@@ -340,6 +344,7 @@ namespace BlackGui
|
||||
|
||||
if (!i.isEmpty()) { ui->cb_SetupAudioInputDevice->setCurrentText(i); }
|
||||
if (!o.isEmpty()) { ui->cb_SetupAudioOutputDevice->setCurrentText(o); }
|
||||
return true;
|
||||
}
|
||||
|
||||
void CAudioDeviceVolumeSetupComponent::onLoopbackToggled(bool loopback)
|
||||
|
||||
@@ -74,7 +74,7 @@ namespace BlackGui
|
||||
void onAudioStarted(const BlackMisc::Audio::CAudioDeviceInfo &input, const BlackMisc::Audio::CAudioDeviceInfo &output);
|
||||
|
||||
//! Audio devices changed
|
||||
void onAudioDevicesChanged(const BlackMisc::Audio::CAudioDeviceInfoList &devices);
|
||||
bool onAudioDevicesChanged(const BlackMisc::Audio::CAudioDeviceInfoList &devices);
|
||||
|
||||
//! Loopback toggled
|
||||
void onLoopbackToggled(bool loopback);
|
||||
@@ -113,6 +113,7 @@ namespace BlackGui
|
||||
//! @}
|
||||
|
||||
QScopedPointer<Ui::CAudioDeviceVolumeSetupComponent> ui;
|
||||
BlackMisc::Audio::CAudioDeviceInfoList m_cbDevices;
|
||||
BlackMisc::CDigestSignal m_volumeSliderChanged { this, &CAudioDeviceVolumeSetupComponent::saveVolumes, 1000, 10 };
|
||||
BlackMisc::CSetting<BlackMisc::Audio::TSettings> m_audioSettings { this, &CAudioDeviceVolumeSetupComponent::reloadSettings };
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user