From 241e94936f165a35686fb4b8f60cb2e604f15bc7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 4 Jan 2010 20:58:17 +0100 Subject: replay_gain: moved code to replay_gain_config.c --- src/command.c | 2 +- src/decoder_api.c | 2 +- src/decoder_thread.c | 2 +- src/main.c | 2 +- src/replay_gain.c | 129 ----------------------------------------------- src/replay_gain.h | 51 ------------------- src/replay_gain_config.c | 126 +++++++++++++++++++++++++++++++++++++++++++++ src/replay_gain_config.h | 48 ++++++++++++++++++ 8 files changed, 178 insertions(+), 184 deletions(-) delete mode 100644 src/replay_gain.c delete mode 100644 src/replay_gain.h create mode 100644 src/replay_gain_config.c create mode 100644 src/replay_gain_config.h (limited to 'src') diff --git a/src/command.c b/src/command.c index b5e1ababd..5b94cbe7f 100644 --- a/src/command.c +++ b/src/command.c @@ -46,7 +46,7 @@ #include "client.h" #include "tag_print.h" #include "path.h" -#include "replay_gain.h" +#include "replay_gain_config.h" #include "idle.h" #ifdef ENABLE_SQLITE diff --git a/src/decoder_api.c b/src/decoder_api.c index 0a4e1d12f..afabb76af 100644 --- a/src/decoder_api.c +++ b/src/decoder_api.c @@ -28,7 +28,7 @@ #include "pipe.h" #include "chunk.h" #include "replay_gain_state.h" -#include "replay_gain.h" +#include "replay_gain_config.h" #include diff --git a/src/decoder_thread.c b/src/decoder_thread.c index d2841436c..1539117f4 100644 --- a/src/decoder_thread.c +++ b/src/decoder_thread.c @@ -32,7 +32,7 @@ #include "path.h" #include "uri.h" #include "replay_gain_state.h" -#include "replay_gain.h" +#include "replay_gain_config.h" #include diff --git a/src/main.c b/src/main.c index fde1fe1b7..80102968e 100644 --- a/src/main.c +++ b/src/main.c @@ -42,7 +42,7 @@ #include "volume.h" #include "log.h" #include "permission.h" -#include "replay_gain.h" +#include "replay_gain_config.h" #include "decoder_list.h" #include "input_init.h" #include "playlist_list.h" diff --git a/src/replay_gain.c b/src/replay_gain.c deleted file mode 100644 index d5ac55eba..000000000 --- a/src/replay_gain.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2003-2010 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* - * (c)2004 replayGain code by AliasMrJones - */ - -#include "config.h" -#include "replay_gain.h" -#include "conf.h" -#include "idle.h" - -#include - -#include -#include -#include -#include - -static const char *const replay_gain_mode_names[] = { - [REPLAY_GAIN_ALBUM] = "album", - [REPLAY_GAIN_TRACK] = "track", -}; - -enum replay_gain_mode replay_gain_mode = REPLAY_GAIN_OFF; - -float replay_gain_preamp = 1.0; -float replay_gain_missing_preamp = 1.0; - -const char * -replay_gain_get_mode_string(void) -{ - switch (replay_gain_mode) { - case REPLAY_GAIN_OFF: - return "off"; - - case REPLAY_GAIN_TRACK: - return "track"; - - case REPLAY_GAIN_ALBUM: - return "album"; - } - - /* unreachable */ - assert(false); - return "off"; -} - -bool -replay_gain_set_mode_string(const char *p) -{ - assert(p != NULL); - - if (strcmp(p, "off") == 0) - replay_gain_mode = REPLAY_GAIN_OFF; - else if (strcmp(p, "track") == 0) - replay_gain_mode = REPLAY_GAIN_TRACK; - else if (strcmp(p, "album") == 0) - replay_gain_mode = REPLAY_GAIN_ALBUM; - else - return false; - - idle_add(IDLE_OPTIONS); - - return true; -} - -void replay_gain_global_init(void) -{ - const struct config_param *param = config_get_param(CONF_REPLAYGAIN); - - if (param != NULL && !replay_gain_set_mode_string(param->value)) { - g_error("replaygain value \"%s\" at line %i is invalid\n", - param->value, param->line); - } - - param = config_get_param(CONF_REPLAYGAIN_PREAMP); - - if (param) { - char *test; - float f = strtod(param->value, &test); - - if (*test != '\0') { - g_error("Replaygain preamp \"%s\" is not a number at " - "line %i\n", param->value, param->line); - } - - if (f < -15 || f > 15) { - g_error("Replaygain preamp \"%s\" is not between -15 and" - "15 at line %i\n", param->value, param->line); - } - - replay_gain_preamp = pow(10, f / 20.0); - } - - param = config_get_param(CONF_REPLAYGAIN_MISSING_PREAMP); - - if (param) { - char *test; - float f = strtod(param->value, &test); - - if (*test != '\0') { - g_error("Replaygain missing preamp \"%s\" is not a number at " - "line %i\n", param->value, param->line); - } - - if (f < -15 || f > 15) { - g_error("Replaygain missing preamp \"%s\" is not between -15 and" - "15 at line %i\n", param->value, param->line); - } - - replay_gain_missing_preamp = pow(10, f / 20.0); - } -} diff --git a/src/replay_gain.h b/src/replay_gain.h deleted file mode 100644 index 8241aab8f..000000000 --- a/src/replay_gain.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2003-2010 The Music Player Daemon Project - * http://www.musicpd.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/* - * (c)2004 replayGain code by AliasMrJones - */ - -#ifndef MPD_REPLAY_GAIN_H -#define MPD_REPLAY_GAIN_H - -#include "check.h" -#include "replay_gain_info.h" - -#include - -extern enum replay_gain_mode replay_gain_mode; -extern float replay_gain_preamp; -extern float replay_gain_missing_preamp; - -void replay_gain_global_init(void); - -/** - * Returns the current replay gain mode as a machine-readable string. - */ -const char * -replay_gain_get_mode_string(void); - -/** - * Sets the replay gain mode, parsed from a string. - * - * @return true on success, false if the string could not be parsed - */ -bool -replay_gain_set_mode_string(const char *p); - -#endif diff --git a/src/replay_gain_config.c b/src/replay_gain_config.c new file mode 100644 index 000000000..7cb08bba3 --- /dev/null +++ b/src/replay_gain_config.c @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2003-2010 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" +#include "replay_gain_config.h" +#include "conf.h" +#include "idle.h" + +#include + +#include +#include +#include +#include + +static const char *const replay_gain_mode_names[] = { + [REPLAY_GAIN_ALBUM] = "album", + [REPLAY_GAIN_TRACK] = "track", +}; + +enum replay_gain_mode replay_gain_mode = REPLAY_GAIN_OFF; + +float replay_gain_preamp = 1.0; +float replay_gain_missing_preamp = 1.0; + +const char * +replay_gain_get_mode_string(void) +{ + switch (replay_gain_mode) { + case REPLAY_GAIN_OFF: + return "off"; + + case REPLAY_GAIN_TRACK: + return "track"; + + case REPLAY_GAIN_ALBUM: + return "album"; + } + + /* unreachable */ + assert(false); + return "off"; +} + +bool +replay_gain_set_mode_string(const char *p) +{ + assert(p != NULL); + + if (strcmp(p, "off") == 0) + replay_gain_mode = REPLAY_GAIN_OFF; + else if (strcmp(p, "track") == 0) + replay_gain_mode = REPLAY_GAIN_TRACK; + else if (strcmp(p, "album") == 0) + replay_gain_mode = REPLAY_GAIN_ALBUM; + else + return false; + + idle_add(IDLE_OPTIONS); + + return true; +} + +void replay_gain_global_init(void) +{ + const struct config_param *param = config_get_param(CONF_REPLAYGAIN); + + if (param != NULL && !replay_gain_set_mode_string(param->value)) { + g_error("replaygain value \"%s\" at line %i is invalid\n", + param->value, param->line); + } + + param = config_get_param(CONF_REPLAYGAIN_PREAMP); + + if (param) { + char *test; + float f = strtod(param->value, &test); + + if (*test != '\0') { + g_error("Replaygain preamp \"%s\" is not a number at " + "line %i\n", param->value, param->line); + } + + if (f < -15 || f > 15) { + g_error("Replaygain preamp \"%s\" is not between -15 and" + "15 at line %i\n", param->value, param->line); + } + + replay_gain_preamp = pow(10, f / 20.0); + } + + param = config_get_param(CONF_REPLAYGAIN_MISSING_PREAMP); + + if (param) { + char *test; + float f = strtod(param->value, &test); + + if (*test != '\0') { + g_error("Replaygain missing preamp \"%s\" is not a number at " + "line %i\n", param->value, param->line); + } + + if (f < -15 || f > 15) { + g_error("Replaygain missing preamp \"%s\" is not between -15 and" + "15 at line %i\n", param->value, param->line); + } + + replay_gain_missing_preamp = pow(10, f / 20.0); + } +} diff --git a/src/replay_gain_config.h b/src/replay_gain_config.h new file mode 100644 index 000000000..922fb2b18 --- /dev/null +++ b/src/replay_gain_config.h @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2003-2010 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPD_REPLAY_GAIN_CONFIG_H +#define MPD_REPLAY_GAIN_CONFIG_H + +#include "check.h" +#include "replay_gain_info.h" + +#include + +extern enum replay_gain_mode replay_gain_mode; +extern float replay_gain_preamp; +extern float replay_gain_missing_preamp; + +void replay_gain_global_init(void); + +/** + * Returns the current replay gain mode as a machine-readable string. + */ +const char * +replay_gain_get_mode_string(void); + +/** + * Sets the replay gain mode, parsed from a string. + * + * @return true on success, false if the string could not be parsed + */ +bool +replay_gain_set_mode_string(const char *p); + +#endif -- cgit v1.2.3