diff --git a/src/blackmisc/audio/audiodeviceinfo.h b/src/blackmisc/audio/audiodeviceinfo.h index 2e19abcf0..dda18be38 100644 --- a/src/blackmisc/audio/audiodeviceinfo.h +++ b/src/blackmisc/audio/audiodeviceinfo.h @@ -62,7 +62,7 @@ namespace BlackMisc bool isOutputDevice() const { return this->getType() == OutputDevice; } //! Valid audio device object? - bool isValid() const { return !m_deviceName.isEmpty(); } + bool isValid() const { return !m_deviceName.isEmpty() && (m_deviceName != Unknown); } //! Is this a default device? bool isDefault() const { return m_deviceName == "default"; } diff --git a/src/blacksound/audioutilities.cpp b/src/blacksound/audioutilities.cpp index f25cfe048..ec42a575f 100644 --- a/src/blacksound/audioutilities.cpp +++ b/src/blacksound/audioutilities.cpp @@ -82,13 +82,13 @@ namespace BlackSound QAudioDeviceInfo getLowestLatencyDevice(const CAudioDeviceInfo &device, QAudioFormat &format) { - if (device.isDefault()) + if (device.isDefault() || !device.isValid()) { if (device.getType() == CAudioDeviceInfo::InputDevice) { return QAudioDeviceInfo::defaultInputDevice(); } else { return QAudioDeviceInfo::defaultOutputDevice(); } } - QAudio::Mode mode = (device.getType() == CAudioDeviceInfo::InputDevice) ? QAudio::AudioInput : QAudio::AudioOutput; + const QAudio::Mode mode = device.isInputDevice() ? QAudio::AudioInput : QAudio::AudioOutput; const QList allQtDevices = QAudioDeviceInfo::availableDevices(mode); // Find the one with lowest latency.