diff --git a/interface/src/scripting/AudioDevices.cpp b/interface/src/scripting/AudioDevices.cpp index 7e31d36f7d..0f8a9ee0c5 100644 --- a/interface/src/scripting/AudioDevices.cpp +++ b/interface/src/scripting/AudioDevices.cpp @@ -283,10 +283,19 @@ void AudioDeviceList::onDevicesChanged(const QList& devices foreach(const HifiAudioDeviceInfo& deviceInfo, devices) { AudioDevice device; device.info = deviceInfo; - device.display = device.info.deviceName() - .replace("High Definition", "HD") - .remove("Device") - .replace(" )", ")"); + + if (deviceInfo.isDefault()) { + if (deviceInfo.getMode() == QAudio::AudioInput) { + device.display = "Default microphone (recommended)"; + } else { + device.display = "Default audio (recommended)"; + } + } else { + device.display = device.info.deviceName() + .replace("High Definition", "HD") + .remove("Device") + .replace(" )", ")"); + } for (bool isHMD : {false, true}) { HifiAudioDeviceInfo& selectedDevice = isHMD ? _selectedHMDDevice : _selectedDesktopDevice; diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 54ca2d3f31..570a7c6c92 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -123,14 +123,14 @@ void AudioClient::checkDevices() { { //is the current device the default?, if so has the underlying QAudioDeviceInfo changed from the os call - if (_inputDeviceInfo.isDefault() && _inputDeviceInfo == _defaultInputDevice) { + if (_inputDeviceInfo.isDefault()) { auto defInput = defaultAudioDeviceForMode(QAudio::AudioInput); //Has the default device changed if (_defaultInputDevice.getDevice() != defInput.getDevice()) { - qDebug() << "Changing Current Default device " << _defaultInputDevice.getAudioDeviceName(); + qDebug() << "Changing Current Default device " << _defaultInputDevice.deviceName(); _defaultInputDevice.setDevice(defInput.getDevice()); - qDebug() << "NEW Default device " << _defaultInputDevice.getAudioDeviceName(); + qDebug() << "NEW Default device " << _defaultInputDevice.deviceName(); QMetaObject::invokeMethod(this, "switchAudioDevice", Qt::DirectConnection, Q_ARG(QAudio::Mode, QAudio::AudioInput), Q_ARG(const HifiAudioDeviceInfo&, _defaultInputDevice)); } } @@ -140,9 +140,9 @@ void AudioClient::checkDevices() { auto defOutput = defaultAudioDeviceForMode(QAudio::AudioOutput); if (_defaultOutputDevice.getDevice() != defOutput.getDevice()) { - qDebug() << "Changing Current Default device " << _defaultOutputDevice.getAudioDeviceName(); + qDebug() << "Changing Current Default device " << _defaultOutputDevice.deviceName(); _defaultOutputDevice.setDevice(defOutput.getDevice()); - qDebug() << "NEW Default device " << _defaultOutputDevice.getAudioDeviceName(); + qDebug() << "NEW Default device " << _defaultOutputDevice.deviceName(); QMetaObject::invokeMethod(this, "switchAudioDevice",Qt::DirectConnection, Q_ARG(QAudio::Mode, QAudio::AudioOutput), Q_ARG(const HifiAudioDeviceInfo&, _defaultOutputDevice)); } } @@ -372,12 +372,10 @@ AudioClient::AudioClient() : connect(&_receivedAudioStream, &InboundAudioStream::mismatchedAudioCodec, this, &AudioClient::handleMismatchAudioFormat); _defaultOutputDevice = defaultAudioDeviceForMode(QAudio::AudioOutput); - _defaultOutputDevice.setDeviceName("Default audio (recommended)"); _defaultOutputDevice.setIsDefault(true); _defaultOutputDevice.setMode(QAudio::AudioOutput); _defaultInputDevice = defaultAudioDeviceForMode(QAudio::AudioInput); - _defaultInputDevice.setDeviceName("Default microphone (recommended)"); _defaultInputDevice.setIsDefault(true); _defaultInputDevice.setMode(QAudio::AudioInput); @@ -649,7 +647,7 @@ HifiAudioDeviceInfo defaultAudioDeviceForMode(QAudio::Mode mode) { for (auto inputDevice : inputDevices) { if (((headsetOn || !aecEnabled) && inputDevice.deviceName() == VOICE_RECOGNITION) || ((!headsetOn && aecEnabled) && inputDevice.deviceName() == VOICE_COMMUNICATION)) { - return HifiAudioDeviceInfo(inputDevice,false,QAudio::AudioInput); + return HifiAudioDeviceInfo(inputDevice, false, QAudio::AudioInput); } } } @@ -1866,7 +1864,7 @@ void AudioClient::outputFormatChanged() { bool AudioClient::switchInputToAudioDevice(const HifiAudioDeviceInfo inputDeviceInfo, bool isShutdownRequest) { Q_ASSERT_X(QThread::currentThread() == thread(), Q_FUNC_INFO, "Function invoked on wrong thread"); - qCDebug(audioclient) << __FUNCTION__ << "inputDeviceInfo: [" << inputDeviceInfo.getDevice().deviceName() << "]"; + qCDebug(audioclient) << __FUNCTION__ << "inputDeviceInfo: [" << inputDeviceInfo.deviceName() <<"----"< void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) { _audioDeviceInfo = devInfo; @@ -19,21 +18,16 @@ void HifiAudioDeviceInfo::setDevice(QAudioDeviceInfo devInfo) { HifiAudioDeviceInfo& HifiAudioDeviceInfo::operator=(const HifiAudioDeviceInfo& other) { _audioDeviceInfo = other.getDevice(); - _deviceName = other.deviceName(); _mode = other.getMode(); _isDefault = other.isDefault(); - _uniqueId = other.getId(); return *this; } + bool HifiAudioDeviceInfo::operator==(const HifiAudioDeviceInfo& rhs) const { - return _audioDeviceInfo == rhs.getDevice() && getId() == rhs.getId(); + return getDevice() == rhs.getDevice() && isDefault() == rhs.isDefault(); } - bool HifiAudioDeviceInfo::operator!=(const HifiAudioDeviceInfo& rhs) const { - return _audioDeviceInfo != rhs.getDevice() && getId() != rhs.getId(); + return getDevice() != rhs.getDevice() && isDefault() != rhs.isDefault(); } -void HifiAudioDeviceInfo::setId(QString name) { - _uniqueId=QString(QCryptographicHash::hash(name.toUtf8().constData(), QCryptographicHash::Md5).toHex()); -} diff --git a/libraries/audio-client/src/HifiAudioDeviceInfo.h b/libraries/audio-client/src/HifiAudioDeviceInfo.h index 3f6fc7fc36..74fe2b37d0 100644 --- a/libraries/audio-client/src/HifiAudioDeviceInfo.h +++ b/libraries/audio-client/src/HifiAudioDeviceInfo.h @@ -28,28 +28,20 @@ public: _audioDeviceInfo = deviceInfo.getDevice(); _mode = deviceInfo.getMode(); _isDefault = deviceInfo.isDefault(); - setDeviceName(deviceInfo.deviceName()); } HifiAudioDeviceInfo(QAudioDeviceInfo deviceInfo, bool isDefault, QAudio::Mode mode) : _audioDeviceInfo(deviceInfo), _isDefault(isDefault), _mode(mode){ - setDeviceName(deviceInfo.deviceName()); } void setMode(QAudio::Mode mode) { _mode = mode; } void setIsDefault(bool isDefault = false) { _isDefault = isDefault; } - void setDeviceName(QString name) { - _deviceName = name; - setId(name); - } + void setDevice(QAudioDeviceInfo devInfo); - void setId(QString name); - QString getAudioDeviceName() { return _audioDeviceInfo.deviceName(); } - QString getId() const { return _uniqueId; } + QString deviceName() const { return _audioDeviceInfo.deviceName(); } QAudioDeviceInfo getDevice() const { return _audioDeviceInfo; } - QString deviceName() const { return _deviceName; } bool isDefault() const { return _isDefault; } QAudio::Mode getMode() const { return _mode; } @@ -59,10 +51,8 @@ public: private: QAudioDeviceInfo _audioDeviceInfo; - QString _deviceName{ "" }; bool _isDefault { false }; QAudio::Mode _mode { QAudio::AudioInput }; - QString _uniqueId; }; #endif \ No newline at end of file