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:
@@ -28,10 +28,10 @@ Mixer *
|
||||
mixer_new(EventLoop &event_loop,
|
||||
const MixerPlugin &plugin, AudioOutput &ao,
|
||||
MixerListener &listener,
|
||||
const config_param ¶m,
|
||||
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));
|
||||
|
||||
|
@@ -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 ¶m,
|
||||
const ConfigBlock &block,
|
||||
Error &error);
|
||||
|
||||
void
|
||||
|
@@ -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 ¶m,
|
||||
const ConfigBlock &block,
|
||||
Error &error);
|
||||
|
||||
/**
|
||||
|
@@ -82,7 +82,7 @@ public:
|
||||
|
||||
virtual ~AlsaMixer();
|
||||
|
||||
void Configure(const config_param ¶m);
|
||||
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 ¶m)
|
||||
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 ¶m,
|
||||
const ConfigBlock &block,
|
||||
gcc_unused Error &error)
|
||||
{
|
||||
AlsaMixer *am = new AlsaMixer(event_loop, listener);
|
||||
am->Configure(param);
|
||||
am->Configure(block);
|
||||
|
||||
return am;
|
||||
}
|
||||
|
@@ -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 ¶m,
|
||||
gcc_unused const ConfigBlock &block,
|
||||
gcc_unused Error &error)
|
||||
{
|
||||
return new NullMixer(listener);
|
||||
|
@@ -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 ¶m, 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 ¶m, 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 ¶m, Error &error)
|
||||
static Mixer *
|
||||
oss_mixer_init(gcc_unused EventLoop &event_loop, gcc_unused AudioOutput &ao,
|
||||
MixerListener &listener,
|
||||
const config_param ¶m,
|
||||
const ConfigBlock &block,
|
||||
Error &error)
|
||||
{
|
||||
OssMixer *om = new OssMixer(listener);
|
||||
|
||||
if (!om->Configure(param, error)) {
|
||||
if (!om->Configure(block, error)) {
|
||||
delete om;
|
||||
return nullptr;
|
||||
}
|
||||
|
@@ -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 ¶m,
|
||||
gcc_unused const ConfigBlock &block,
|
||||
gcc_unused Error &error)
|
||||
{
|
||||
PulseOutput &po = (PulseOutput &)ao;
|
||||
|
@@ -48,7 +48,7 @@ public:
|
||||
static Mixer *
|
||||
roar_mixer_init(gcc_unused EventLoop &event_loop, AudioOutput &ao,
|
||||
MixerListener &listener,
|
||||
gcc_unused const config_param ¶m,
|
||||
gcc_unused const ConfigBlock &block,
|
||||
gcc_unused Error &error)
|
||||
{
|
||||
return new RoarMixer((RoarOutput &)ao, listener);
|
||||
|
@@ -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 ¶m,
|
||||
gcc_unused const ConfigBlock &block,
|
||||
gcc_unused Error &error)
|
||||
{
|
||||
return new SoftwareMixer(listener);
|
||||
|
@@ -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 ¶m,
|
||||
gcc_unused const ConfigBlock &block,
|
||||
gcc_unused Error &error)
|
||||
{
|
||||
return new WinmmMixer((WinmmOutput &)ao, listener);
|
||||
|
Reference in New Issue
Block a user