Use correct default audio output and input devices on Windows.

It was returning the first available device as the default, which might
not be the actual default device. Use the WAVE_MAPPER device ID instead
that tells Windows to use the most appropriate device.

Change-Id: Id1e9324e889bbaaab54bc0e0da810a7ce5fcb592
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
This commit is contained in:
Yoann Lopes
2013-06-25 13:20:55 +02:00
committed by The Qt Project
parent 17053a450b
commit f424e8249b

View File

@@ -469,20 +469,22 @@ QList<QByteArray> QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode)
QByteArray QAudioDeviceInfoInternal::defaultOutputDevice() QByteArray QAudioDeviceInfoInternal::defaultOutputDevice()
{ {
QList<QByteArray> list = availableDevices(QAudio::AudioOutput); QByteArray defaultDevice;
if (list.size() > 0) QDataStream ds(&defaultDevice, QIODevice::WriteOnly);
return list.at(0); ds << quint32(WAVE_MAPPER) // device ID for default device
else << QStringLiteral("Default Output Device");
return QByteArray();
return defaultDevice;
} }
QByteArray QAudioDeviceInfoInternal::defaultInputDevice() QByteArray QAudioDeviceInfoInternal::defaultInputDevice()
{ {
QList<QByteArray> list = availableDevices(QAudio::AudioInput); QByteArray defaultDevice;
if (list.size() > 0) QDataStream ds(&defaultDevice, QIODevice::WriteOnly);
return list.at(0); ds << quint32(WAVE_MAPPER) // device ID for default device
else << QStringLiteral("Default Input Device");
return QByteArray();
return defaultDevice;
} }
QT_END_NAMESPACE QT_END_NAMESPACE