diff options
author | Max Kellermann <max@duempel.org> | 2014-02-06 20:44:33 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-02-06 20:52:33 +0100 |
commit | b6df4680df08db7827af56d5adf2a04264f2dcb9 (patch) | |
tree | 310e0e9305cdf1e5ef6da56c2f60af15c3774cb6 /src/mixer/MixerInternal.hxx | |
parent | e04090b477a6ec3c18b43250cf2ea37985057455 (diff) | |
download | mpd-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.hxx | 32 |
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 |