diff --git a/interface/src/scripting/AudioDevices.cpp b/interface/src/scripting/AudioDevices.cpp index 85e7faef4d..eae4a61552 100644 --- a/interface/src/scripting/AudioDevices.cpp +++ b/interface/src/scripting/AudioDevices.cpp @@ -66,8 +66,8 @@ static QString getTargetDevice(bool hmd, QAudio::Mode mode) { } else { // if (_mode == QAudio::AudioOutput) deviceName = qApp->getActiveDisplayPlugin()->getPreferredAudioOutDevice(); } - } else if (!setting.isSet()) { - deviceName = "default"; + } else { + deviceName = HifiAudioDeviceInfo::DEFAULT_DEVICE_NAME; } return deviceName; } @@ -198,16 +198,10 @@ void AudioDeviceList::resetDevice(bool contextIsHMD) { void AudioDeviceList::onDeviceChanged(const HifiAudioDeviceInfo& device, bool isHMD) { HifiAudioDeviceInfo& selectedDevice = isHMD ? _selectedHMDDevice : _selectedDesktopDevice; selectedDevice = device; - for (auto i = 0; i < _devices.size(); ++i) { std::shared_ptr device = _devices[i]; bool& isSelected = isHMD ? device->selectedHMD : device->selectedDesktop; - HifiAudioDeviceInfo devInfo = device->info; - isSelected = false; - - if (devInfo == selectedDevice) { - isSelected = true; - } + isSelected = device->info == selectedDevice; } emit deviceChanged(selectedDevice); diff --git a/libraries/audio-client/src/HifiAudioDeviceInfo.cpp b/libraries/audio-client/src/HifiAudioDeviceInfo.cpp index d6a288e7d1..6e2d5fbe92 100644 --- a/libraries/audio-client/src/HifiAudioDeviceInfo.cpp +++ b/libraries/audio-client/src/HifiAudioDeviceInfo.cpp @@ -12,6 +12,8 @@ #include "HifiAudioDeviceInfo.h" +const QString HifiAudioDeviceInfo::DEFAULT_DEVICE_NAME = "default "; + void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) { _audioDeviceInfo = devInfo; } @@ -25,9 +27,10 @@ HifiAudioDeviceInfo& HifiAudioDeviceInfo::operator=(const HifiAudioDeviceInfo& o bool HifiAudioDeviceInfo::operator==(const HifiAudioDeviceInfo& rhs) const { + //Does the QAudioDeviceinfo match as well as is this the default device or return getDevice() == rhs.getDevice() && isDefault() == rhs.isDefault(); } bool HifiAudioDeviceInfo::operator!=(const HifiAudioDeviceInfo& rhs) const { - return getDevice() != rhs.getDevice() && isDefault() != rhs.isDefault(); + return getDevice() != rhs.getDevice() || isDefault() != rhs.isDefault(); } diff --git a/libraries/audio-client/src/HifiAudioDeviceInfo.h b/libraries/audio-client/src/HifiAudioDeviceInfo.h index 85da862d05..99520f1643 100644 --- a/libraries/audio-client/src/HifiAudioDeviceInfo.h +++ b/libraries/audio-client/src/HifiAudioDeviceInfo.h @@ -37,14 +37,14 @@ public: } void setMode(QAudio::Mode mode) { _mode = mode; } - void setIsDefault(bool isDefault = false) { _isDefault = isDefault; } + void setIsDefault() { _isDefault = true; } void setDevice(QAudioDeviceInfo devInfo); QString deviceName() const { #if defined(Q_OS_ANDROID) return _audioDeviceInfo.deviceName(); #endif if (_isDefault) { - return "default"; + return DEFAULT_DEVICE_NAME; } else { return _audioDeviceInfo.deviceName(); } @@ -61,6 +61,9 @@ private: QAudioDeviceInfo _audioDeviceInfo; bool _isDefault { false }; QAudio::Mode _mode { QAudio::AudioInput }; + +public: + static const QString DEFAULT_DEVICE_NAME; }; #endif \ No newline at end of file