23#ifndef PHONON_PULSESUPPORT_H
24#define PHONON_PULSESUPPORT_H
26#include "phonon_export.h"
27#include "phononnamespace.h"
28#include "objectdescription.h"
37 class PHONON_EXPORT PulseSupport :
public QObject
52 static PulseSupport *getInstanceOrNull(
bool allowNull =
false);
54 static PulseSupport *getInstance();
55 static void shutdown();
93 bool isUsable()
const;
104 bool isRequested()
const;
117 void request(
bool requested);
123 void enable(
bool enabled =
true);
125 QList<int> objectDescriptionIndexes(ObjectDescriptionType type)
const;
126 QHash<QByteArray, QVariant> objectDescriptionProperties(ObjectDescriptionType type,
int index)
const;
127 QList<int> objectIndexesByCategory(ObjectDescriptionType type, Category category)
const;
128 QList<int> objectIndexesByCategory(ObjectDescriptionType type, CaptureCategory category)
const;
130 void setOutputDevicePriorityForCategory(Category category, QList<int> order);
131 void setCaptureDevicePriorityForCategory(CaptureCategory category, QList<int> order);
133 PHONON_DEPRECATED
void setCaptureDevicePriorityForCategory(Category category, QList<int> order);
135 PulseStream *registerOutputStream(QString streamUuid, Category category);
136 PulseStream *registerCaptureStream(QString streamUuid, CaptureCategory category);
137 PHONON_DEPRECATED PulseStream *registerCaptureStream(QString streamUuid, Category category);
157 QHash<QString, QString> streamProperties(QString streamUuid)
const;
171 void setupStreamEnvironment(QString streamUuid);
173 void emitObjectDescriptionChanged(ObjectDescriptionType);
175 bool setOutputName(QString streamUuid, QString name);
176 bool setOutputDevice(QString streamUuid,
int device);
177 bool setOutputVolume(QString streamUuid, qreal volume);
178 bool setOutputMute(QString streamUuid,
bool mute);
179 bool setCaptureDevice(QString streamUuid,
int device);
182 void clearStreamCache(QString streamUuid);
186 void connectToDaemon();
189 void objectDescriptionChanged(ObjectDescriptionType);
193 ~PulseSupport()
override;