diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index a8a627ffab..425216db99 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -121,10 +121,7 @@ void AudioClient::checkDevices() { auto outputDevices = getAvailableDevices(QAudio::AudioOutput); auto defInput = defaultAudioDeviceForMode(QAudio::AudioInput); - defInput.setIsDefault(true); - auto defOutput = defaultAudioDeviceForMode(QAudio::AudioOutput); - defOutput.setIsDefault(true); //add the pseudo device to the list of devices inputDevices.push_front(defInput); @@ -613,8 +610,8 @@ HifiAudioDeviceInfo defaultAudioDeviceForMode(QAudio::Mode mode) { } #endif // fallback for failed lookup is the default device - return (mode == QAudio::AudioInput) ? HifiAudioDeviceInfo(QAudioDeviceInfo::defaultInputDevice(), false, QAudio::AudioInput) : - HifiAudioDeviceInfo(QAudioDeviceInfo::defaultOutputDevice(), false, QAudio::AudioOutput); + return (mode == QAudio::AudioInput) ? HifiAudioDeviceInfo(QAudioDeviceInfo::defaultInputDevice(), true, QAudio::AudioInput) : + HifiAudioDeviceInfo(QAudioDeviceInfo::defaultOutputDevice(), true, QAudio::AudioOutput); } bool AudioClient::getNamedAudioDeviceForModeExists(QAudio::Mode mode, const QString& deviceName) { @@ -1017,6 +1014,10 @@ bool AudioClient::switchAudioDevice(QAudio::Mode mode, const HifiAudioDeviceInfo } } +bool AudioClient::switchAudioDevice(QAudio::Mode mode, const QString& deviceName) { + return switchAudioDevice(mode, getNamedAudioDeviceForMode(mode, deviceName)); +} + void AudioClient::configureReverb() { ReverbParameters p; diff --git a/libraries/audio-client/src/AudioClient.h b/libraries/audio-client/src/AudioClient.h index de3e98420d..a13943f22e 100644 --- a/libraries/audio-client/src/AudioClient.h +++ b/libraries/audio-client/src/AudioClient.h @@ -238,7 +238,7 @@ public slots: // calling with a null QAudioDevice will use the system default bool switchAudioDevice(QAudio::Mode mode, const HifiAudioDeviceInfo& deviceInfo = HifiAudioDeviceInfo()); - + bool switchAudioDevice(QAudio::Mode mode, const QString& deviceName); // Qt opensles plugin is not able to detect when the headset is plugged in void setHeadsetPluggedIn(bool pluggedIn); diff --git a/libraries/audio-client/src/HifiAudioDeviceInfo.h b/libraries/audio-client/src/HifiAudioDeviceInfo.h index d923b4231c..85da862d05 100644 --- a/libraries/audio-client/src/HifiAudioDeviceInfo.h +++ b/libraries/audio-client/src/HifiAudioDeviceInfo.h @@ -40,10 +40,12 @@ public: void setIsDefault(bool isDefault = false) { _isDefault = isDefault; } void setDevice(QAudioDeviceInfo devInfo); QString deviceName() const { +#if defined(Q_OS_ANDROID) + return _audioDeviceInfo.deviceName(); +#endif if (_isDefault) { return "default"; - } - else { + } else { return _audioDeviceInfo.deviceName(); } }