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();