From 94e9e93fa42264dacf5b7b41c2275ab1eea64f77 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 3 Dec 2016 13:15:56 +0100 Subject: [PATCH] ReplayGainGlobal: move replay_gain_config into struct Config Yet another global variable removed. --- src/Main.cxx | 13 ++++++------- src/ReplayGainGlobal.cxx | 9 ++++++--- src/ReplayGainGlobal.hxx | 6 ++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Main.cxx b/src/Main.cxx index 3f3acf280..9360fd898 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -128,13 +128,14 @@ Context *context; Instance *instance; struct Config { + ReplayGainConfig replay_gain; }; gcc_const static Config LoadConfig() { - return {}; + return {LoadReplayGainConfig()}; } #ifdef ENABLE_DAEMON @@ -290,7 +291,7 @@ static void winsock_init(void) * Initialize the decoder and player core, including the music pipe. */ static void -initialize_decoder_and_player(void) +initialize_decoder_and_player(const ReplayGainConfig &replay_gain_config) { const ConfigParam *param; @@ -443,7 +444,6 @@ try { stats_global_init(); TagLoadConfig(); - replay_gain_global_init(); log_init(options.verbose, options.log_stderr); @@ -463,7 +463,7 @@ try { config_get_positive(ConfigOption::MAX_CONN, 10); instance->client_list = new ClientList(max_clients); - initialize_decoder_and_player(); + initialize_decoder_and_player(config.replay_gain); listen_global_init(instance->event_loop, *instance->partition); @@ -495,8 +495,6 @@ try { static int mpd_main_after_fork(const Config &config) try { - (void)config; - ConfigureFS(); glue_mapper_init(); @@ -518,8 +516,9 @@ try { glue_sticker_init(); command_init(); + instance->partition->outputs.Configure(instance->event_loop, - replay_gain_config, + config.replay_gain, instance->partition->pc); client_manager_init(); input_stream_global_init(); diff --git a/src/ReplayGainGlobal.cxx b/src/ReplayGainGlobal.cxx index a0c252306..7f68b9880 100644 --- a/src/ReplayGainGlobal.cxx +++ b/src/ReplayGainGlobal.cxx @@ -28,8 +28,6 @@ #include #include -ReplayGainConfig replay_gain_config; - static float ParsePreamp(const char *s) { @@ -57,8 +55,11 @@ ParsePreamp(const ConfigParam &p) } } -void replay_gain_global_init(void) +ReplayGainConfig +LoadReplayGainConfig() { + ReplayGainConfig replay_gain_config; + const auto *param = config_get_param(ConfigOption::REPLAYGAIN_PREAMP); if (param) replay_gain_config.preamp = ParsePreamp(*param); @@ -69,4 +70,6 @@ void replay_gain_global_init(void) replay_gain_config.limit = config_get_bool(ConfigOption::REPLAYGAIN_LIMIT, ReplayGainConfig::DEFAULT_LIMIT); + + return replay_gain_config; } diff --git a/src/ReplayGainGlobal.hxx b/src/ReplayGainGlobal.hxx index 2fc881f06..b8be080dd 100644 --- a/src/ReplayGainGlobal.hxx +++ b/src/ReplayGainGlobal.hxx @@ -24,9 +24,7 @@ struct ReplayGainConfig; -extern ReplayGainConfig replay_gain_config; - -void -replay_gain_global_init(); +ReplayGainConfig +LoadReplayGainConfig(); #endif