decoder/List: use struct ConfigData

This commit is contained in:
Max Kellermann 2018-07-17 21:31:06 +02:00
parent 9fe0585056
commit 57d77cc8a0
7 changed files with 14 additions and 10 deletions

View File

@ -552,7 +552,7 @@ try {
pcm_convert_global_init();
decoder_plugin_init_all();
decoder_plugin_init_all(GetGlobalConfig());
#ifdef ENABLE_DATABASE
const bool create_db = InitDatabaseAndStorage();

View File

@ -20,7 +20,7 @@
#include "config.h"
#include "DecoderList.hxx"
#include "DecoderPlugin.hxx"
#include "config/Global.hxx"
#include "config/Data.hxx"
#include "config/Block.hxx"
#include "plugins/AudiofileDecoderPlugin.hxx"
#include "plugins/PcmDecoderPlugin.hxx"
@ -127,15 +127,16 @@ decoder_plugin_from_name(const char *name) noexcept
});
}
void decoder_plugin_init_all(void)
void
decoder_plugin_init_all(const ConfigData &config)
{
ConfigBlock empty;
for (unsigned i = 0; decoder_plugins[i] != nullptr; ++i) {
const DecoderPlugin &plugin = *decoder_plugins[i];
const auto *param =
config_find_block(ConfigBlockOption::DECODER, "plugin",
plugin.name);
config.FindBlock(ConfigBlockOption::DECODER, "plugin",
plugin.name);
if (param == nullptr)
param = ∅

View File

@ -22,6 +22,7 @@
#include "Compiler.h"
struct ConfigData;
struct DecoderPlugin;
extern const struct DecoderPlugin *const decoder_plugins[];
@ -35,7 +36,7 @@ decoder_plugin_from_name(const char *name) noexcept;
/* this is where we "load" all the "plugins" ;-) */
void
decoder_plugin_init_all();
decoder_plugin_init_all(const ConfigData &config);
/* this is where we "unload" all the "plugins" */
void

View File

@ -20,6 +20,7 @@
#include "config.h"
#include "DetachedSong.hxx"
#include "SongSave.hxx"
#include "config/Data.hxx"
#include "decoder/DecoderList.hxx"
#include "decoder/DecoderPlugin.hxx"
#include "fs/Path.hxx"
@ -68,7 +69,7 @@ try {
const Path path = Path::FromFS(argv[1]);
decoder_plugin_init_all();
decoder_plugin_init_all(ConfigData());
const auto *plugin = FindContainerDecoderPlugin(path);
if (plugin == nullptr) {

View File

@ -69,7 +69,7 @@ try {
input_stream_global_init(io_thread.GetEventLoop());
playlist_list_global_init();
decoder_plugin_init_all();
decoder_plugin_init_all(GetGlobalConfig());
/* open the playlist */

View File

@ -18,6 +18,7 @@
*/
#include "config.h"
#include "config/Data.hxx"
#include "event/Thread.hxx"
#include "decoder/DecoderList.hxx"
#include "decoder/DecoderPlugin.hxx"
@ -95,7 +96,7 @@ try {
input_stream_global_init(io_thread.GetEventLoop());
AtScopeExit() { input_stream_global_finish(); };
decoder_plugin_init_all();
decoder_plugin_init_all(ConfigData());
AtScopeExit() { decoder_plugin_deinit_all(); };
plugin = decoder_plugin_from_name(decoder_name);

View File

@ -99,7 +99,7 @@ public:
ReadConfigFile(config_path);
input_stream_global_init(io_thread.GetEventLoop());
decoder_plugin_init_all();
decoder_plugin_init_all(GetGlobalConfig());
}
~GlobalInit() {