From 0410a45da1430f88617704e25b019a6b8fff2a11 Mon Sep 17 00:00:00 2001 From: amer cerkic Date: Tue, 22 Oct 2019 11:11:13 -0700 Subject: [PATCH] fixed selection issue --- interface/src/scripting/AudioDevices.cpp | 21 ++++++++++++++++----- libraries/audio-client/src/AudioClient.cpp | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/interface/src/scripting/AudioDevices.cpp b/interface/src/scripting/AudioDevices.cpp index 4aa1018c23..7fc129de3c 100644 --- a/interface/src/scripting/AudioDevices.cpp +++ b/interface/src/scripting/AudioDevices.cpp @@ -268,9 +268,14 @@ void AudioDeviceList::onDevicesChanged(const QList& devices for (bool isHMD : {false, true}) { auto& backupSelectedDeviceName = isHMD ? _backupSelectedHMDDeviceName : _backupSelectedDesktopDeviceName; if (deviceInfo.deviceName() == backupSelectedDeviceName) { - HifiAudioDeviceInfo& selectedDevice = isHMD ? _selectedHMDDevice : _selectedDesktopDevice; - selectedDevice = deviceInfo; - backupSelectedDeviceName.clear(); + if (isHMD && deviceInfo.getDeviceType() != HifiAudioDeviceInfo::desktop) { + _selectedHMDDevice= deviceInfo; + backupSelectedDeviceName.clear(); + } else if (!isHMD && deviceInfo.getDeviceType() != HifiAudioDeviceInfo::hmd) { + _selectedDesktopDevice = deviceInfo; + backupSelectedDeviceName.clear(); + } + } } } @@ -323,8 +328,14 @@ void AudioDeviceList::onDevicesChanged(const QList& devices } else { //no selected device for context. fallback to saved - const QString& savedDeviceName = isHMD ? _hmdSavedDeviceName : _desktopSavedDeviceName; - isSelected = (device.info.deviceName() == savedDeviceName); + QString& savedDeviceName = isHMD ? _hmdSavedDeviceName : _desktopSavedDeviceName; + + if (device.info.deviceName() == savedDeviceName) { + if ((isHMD && device.info.getDeviceType() != HifiAudioDeviceInfo::desktop) || + (!isHMD && device.info.getDeviceType() != HifiAudioDeviceInfo::hmd)) { + isSelected = true; + } + } } if (isSelected) { diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index cb8128bbc9..3e1557e09b 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -570,7 +570,7 @@ HifiAudioDeviceInfo defaultAudioDeviceForMode(QAudio::Mode mode) { HifiAudioDeviceInfo foundDevice; foreach(QAudioDeviceInfo audioDevice, devices) { if (audioDevice.deviceName().trimmed() == deviceName.trimmed()) { - foundDevice=HifiAudioDeviceInfo(audioDevice, true, mode, HifiAudioDeviceInfo::desktop); + foundDevice = HifiAudioDeviceInfo(audioDevice, true, mode, HifiAudioDeviceInfo::desktop); break; } }