config/Param: split block-specific attributes to new struct ConfigBlock

The old struct config_param remains only for top-level string options.
This commit is contained in:
Max Kellermann
2015-01-21 22:13:44 +01:00
parent 84e74173de
commit 4fa5538e2b
114 changed files with 871 additions and 732 deletions

View File

@@ -28,10 +28,10 @@ Mixer *
mixer_new(EventLoop &event_loop,
const MixerPlugin &plugin, AudioOutput &ao,
MixerListener &listener,
const config_param &param,
const ConfigBlock &block,
Error &error)
{
Mixer *mixer = plugin.init(event_loop, ao, listener, param, error);
Mixer *mixer = plugin.init(event_loop, ao, listener, block, error);
assert(mixer == nullptr || mixer->IsPlugin(plugin));

View File

@@ -31,12 +31,12 @@ class EventLoop;
struct AudioOutput;
struct MixerPlugin;
class MixerListener;
struct config_param;
struct ConfigBlock;
Mixer *
mixer_new(EventLoop &event_loop, const MixerPlugin &plugin, AudioOutput &ao,
MixerListener &listener,
const config_param &param,
const ConfigBlock &block,
Error &error);
void

View File

@@ -27,7 +27,7 @@
#ifndef MPD_MIXER_PLUGIN_HXX
#define MPD_MIXER_PLUGIN_HXX
struct config_param;
struct ConfigBlock;
struct AudioOutput;
class Mixer;
class MixerListener;
@@ -46,7 +46,7 @@ struct MixerPlugin {
*/
Mixer *(*init)(EventLoop &event_loop, AudioOutput &ao,
MixerListener &listener,
const config_param &param,
const ConfigBlock &block,
Error &error);
/**

View File

@@ -82,7 +82,7 @@ public:
virtual ~AlsaMixer();
void Configure(const config_param &param);
void Configure(const ConfigBlock &block);
bool Setup(Error &error);
/* virtual methods from class Mixer */
@@ -162,24 +162,24 @@ alsa_mixer_elem_callback(snd_mixer_elem_t *elem, unsigned mask)
*/
inline void
AlsaMixer::Configure(const config_param &param)
AlsaMixer::Configure(const ConfigBlock &block)
{
device = param.GetBlockValue("mixer_device",
device = block.GetBlockValue("mixer_device",
VOLUME_MIXER_ALSA_DEFAULT);
control = param.GetBlockValue("mixer_control",
control = block.GetBlockValue("mixer_control",
VOLUME_MIXER_ALSA_CONTROL_DEFAULT);
index = param.GetBlockValue("mixer_index",
index = block.GetBlockValue("mixer_index",
VOLUME_MIXER_ALSA_INDEX_DEFAULT);
}
static Mixer *
alsa_mixer_init(EventLoop &event_loop, gcc_unused AudioOutput &ao,
MixerListener &listener,
const config_param &param,
const ConfigBlock &block,
gcc_unused Error &error)
{
AlsaMixer *am = new AlsaMixer(event_loop, listener);
am->Configure(param);
am->Configure(block);
return am;
}

View File

@@ -55,7 +55,7 @@ static Mixer *
null_mixer_init(gcc_unused EventLoop &event_loop,
gcc_unused AudioOutput &ao,
MixerListener &listener,
gcc_unused const config_param &param,
gcc_unused const ConfigBlock &block,
gcc_unused Error &error)
{
return new NullMixer(listener);

View File

@@ -19,7 +19,7 @@
#include "config.h"
#include "mixer/MixerInternal.hxx"
#include "config/Param.hxx"
#include "config/Block.hxx"
#include "system/fd_util.h"
#include "util/ASCII.hxx"
#include "util/Error.hxx"
@@ -52,7 +52,7 @@ public:
OssMixer(MixerListener &_listener)
:Mixer(oss_mixer_plugin, _listener) {}
bool Configure(const config_param &param, Error &error);
bool Configure(const ConfigBlock &block, Error &error);
/* virtual methods from class Mixer */
virtual bool Open(Error &error) override;
@@ -79,10 +79,10 @@ oss_find_mixer(const char *name)
}
inline bool
OssMixer::Configure(const config_param &param, Error &error)
OssMixer::Configure(const ConfigBlock &block, Error &error)
{
device = param.GetBlockValue("mixer_device", VOLUME_MIXER_OSS_DEFAULT);
control = param.GetBlockValue("mixer_control");
device = block.GetBlockValue("mixer_device", VOLUME_MIXER_OSS_DEFAULT);
control = block.GetBlockValue("mixer_control");
if (control != NULL) {
volume_control = oss_find_mixer(control);
@@ -100,12 +100,12 @@ OssMixer::Configure(const config_param &param, Error &error)
static Mixer *
oss_mixer_init(gcc_unused EventLoop &event_loop, gcc_unused AudioOutput &ao,
MixerListener &listener,
const config_param &param,
const ConfigBlock &block,
Error &error)
{
OssMixer *om = new OssMixer(listener);
if (!om->Configure(param, error)) {
if (!om->Configure(block, error)) {
delete om;
return nullptr;
}

View File

@@ -163,7 +163,7 @@ pulse_mixer_on_change(PulseMixer &pm,
static Mixer *
pulse_mixer_init(gcc_unused EventLoop &event_loop, AudioOutput &ao,
MixerListener &listener,
gcc_unused const config_param &param,
gcc_unused const ConfigBlock &block,
gcc_unused Error &error)
{
PulseOutput &po = (PulseOutput &)ao;

View File

@@ -48,7 +48,7 @@ public:
static Mixer *
roar_mixer_init(gcc_unused EventLoop &event_loop, AudioOutput &ao,
MixerListener &listener,
gcc_unused const config_param &param,
gcc_unused const ConfigBlock &block,
gcc_unused Error &error)
{
return new RoarMixer((RoarOutput &)ao, listener);

View File

@@ -25,7 +25,7 @@
#include "filter/FilterInternal.hxx"
#include "filter/plugins/VolumeFilterPlugin.hxx"
#include "pcm/Volume.hxx"
#include "config/Param.hxx"
#include "config/Block.hxx"
#include "util/Error.hxx"
#include <assert.h>
@@ -34,7 +34,7 @@
static Filter *
CreateVolumeFilter()
{
return filter_new(&volume_filter_plugin, config_param(),
return filter_new(&volume_filter_plugin, ConfigBlock(),
IgnoreError());
}
@@ -90,7 +90,7 @@ static Mixer *
software_mixer_init(gcc_unused EventLoop &event_loop,
gcc_unused AudioOutput &ao,
MixerListener &listener,
gcc_unused const config_param &param,
gcc_unused const ConfigBlock &block,
gcc_unused Error &error)
{
return new SoftwareMixer(listener);

View File

@@ -69,7 +69,7 @@ winmm_volume_encode(int volume)
static Mixer *
winmm_mixer_init(gcc_unused EventLoop &event_loop, AudioOutput &ao,
MixerListener &listener,
gcc_unused const config_param &param,
gcc_unused const ConfigBlock &block,
gcc_unused Error &error)
{
return new WinmmMixer((WinmmOutput &)ao, listener);