diff --git a/Makefile.am b/Makefile.am index fcde34527..2dd889466 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2212,6 +2212,7 @@ test_run_output_LDADD = $(MPD_LIBS) \ libthread.a \ libutil.a test_run_output_SOURCES = test/run_output.cxx \ + test/NullMixerListener.hxx \ src/Log.cxx src/LogBackend.cxx \ src/output/Domain.cxx \ src/output/Registry.cxx \ @@ -2232,6 +2233,7 @@ test_read_mixer_LDADD = \ libsystem.a \ libutil.a test_read_mixer_SOURCES = test/read_mixer.cxx \ + test/NullMixerListener.hxx \ src/Log.cxx src/LogBackend.cxx \ src/mixer/MixerControl.cxx \ src/filter/plugins/VolumeFilterPlugin.cxx diff --git a/test/NullMixerListener.hxx b/test/NullMixerListener.hxx new file mode 100644 index 000000000..ed3986f41 --- /dev/null +++ b/test/NullMixerListener.hxx @@ -0,0 +1,30 @@ +/* + * Copyright 2003-2018 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef NULL_MIXER_LISTENER_HXX +#define NULL_MIXER_LISTENER_HXX + +#include "mixer/Listener.hxx" + +class NullMixerListener : public MixerListener { +public: + void OnMixerVolumeChanged(Mixer &, int) override {} +}; + +#endif diff --git a/test/read_mixer.cxx b/test/read_mixer.cxx index 4c7efabe3..a0d7487b2 100644 --- a/test/read_mixer.cxx +++ b/test/read_mixer.cxx @@ -18,6 +18,7 @@ */ #include "config.h" +#include "NullMixerListener.hxx" #include "mixer/MixerControl.hxx" #include "mixer/MixerList.hxx" #include "filter/FilterRegistry.hxx" @@ -50,9 +51,14 @@ try { EventLoop event_loop; + NullMixerListener mixer_listener; Mixer *mixer = mixer_new(event_loop, alsa_mixer_plugin, - *(AudioOutput *)nullptr, - *(MixerListener *)nullptr, + /* ugly dangerous dummy pointer to + make the compiler happy; this + works with most mixers, because + they don't need the AudioOutput */ + *(AudioOutput *)0x1, + mixer_listener, ConfigBlock()); mixer_open(mixer);