aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-01-30 17:43:26 +0100
committerMax Kellermann <max@duempel.org>2013-01-30 17:45:19 +0100
commit9cfaa9c7b08dbb2f3f4804cb976d519fcefb516f (patch)
tree502cad3158921e79bb6005b4f8215fbd803f365c
parentc5ea58688262faad66618838b33075473d8c2127 (diff)
downloadmpd-9cfaa9c7b08dbb2f3f4804cb976d519fcefb516f.tar.gz
mpd-9cfaa9c7b08dbb2f3f4804cb976d519fcefb516f.tar.xz
mpd-9cfaa9c7b08dbb2f3f4804cb976d519fcefb516f.zip
ConfigFile: move code to ConfigOptions.cxx
-rw-r--r--src/ConfigFile.cxx74
-rw-r--r--src/ConfigOptions.hxx98
2 files changed, 99 insertions, 73 deletions
diff --git a/src/ConfigFile.cxx b/src/ConfigFile.cxx
index b02bdd955..c49e4a486 100644
--- a/src/ConfigFile.cxx
+++ b/src/ConfigFile.cxx
@@ -19,6 +19,7 @@
#include "config.h"
#include "conf.h"
+#include "ConfigOptions.hxx"
extern "C" {
#include "utils.h"
@@ -45,69 +46,6 @@ extern "C" {
#define CONF_COMMENT '#'
-struct ConfigOption {
- const char *const name;
- const bool repeatable;
- const bool block;
-};
-
-static constexpr struct ConfigOption config_options[] = {
- { CONF_MUSIC_DIR, false, false },
- { CONF_PLAYLIST_DIR, false, false },
- { CONF_FOLLOW_INSIDE_SYMLINKS, false, false },
- { CONF_FOLLOW_OUTSIDE_SYMLINKS, false, false },
- { CONF_DB_FILE, false, false },
- { CONF_STICKER_FILE, false, false },
- { CONF_LOG_FILE, false, false },
- { CONF_PID_FILE, false, false },
- { CONF_STATE_FILE, false, false },
- { "restore_paused", false, false },
- { CONF_USER, false, false },
- { CONF_GROUP, false, false },
- { CONF_BIND_TO_ADDRESS, true, false },
- { CONF_PORT, false, false },
- { CONF_LOG_LEVEL, false, false },
- { CONF_ZEROCONF_NAME, false, false },
- { CONF_ZEROCONF_ENABLED, false, false },
- { CONF_PASSWORD, true, false },
- { CONF_DEFAULT_PERMS, false, false },
- { CONF_AUDIO_OUTPUT, true, true },
- { CONF_AUDIO_OUTPUT_FORMAT, false, false },
- { CONF_MIXER_TYPE, false, false },
- { CONF_REPLAYGAIN, false, false },
- { CONF_REPLAYGAIN_PREAMP, false, false },
- { CONF_REPLAYGAIN_MISSING_PREAMP, false, false },
- { CONF_REPLAYGAIN_LIMIT, false, false },
- { CONF_VOLUME_NORMALIZATION, false, false },
- { CONF_SAMPLERATE_CONVERTER, false, false },
- { CONF_AUDIO_BUFFER_SIZE, false, false },
- { CONF_BUFFER_BEFORE_PLAY, false, false },
- { CONF_HTTP_PROXY_HOST, false, false },
- { CONF_HTTP_PROXY_PORT, false, false },
- { CONF_HTTP_PROXY_USER, false, false },
- { CONF_HTTP_PROXY_PASSWORD, false, false },
- { CONF_CONN_TIMEOUT, false, false },
- { CONF_MAX_CONN, false, false },
- { CONF_MAX_PLAYLIST_LENGTH, false, false },
- { CONF_MAX_COMMAND_LIST_SIZE, false, false },
- { CONF_MAX_OUTPUT_BUFFER_SIZE, false, false },
- { CONF_FS_CHARSET, false, false },
- { CONF_ID3V1_ENCODING, false, false },
- { CONF_METADATA_TO_USE, false, false },
- { CONF_SAVE_ABSOLUTE_PATHS, false, false },
- { CONF_DECODER, true, true },
- { CONF_INPUT, true, true },
- { CONF_GAPLESS_MP3_PLAYBACK, false, false },
- { CONF_PLAYLIST_PLUGIN, true, true },
- { CONF_AUTO_UPDATE, false, false },
- { CONF_AUTO_UPDATE_DEPTH, false, false },
- { CONF_DESPOTIFY_USER, false, false },
- { CONF_DESPOTIFY_PASSWORD, false, false},
- { CONF_DESPOTIFY_HIGH_BITRATE, false, false },
- { "filter", true, true },
- { "database", false, true },
-};
-
static GSList *config_params[G_N_ELEMENTS(config_options)];
static bool
@@ -172,16 +110,6 @@ config_param_free_callback(gpointer data, G_GNUC_UNUSED gpointer user_data)
config_param_free(param);
}
-static int
-ConfigFindByName(const char *name)
-{
- for (unsigned i = 0; i < G_N_ELEMENTS(config_options); ++i)
- if (strcmp(config_options[i].name, name) == 0)
- return i;
-
- return -1;
-}
-
void config_global_finish(void)
{
for (unsigned i = 0; i < G_N_ELEMENTS(config_params); ++i) {
diff --git a/src/ConfigOptions.hxx b/src/ConfigOptions.hxx
new file mode 100644
index 000000000..5e2ec1891
--- /dev/null
+++ b/src/ConfigOptions.hxx
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2003-2013 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 "gcc.h"
+
+#include <glib.h>
+
+#include <string.h>
+
+struct ConfigOption {
+ const char *const name;
+ const bool repeatable;
+ const bool block;
+};
+
+static constexpr struct ConfigOption config_options[] = {
+ { CONF_MUSIC_DIR, false, false },
+ { CONF_PLAYLIST_DIR, false, false },
+ { CONF_FOLLOW_INSIDE_SYMLINKS, false, false },
+ { CONF_FOLLOW_OUTSIDE_SYMLINKS, false, false },
+ { CONF_DB_FILE, false, false },
+ { CONF_STICKER_FILE, false, false },
+ { CONF_LOG_FILE, false, false },
+ { CONF_PID_FILE, false, false },
+ { CONF_STATE_FILE, false, false },
+ { "restore_paused", false, false },
+ { CONF_USER, false, false },
+ { CONF_GROUP, false, false },
+ { CONF_BIND_TO_ADDRESS, true, false },
+ { CONF_PORT, false, false },
+ { CONF_LOG_LEVEL, false, false },
+ { CONF_ZEROCONF_NAME, false, false },
+ { CONF_ZEROCONF_ENABLED, false, false },
+ { CONF_PASSWORD, true, false },
+ { CONF_DEFAULT_PERMS, false, false },
+ { CONF_AUDIO_OUTPUT, true, true },
+ { CONF_AUDIO_OUTPUT_FORMAT, false, false },
+ { CONF_MIXER_TYPE, false, false },
+ { CONF_REPLAYGAIN, false, false },
+ { CONF_REPLAYGAIN_PREAMP, false, false },
+ { CONF_REPLAYGAIN_MISSING_PREAMP, false, false },
+ { CONF_REPLAYGAIN_LIMIT, false, false },
+ { CONF_VOLUME_NORMALIZATION, false, false },
+ { CONF_SAMPLERATE_CONVERTER, false, false },
+ { CONF_AUDIO_BUFFER_SIZE, false, false },
+ { CONF_BUFFER_BEFORE_PLAY, false, false },
+ { CONF_HTTP_PROXY_HOST, false, false },
+ { CONF_HTTP_PROXY_PORT, false, false },
+ { CONF_HTTP_PROXY_USER, false, false },
+ { CONF_HTTP_PROXY_PASSWORD, false, false },
+ { CONF_CONN_TIMEOUT, false, false },
+ { CONF_MAX_CONN, false, false },
+ { CONF_MAX_PLAYLIST_LENGTH, false, false },
+ { CONF_MAX_COMMAND_LIST_SIZE, false, false },
+ { CONF_MAX_OUTPUT_BUFFER_SIZE, false, false },
+ { CONF_FS_CHARSET, false, false },
+ { CONF_ID3V1_ENCODING, false, false },
+ { CONF_METADATA_TO_USE, false, false },
+ { CONF_SAVE_ABSOLUTE_PATHS, false, false },
+ { CONF_DECODER, true, true },
+ { CONF_INPUT, true, true },
+ { CONF_GAPLESS_MP3_PLAYBACK, false, false },
+ { CONF_PLAYLIST_PLUGIN, true, true },
+ { CONF_AUTO_UPDATE, false, false },
+ { CONF_AUTO_UPDATE_DEPTH, false, false },
+ { CONF_DESPOTIFY_USER, false, false },
+ { CONF_DESPOTIFY_PASSWORD, false, false},
+ { CONF_DESPOTIFY_HIGH_BITRATE, false, false },
+ { "filter", true, true },
+ { "database", false, true },
+};
+
+gcc_pure
+static int
+ConfigFindByName(const char *name)
+{
+ for (unsigned i = 0; i < G_N_ELEMENTS(config_options); ++i)
+ if (strcmp(config_options[i].name, name) == 0)
+ return i;
+
+ return -1;
+}