From b6df4680df08db7827af56d5adf2a04264f2dcb9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 6 Feb 2014 20:44:33 +0100 Subject: MixerPlugin: convert function pointers to Mixer virtual methods --- src/mixer/plugins/RoarMixerPlugin.cxx | 42 ++++++++++++++++------------------- 1 file changed, 19 insertions(+), 23 deletions(-) (limited to 'src/mixer/plugins/RoarMixerPlugin.cxx') diff --git a/src/mixer/plugins/RoarMixerPlugin.cxx b/src/mixer/plugins/RoarMixerPlugin.cxx index f03c82c04..d1ac8a6e3 100644 --- a/src/mixer/plugins/RoarMixerPlugin.cxx +++ b/src/mixer/plugins/RoarMixerPlugin.cxx @@ -24,13 +24,25 @@ #include "output/plugins/RoarOutputPlugin.hxx" #include "Compiler.h" -struct RoarMixer final : public Mixer { +class RoarMixer final : public Mixer { /** the base mixer class */ RoarOutput *self; +public: RoarMixer(RoarOutput *_output) :Mixer(roar_mixer_plugin), self(_output) {} + + /* virtual methods from class Mixer */ + virtual bool Open(gcc_unused Error &error) override { + return true; + } + + virtual void Close() override { + } + + virtual int GetVolume(Error &error) override; + virtual bool SetVolume(unsigned volume, Error &error) override; }; static Mixer * @@ -41,35 +53,19 @@ roar_mixer_init(gcc_unused EventLoop &event_loop, void *ao, return new RoarMixer((RoarOutput *)ao); } -static void -roar_mixer_finish(Mixer *data) -{ - RoarMixer *self = (RoarMixer *) data; - - delete self; -} - -static int -roar_mixer_get_volume(Mixer *mixer, gcc_unused Error &error) +int +RoarMixer::GetVolume(gcc_unused Error &error) { - RoarMixer *self = (RoarMixer *)mixer; - return roar_output_get_volume(self->self); + return roar_output_get_volume(self); } -static bool -roar_mixer_set_volume(Mixer *mixer, unsigned volume, - gcc_unused Error &error) +bool +RoarMixer::SetVolume(unsigned volume, gcc_unused Error &error) { - RoarMixer *self = (RoarMixer *)mixer; - return roar_output_set_volume(self->self, volume); + return roar_output_set_volume(self, volume); } const MixerPlugin roar_mixer_plugin = { roar_mixer_init, - roar_mixer_finish, - nullptr, - nullptr, - roar_mixer_get_volume, - roar_mixer_set_volume, false, }; -- cgit v1.2.3