000e171
diff -Naurw phonon-4.2.96/phonon/globalconfig.cpp phonon-4.2.96.pulseaudio/phonon/globalconfig.cpp
000e171
--- phonon-4.2.96/phonon/globalconfig.cpp	2008-11-27 16:41:41.000000000 +0100
000e171
+++ phonon-4.2.96.pulseaudio/phonon/globalconfig.cpp	2009-01-08 21:29:18.000000000 +0100
000e171
@@ -31,6 +31,7 @@
000e171
 #include "phononnamespace_p.h"
000e171
 
000e171
 #include <QtCore/QList>
000e171
+#include <QtCore/QHash>
000e171
 #include <QtCore/QVariant>
000e171
 
000e171
 QT_BEGIN_NAMESPACE
000e171
@@ -167,6 +168,15 @@
000e171
                     | ((override & HideUnavailableDevices) ? FilterUnavailableDevices : 0)
000e171
                     );
000e171
         }
000e171
+        // make PulseAudio the global default (assume it is already default in this list)
000e171
+        if (!list.isEmpty()) {
000e171
+            int firstIndex = list.first();
000e171
+            if (backendIface->objectDescriptionProperties(Phonon::AudioOutputDeviceType,
000e171
+                  firstIndex)["name"].toString() == "PulseAudio") {
000e171
+                list.removeFirst();
000e171
+                defaultList.prepend(firstIndex);
000e171
+            }
000e171
+        }
000e171
         defaultList += list;
000e171
     }
000e171
 
000e171
@@ -222,6 +232,15 @@
000e171
                     | ((override & HideUnavailableDevices) ? FilterUnavailableDevices : 0)
000e171
                   );
000e171
         }
000e171
+        // make PulseAudio the global default (assume it is already default in this list)
000e171
+        if (!list.isEmpty()) {
000e171
+            int firstIndex = list.first();
000e171
+            if (backendIface->objectDescriptionProperties(Phonon::AudioCaptureDeviceType,
000e171
+                  firstIndex)["name"].toString() == "PulseAudio") {
000e171
+                list.removeFirst();
000e171
+                defaultList.prepend(firstIndex);
000e171
+            }
000e171
+        }
000e171
         defaultList += list;
000e171
     }
000e171