aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/pipewire/outputpipewire.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Output/pipewire/outputpipewire.h')
-rw-r--r--src/plugins/Output/pipewire/outputpipewire.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/plugins/Output/pipewire/outputpipewire.h b/src/plugins/Output/pipewire/outputpipewire.h
index 1b70a94d3..a53612005 100644
--- a/src/plugins/Output/pipewire/outputpipewire.h
+++ b/src/plugins/Output/pipewire/outputpipewire.h
@@ -29,7 +29,7 @@
#include <qmmp/output.h>
#include <qmmp/volume.h>
-class VolumePulseAudio;
+class VolumePipeWire;
/**
@author Ilya Kotov <forkotov02@ya.ru>
@@ -49,12 +49,17 @@ public:
void suspend() override;
void resume() override;
void setMuted(bool mute);
+ void setVolume(const VolumeSettings &v);
+
+ static OutputPipeWire *instance;
+ static VolumePipeWire *volumeControl;
private:
// helper functions
void uninitialize();
//callbacks
static void onProcess(void *data);
+ static void onDrained(void *data);
static void onCoreEventDone(void *data, uint32_t id, int seq);
static void onRegistryEventGlobal(void *data, uint32_t id,
uint32_t permissions, const char *type, uint32_t version,
@@ -97,4 +102,24 @@ private:
QHash <Qmmp::ChannelPosition, spa_audio_channel> m_pw_channels;
};
+class VolumePipeWire : public Volume
+{
+public:
+ VolumePipeWire();
+ ~VolumePipeWire();
+
+ //void updateVolume(const pa_cvolume &v, bool muted);
+ void setVolume(const VolumeSettings &vol) override;
+ VolumeSettings volume() const override;
+ bool isMuted() const override;
+ void setMuted(bool mute) override;
+ VolumeFlags flags() const override;
+ //static VolumeSettings cvolumeToVolumeSettings(const pa_cvolume &v);
+ //static pa_cvolume volumeSettingsToCvolume(const VolumeSettings &v, int channels);
+
+private:
+ VolumeSettings m_volume;
+ bool m_muted = false;
+};
+
#endif // OUTPUTPIPEWIRE_H