test/NullMixerListener: new class to fix -Wnull-dereference
This commit is contained in:
parent
bb1e369f30
commit
f762e8034f
|
@ -2159,6 +2159,7 @@ test_run_output_LDADD = $(MPD_LIBS) \
|
|||
libutil.a
|
||||
test_run_output_SOURCES = test/run_output.cxx \
|
||||
test/ScopeIOThread.hxx \
|
||||
test/NullMixerListener.hxx \
|
||||
src/Log.cxx src/LogBackend.cxx \
|
||||
src/IOThread.cxx \
|
||||
src/output/Domain.cxx \
|
||||
|
@ -2182,6 +2183,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/FilterPlugin.cxx \
|
||||
|
|
|
@ -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
|
|
@ -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,10 @@ try {
|
|||
|
||||
EventLoop event_loop;
|
||||
|
||||
NullMixerListener mixer_listener;
|
||||
Mixer *mixer = mixer_new(event_loop, alsa_mixer_plugin,
|
||||
*(AudioOutput *)nullptr,
|
||||
*(MixerListener *)nullptr,
|
||||
mixer_listener,
|
||||
ConfigBlock());
|
||||
|
||||
mixer_open(mixer);
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "NullMixerListener.hxx"
|
||||
#include "output/Internal.hxx"
|
||||
#include "output/OutputPlugin.hxx"
|
||||
#include "output/Client.hxx"
|
||||
|
@ -64,7 +65,9 @@ filter_plugin_by_name(gcc_unused const char *name) noexcept
|
|||
}
|
||||
|
||||
static AudioOutput *
|
||||
load_audio_output(EventLoop &event_loop, AudioOutputClient &client,
|
||||
load_audio_output(EventLoop &event_loop,
|
||||
NullMixerListener &mixer_listener,
|
||||
AudioOutputClient &client,
|
||||
const char *name)
|
||||
{
|
||||
const auto *param = config_find_block(ConfigBlockOption::AUDIO_OUTPUT,
|
||||
|
@ -74,7 +77,7 @@ load_audio_output(EventLoop &event_loop, AudioOutputClient &client,
|
|||
name);
|
||||
|
||||
return audio_output_new(event_loop, ReplayGainConfig(), *param,
|
||||
*(MixerListener *)nullptr,
|
||||
mixer_listener,
|
||||
client);
|
||||
}
|
||||
|
||||
|
@ -144,8 +147,10 @@ try {
|
|||
|
||||
/* initialize the audio output */
|
||||
|
||||
NullMixerListener mixer_listener;
|
||||
DummyAudioOutputClient client;
|
||||
AudioOutput *ao = load_audio_output(event_loop, client, argv[2]);
|
||||
AudioOutput *ao = load_audio_output(event_loop, mixer_listener,
|
||||
client, argv[2]);
|
||||
|
||||
/* parse the audio format */
|
||||
|
||||
|
|
Loading…
Reference in New Issue