aboutsummaryrefslogtreecommitdiffstats
path: root/src/mixer/MixerInternal.hxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-02-06 20:44:33 +0100
committerMax Kellermann <max@duempel.org>2014-02-06 20:52:33 +0100
commitb6df4680df08db7827af56d5adf2a04264f2dcb9 (patch)
tree310e0e9305cdf1e5ef6da56c2f60af15c3774cb6 /src/mixer/MixerInternal.hxx
parente04090b477a6ec3c18b43250cf2ea37985057455 (diff)
downloadmpd-b6df4680df08db7827af56d5adf2a04264f2dcb9.tar.gz
mpd-b6df4680df08db7827af56d5adf2a04264f2dcb9.tar.xz
mpd-b6df4680df08db7827af56d5adf2a04264f2dcb9.zip
MixerPlugin: convert function pointers to Mixer virtual methods
Diffstat (limited to '')
-rw-r--r--src/mixer/MixerInternal.hxx32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mixer/MixerInternal.hxx b/src/mixer/MixerInternal.hxx
index 5d1ad1362..2c6282ebb 100644
--- a/src/mixer/MixerInternal.hxx
+++ b/src/mixer/MixerInternal.hxx
@@ -23,6 +23,7 @@
#include "MixerPlugin.hxx"
#include "MixerList.hxx"
#include "thread/Mutex.hxx"
+#include "Compiler.h"
class Mixer {
public:
@@ -53,9 +54,40 @@ public:
Mixer(const Mixer &) = delete;
+ virtual ~Mixer() {}
+
bool IsPlugin(const MixerPlugin &other) const {
return &plugin == &other;
}
+
+ /**
+ * Open mixer device
+ *
+ * @return true on success, false on error
+ */
+ virtual bool Open(Error &error) = 0;
+
+ /**
+ * Close mixer device
+ */
+ virtual void Close() = 0;
+
+ /**
+ * Reads the current volume.
+ *
+ * @return the current volume (0..100 including) or -1 if
+ * unavailable or on error (error set, mixer will be closed)
+ */
+ gcc_pure
+ virtual int GetVolume(Error &error) = 0;
+
+ /**
+ * Sets the volume.
+ *
+ * @param volume the new volume (0..100 including) @return
+ * true on success, false on error
+ */
+ virtual bool SetVolume(unsigned volume, Error &error) = 0;
};
#endif