decoder/List: use struct ConfigData
This commit is contained in:
parent
9fe0585056
commit
57d77cc8a0
@ -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 @@
|
|||||||
#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
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
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 @@
|
|||||||
|
|
||||||
#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;
|
|||||||
|
|
||||||
/* 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 @@
|
|||||||
#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 {
|
|||||||
|
|
||||||
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 {
|
|||||||
|
|
||||||
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 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#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 {
|
|||||||
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:
|
|||||||
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() {
|
||||||
|
Loading…
Reference in New Issue
Block a user