This uses the PulseSupport class from phonon to allow use to support
PulseAudio nicely (e.g. nice device listings etc.)
(cherry picked from commit
bf1ef7158347153310cf4644a66da14f85db38c9)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
#include "vlcloader.h"
+#ifdef PHONON_PULSESUPPORT
+# include <phonon/pulsesupport.h>
+#endif
+
namespace Phonon
{
namespace VLC {
if (i_device == device)
return true;
+#ifdef PHONON_PULSESUPPORT
+ if (PulseSupport::getInstance()->isActive()) {
+ i_device = device;
+ libvlc_audio_output_set(vlc_instance, "pulse");
+ qDebug() << "set aout " << "pulse";
+ return true;
+ }
+#endif
+
const QList<AudioDevice> deviceList = p_backend->deviceManager()->audioOutputDevices();
if (device >= 0 && device < deviceList.size()) {
#include "vlcloader.h"
#include "vlcmediaobject.h"
+#ifdef PHONON_PULSESUPPORT
+# include <phonon/pulsesupport.h>
+#endif
+
#include <QtCore/QSet>
#include <QtCore/QVariant>
#include <QtCore/QtPlugin>
, m_effectManager(NULL)
, m_debugLevel(Debug)
{
+#ifdef PHONON_PULSESUPPORT
+ // Initialise PulseAudio support
+ PulseSupport *pulse = PulseSupport::getInstance();
+ pulse->enable();
+ connect(pulse, SIGNAL(objectDescriptionChanged(ObjectDescriptionType)), SIGNAL(objectDescriptionChanged(ObjectDescriptionType)));
+#endif
+
bool wasInit = vlcInit();
setProperty("identifier", QLatin1String("phonon_vlc"));
//#include "widgetrenderer.h"
#include "vlcloader.h"
+#ifdef PHONON_PULSESUPPORT
+# include <phonon/pulsesupport.h>
+#endif
+
/**
* This class manages the list of currently active output devices.
*/
vlcExceptionRaised();
libvlc_audio_output_t *p_start = p_ao_list;
+ bool checkpulse = false;
+#ifdef PHONON_PULSESUPPORT
+ PulseSupport *pulse = PulseSupport::getInstance();
+ checkpulse = pulse->isActive();
+#endif
+ bool haspulse = false;
while (p_ao_list) {
+ if (checkpulse && 0 == strcmp(p_ao_list->psz_name, "pulse")) {
+ haspulse = true;
+ break;
+ }
list.append(p_ao_list->psz_name);
list_hw.append("");
p_ao_list = p_ao_list->p_next;
}
libvlc_audio_output_list_release(p_start);
+
+#ifdef PHONON_PULSESUPPORT
+ if (haspulse)
+ return;
+ pulse->enable(false);
+#endif
+
for (int i = 0 ; i < list.size() ; ++i) {
QByteArray nameId = list.at(i);
QByteArray hwId = list_hw.at(i);