Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > f3998c8fc85cdd48c5141e7080e23f35 > files > 3

kdebase4-runtime-4.1.2-3mdv2009.0.src.rpm

Index: phonon/libkaudiodevicelist/audiodeviceenumerator_p.h
===================================================================
--- phonon/libkaudiodevicelist/audiodeviceenumerator_p.h	(revision 862452)
+++ phonon/libkaudiodevicelist/audiodeviceenumerator_p.h	(working copy)
@@ -45,6 +45,8 @@
         KSharedConfig::Ptr config;
 
         AudioDeviceEnumerator q;
+    private:
+        bool m_using_pulse;
 };
 } // namespace Phonon
 
Index: phonon/libkaudiodevicelist/audiodeviceenumerator.cpp
===================================================================
--- phonon/libkaudiodevicelist/audiodeviceenumerator.cpp	(revision 862452)
+++ phonon/libkaudiodevicelist/audiodeviceenumerator.cpp	(working copy)
@@ -49,6 +49,10 @@
 AudioDeviceEnumeratorPrivate::AudioDeviceEnumeratorPrivate()
     : q(this)
 {
+    KConfig pulseconf("/etc/sysconfig/pulseaudio");
+    KConfigGroup group(&pulseconf, "");
+    m_using_pulse = (group.readEntry( "PULSE_SERVER_TYPE", "None" ) == "personal");
+
     config = KSharedConfig::openConfig("phonondevicesrc", KConfig::NoGlobals);
     findDevices();
     QObject::connect(Solid::DeviceNotifier::instance(), SIGNAL(deviceAdded(const QString &)), &q, SLOT(_k_deviceAdded(const QString &)));
@@ -74,14 +78,18 @@
             if (dev.isCaptureDevice()) {
                 capturedevicelist << dev;
                 if (dev.isPlaybackDevice()) {
+                    if (!m_using_pulse) {
                     playbackdevicelist << dev;
                     alreadyFoundCards << QLatin1String("AudioIODevice_") + dev.d->uniqueId;
+                    }
                 } else {
                     alreadyFoundCards << QLatin1String("AudioCaptureDevice_") + dev.d->uniqueId;
                 }
             } else {
+                if (!m_using_pulse) {
                 playbackdevicelist << dev;
                 alreadyFoundCards << QLatin1String("AudioOutputDevice_") + dev.d->uniqueId;
+                }
             }
         }
     }
@@ -117,9 +125,11 @@
             if (dev.isCaptureDevice()) {
                 capturedevicelist << dev;
                 if (dev.isPlaybackDevice()) {
+                    if (!m_using_pulse)
                     playbackdevicelist << dev;
                 }
             } else {
+                if (!m_using_pulse)
                 playbackdevicelist << dev;
             }
             alreadyFoundCards << groupName;
@@ -226,6 +236,7 @@
     foreach (const DeviceHint &deviceHint, deviceHints) {
         AudioDevice dev(deviceHint.name, deviceHint.description, config);
         if (dev.isPlaybackDevice()) {
+            if (!m_using_pulse)
             playbackdevicelist << dev;
         }
         if (dev.isCaptureDevice()) {
@@ -385,6 +396,7 @@
                         break;
                     }
                 }
+                if (!m_using_pulse)
                 playbackdevicelist << dev;
             }
             kDebug(603) << "emit q.devicePlugged " << dev.cardName();