src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
changeset 37 758a864f9613
parent 33 3e2da88830cd
--- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -431,21 +431,24 @@
 
     while (*n != NULL) {
         name = snd_device_name_get_hint(*n, "NAME");
-        descr = snd_device_name_get_hint(*n, "DESC");
-        io = snd_device_name_get_hint(*n, "IOID");
-        if((name != NULL) && (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.append(deviceName.toLocal8Bit().constData());
+        if (name != 0 && qstrcmp(name, "null") != 0) {
+            descr = snd_device_name_get_hint(*n, "DESC");
+            io = snd_device_name_get_hint(*n, "IOID");
+
+            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.append(deviceName.toLocal8Bit().constData());
+            }
+
+            free(name);
+            if (descr != NULL)
+                free(descr);
+            if (io != NULL)
+                free(io);
         }
-        if(name != NULL)
-            free(name);
-        if(descr != NULL)
-            free(descr);
-        if(io != NULL)
-            free(io);
         ++n;
     }
     snd_device_name_free_hint(hints);