From 88799455673ba6cad488153d248c1651ac345ef0 Mon Sep 17 00:00:00 2001 From: Mithra Pattison Date: Thu, 28 Jun 2012 15:40:16 +1000 Subject: Update ALSA device enumeration to return all devices Previously, if a device was marked as "Default Audio Device" then only this device would be returned during device enumeration. Now it returns all devices, with the default device placed first. Task-number: QTBUG-22103 Change-Id: I1705415bf6b58ff046c4d2812107b46b76500001 Reviewed-by: Michael Goddard --- src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp index 0c2fe49b6..4ef96c779 100644 --- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp +++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp @@ -406,7 +406,6 @@ void QAudioDeviceInfoInternal::updateLists() QList QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) { - QList allDevices; QList devices; QByteArray filter; @@ -436,8 +435,9 @@ QList QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) if ((descr != NULL) && ((io == NULL) || (io == filter))) { QString deviceName = QLatin1String(name); QString deviceDescription = QLatin1String(descr); - allDevices.append(deviceName.toLocal8Bit().constData()); if (deviceDescription.contains(QLatin1String("Default Audio Device"))) + devices.prepend(deviceName.toLocal8Bit().constData()); + else devices.append(deviceName.toLocal8Bit().constData()); } @@ -450,10 +450,6 @@ QList QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) ++n; } snd_device_name_free_hint(hints); - - if(devices.size() > 0) { - devices.append("default"); - } #else int idx = 0; char* name; @@ -462,14 +458,11 @@ QList QAudioDeviceInfoInternal::availableDevices(QAudio::Mode mode) devices.append(name); idx++; } - if (idx > 0) - devices.append("default"); -#endif -#if !defined(Q_WS_MAEMO_6) - if (devices.size() == 0 && allDevices.size() > 0) - return allDevices; #endif + if (devices.size() > 0) + devices.append("default"); + return devices; } -- cgit v1.2.3