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
|
libutil.a
|
||||||
test_run_output_SOURCES = test/run_output.cxx \
|
test_run_output_SOURCES = test/run_output.cxx \
|
||||||
test/ScopeIOThread.hxx \
|
test/ScopeIOThread.hxx \
|
||||||
|
test/NullMixerListener.hxx \
|
||||||
src/Log.cxx src/LogBackend.cxx \
|
src/Log.cxx src/LogBackend.cxx \
|
||||||
src/IOThread.cxx \
|
src/IOThread.cxx \
|
||||||
src/output/Domain.cxx \
|
src/output/Domain.cxx \
|
||||||
|
@ -2182,6 +2183,7 @@ test_read_mixer_LDADD = \
|
||||||
libsystem.a \
|
libsystem.a \
|
||||||
libutil.a
|
libutil.a
|
||||||
test_read_mixer_SOURCES = test/read_mixer.cxx \
|
test_read_mixer_SOURCES = test/read_mixer.cxx \
|
||||||
|
test/NullMixerListener.hxx \
|
||||||
src/Log.cxx src/LogBackend.cxx \
|
src/Log.cxx src/LogBackend.cxx \
|
||||||
src/mixer/MixerControl.cxx \
|
src/mixer/MixerControl.cxx \
|
||||||
src/filter/FilterPlugin.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 "config.h"
|
||||||
|
#include "NullMixerListener.hxx"
|
||||||
#include "mixer/MixerControl.hxx"
|
#include "mixer/MixerControl.hxx"
|
||||||
#include "mixer/MixerList.hxx"
|
#include "mixer/MixerList.hxx"
|
||||||
#include "filter/FilterRegistry.hxx"
|
#include "filter/FilterRegistry.hxx"
|
||||||
|
@ -50,9 +51,10 @@ try {
|
||||||
|
|
||||||
EventLoop event_loop;
|
EventLoop event_loop;
|
||||||
|
|
||||||
|
NullMixerListener mixer_listener;
|
||||||
Mixer *mixer = mixer_new(event_loop, alsa_mixer_plugin,
|
Mixer *mixer = mixer_new(event_loop, alsa_mixer_plugin,
|
||||||
*(AudioOutput *)nullptr,
|
*(AudioOutput *)nullptr,
|
||||||
*(MixerListener *)nullptr,
|
mixer_listener,
|
||||||
ConfigBlock());
|
ConfigBlock());
|
||||||
|
|
||||||
mixer_open(mixer);
|
mixer_open(mixer);
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#include "NullMixerListener.hxx"
|
||||||
#include "output/Internal.hxx"
|
#include "output/Internal.hxx"
|
||||||
#include "output/OutputPlugin.hxx"
|
#include "output/OutputPlugin.hxx"
|
||||||
#include "output/Client.hxx"
|
#include "output/Client.hxx"
|
||||||
|
@ -64,7 +65,9 @@ filter_plugin_by_name(gcc_unused const char *name) noexcept
|
||||||
}
|
}
|
||||||
|
|
||||||
static AudioOutput *
|
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 char *name)
|
||||||
{
|
{
|
||||||
const auto *param = config_find_block(ConfigBlockOption::AUDIO_OUTPUT,
|
const auto *param = config_find_block(ConfigBlockOption::AUDIO_OUTPUT,
|
||||||
|
@ -74,7 +77,7 @@ load_audio_output(EventLoop &event_loop, AudioOutputClient &client,
|
||||||
name);
|
name);
|
||||||
|
|
||||||
return audio_output_new(event_loop, ReplayGainConfig(), *param,
|
return audio_output_new(event_loop, ReplayGainConfig(), *param,
|
||||||
*(MixerListener *)nullptr,
|
mixer_listener,
|
||||||
client);
|
client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,8 +147,10 @@ try {
|
||||||
|
|
||||||
/* initialize the audio output */
|
/* initialize the audio output */
|
||||||
|
|
||||||
|
NullMixerListener mixer_listener;
|
||||||
DummyAudioOutputClient client;
|
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 */
|
/* parse the audio format */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue