Commit 57d77cc8 authored by Max Kellermann's avatar Max Kellermann

decoder/List: use struct ConfigData

parent 9fe05850
...@@ -552,7 +552,7 @@ try { ...@@ -552,7 +552,7 @@ try {
pcm_convert_global_init(); pcm_convert_global_init();
decoder_plugin_init_all(); decoder_plugin_init_all(GetGlobalConfig());
#ifdef ENABLE_DATABASE #ifdef ENABLE_DATABASE
const bool create_db = InitDatabaseAndStorage(); const bool create_db = InitDatabaseAndStorage();
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include "config.h" #include "config.h"
#include "DecoderList.hxx" #include "DecoderList.hxx"
#include "DecoderPlugin.hxx" #include "DecoderPlugin.hxx"
#include "config/Global.hxx" #include "config/Data.hxx"
#include "config/Block.hxx" #include "config/Block.hxx"
#include "plugins/AudiofileDecoderPlugin.hxx" #include "plugins/AudiofileDecoderPlugin.hxx"
#include "plugins/PcmDecoderPlugin.hxx" #include "plugins/PcmDecoderPlugin.hxx"
...@@ -127,15 +127,16 @@ decoder_plugin_from_name(const char *name) noexcept ...@@ -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; ConfigBlock empty;
for (unsigned i = 0; decoder_plugins[i] != nullptr; ++i) { for (unsigned i = 0; decoder_plugins[i] != nullptr; ++i) {
const DecoderPlugin &plugin = *decoder_plugins[i]; const DecoderPlugin &plugin = *decoder_plugins[i];
const auto *param = const auto *param =
config_find_block(ConfigBlockOption::DECODER, "plugin", config.FindBlock(ConfigBlockOption::DECODER, "plugin",
plugin.name); plugin.name);
if (param == nullptr) if (param == nullptr)
param = ∅ param = ∅
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include "Compiler.h" #include "Compiler.h"
struct ConfigData;
struct DecoderPlugin; struct DecoderPlugin;
extern const struct DecoderPlugin *const decoder_plugins[]; extern const struct DecoderPlugin *const decoder_plugins[];
...@@ -35,7 +36,7 @@ decoder_plugin_from_name(const char *name) noexcept; ...@@ -35,7 +36,7 @@ decoder_plugin_from_name(const char *name) noexcept;
/* this is where we "load" all the "plugins" ;-) */ /* this is where we "load" all the "plugins" ;-) */
void void
decoder_plugin_init_all(); decoder_plugin_init_all(const ConfigData &config);
/* this is where we "unload" all the "plugins" */ /* this is where we "unload" all the "plugins" */
void void
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "config.h" #include "config.h"
#include "DetachedSong.hxx" #include "DetachedSong.hxx"
#include "SongSave.hxx" #include "SongSave.hxx"
#include "config/Data.hxx"
#include "decoder/DecoderList.hxx" #include "decoder/DecoderList.hxx"
#include "decoder/DecoderPlugin.hxx" #include "decoder/DecoderPlugin.hxx"
#include "fs/Path.hxx" #include "fs/Path.hxx"
...@@ -68,7 +69,7 @@ try { ...@@ -68,7 +69,7 @@ try {
const Path path = Path::FromFS(argv[1]); const Path path = Path::FromFS(argv[1]);
decoder_plugin_init_all(); decoder_plugin_init_all(ConfigData());
const auto *plugin = FindContainerDecoderPlugin(path); const auto *plugin = FindContainerDecoderPlugin(path);
if (plugin == nullptr) { if (plugin == nullptr) {
......
...@@ -69,7 +69,7 @@ try { ...@@ -69,7 +69,7 @@ try {
input_stream_global_init(io_thread.GetEventLoop()); input_stream_global_init(io_thread.GetEventLoop());
playlist_list_global_init(); playlist_list_global_init();
decoder_plugin_init_all(); decoder_plugin_init_all(GetGlobalConfig());
/* open the playlist */ /* open the playlist */
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
*/ */
#include "config.h" #include "config.h"
#include "config/Data.hxx"
#include "event/Thread.hxx" #include "event/Thread.hxx"
#include "decoder/DecoderList.hxx" #include "decoder/DecoderList.hxx"
#include "decoder/DecoderPlugin.hxx" #include "decoder/DecoderPlugin.hxx"
...@@ -95,7 +96,7 @@ try { ...@@ -95,7 +96,7 @@ try {
input_stream_global_init(io_thread.GetEventLoop()); input_stream_global_init(io_thread.GetEventLoop());
AtScopeExit() { input_stream_global_finish(); }; AtScopeExit() { input_stream_global_finish(); };
decoder_plugin_init_all(); decoder_plugin_init_all(ConfigData());
AtScopeExit() { decoder_plugin_deinit_all(); }; AtScopeExit() { decoder_plugin_deinit_all(); };
plugin = decoder_plugin_from_name(decoder_name); plugin = decoder_plugin_from_name(decoder_name);
......
...@@ -99,7 +99,7 @@ public: ...@@ -99,7 +99,7 @@ public:
ReadConfigFile(config_path); ReadConfigFile(config_path);
input_stream_global_init(io_thread.GetEventLoop()); input_stream_global_init(io_thread.GetEventLoop());
decoder_plugin_init_all(); decoder_plugin_init_all(GetGlobalConfig());
} }
~GlobalInit() { ~GlobalInit() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment