aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Output/pipewire/outputpipewire.h
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-04-27 18:49:19 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2021-04-27 18:49:19 +0000
commit278dc516a8b9fd4b6bd7b2d82654048b756ddfb6 (patch)
tree49902088a0063df77b980cda40848f56ca5b67a4 /src/plugins/Output/pipewire/outputpipewire.h
parenta4d2cd0cd112fd21bf757b2d6021cc19c739e780 (diff)
downloadqmmp-278dc516a8b9fd4b6bd7b2d82654048b756ddfb6.tar.gz
qmmp-278dc516a8b9fd4b6bd7b2d82654048b756ddfb6.tar.bz2
qmmp-278dc516a8b9fd4b6bd7b2d82654048b756ddfb6.zip
pipewire: added volume control
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9843 90c681e8-e032-0410-971d-27865f9a5e38
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