diff options
-rw-r--r-- | src/filter/replay_gain_filter_plugin.c | 13 | ||||
-rw-r--r-- | src/replay_gain_config.c | 13 | ||||
-rw-r--r-- | src/replay_gain_config.h | 6 |
3 files changed, 21 insertions, 11 deletions
diff --git a/src/filter/replay_gain_filter_plugin.c b/src/filter/replay_gain_filter_plugin.c index 0519b9dfe..a0133e493 100644 --- a/src/filter/replay_gain_filter_plugin.c +++ b/src/filter/replay_gain_filter_plugin.c @@ -28,7 +28,6 @@ #include "replay_gain_info.h" #include "replay_gain_config.h" #include "mixer_control.h" -#include "playlist.h" #include <assert.h> #include <string.h> @@ -115,11 +114,7 @@ replay_gain_filter_init(G_GNUC_UNUSED const struct config_param *param, filter_init(&filter->filter, &replay_gain_filter_plugin); filter->mixer = NULL; - if (replay_gain_mode == REPLAY_GAIN_AUTO) { - filter->mode = g_playlist.queue.random ? REPLAY_GAIN_TRACK : REPLAY_GAIN_ALBUM; - } else { - filter->mode = replay_gain_mode; - } + filter->mode = replay_gain_get_real_mode(); replay_gain_info_init(&filter->info); filter->volume = PCM_VOLUME_1; @@ -169,11 +164,7 @@ replay_gain_filter_filter(struct filter *_filter, enum replay_gain_mode rg_mode; /* check if the mode has been changed since the last call */ - if (replay_gain_mode == REPLAY_GAIN_AUTO) { - rg_mode = g_playlist.queue.random ? REPLAY_GAIN_TRACK : REPLAY_GAIN_ALBUM; - } else { - rg_mode = replay_gain_mode; - } + rg_mode = replay_gain_get_real_mode(); if (filter->mode != rg_mode) { g_debug("replay gain mode has changed %d->%d\n", filter->mode, rg_mode); diff --git a/src/replay_gain_config.c b/src/replay_gain_config.c index 3eae9d960..2ef39a4b7 100644 --- a/src/replay_gain_config.c +++ b/src/replay_gain_config.c @@ -19,6 +19,7 @@ #include "config.h" #include "replay_gain_config.h" +#include "playlist.h" #include "conf.h" #include "idle.h" @@ -129,3 +130,15 @@ void replay_gain_global_init(void) replay_gain_missing_preamp = pow(10, f / 20.0); } } + +enum replay_gain_mode replay_gain_get_real_mode(void) +{ + enum replay_gain_mode rgm; + + rgm = replay_gain_mode; + + if (rgm == REPLAY_GAIN_AUTO) + rgm = g_playlist.queue.random ? REPLAY_GAIN_TRACK : REPLAY_GAIN_ALBUM; + + return rgm; +} diff --git a/src/replay_gain_config.h b/src/replay_gain_config.h index 922fb2b18..c3a1fe610 100644 --- a/src/replay_gain_config.h +++ b/src/replay_gain_config.h @@ -45,4 +45,10 @@ replay_gain_get_mode_string(void); bool replay_gain_set_mode_string(const char *p); +/** + * Returns the "real" mode according to the "auto" setting" + */ +enum replay_gain_mode +replay_gain_get_real_mode(void); + #endif |