aboutsummaryrefslogtreecommitdiffstats
path: root/src/conf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/conf.h')
-rw-r--r--src/conf.h52
1 files changed, 41 insertions, 11 deletions
diff --git a/src/conf.h b/src/conf.h
index c5e49960e..669542167 100644
--- a/src/conf.h
+++ b/src/conf.h
@@ -44,10 +44,9 @@
#define CONF_AUDIO_OUTPUT "audio_output"
#define CONF_AUDIO_OUTPUT_FORMAT "audio_output_format"
#define CONF_MIXER_TYPE "mixer_type"
-#define CONF_MIXER_DEVICE "mixer_device"
-#define CONF_MIXER_CONTROL "mixer_control"
#define CONF_REPLAYGAIN "replaygain"
#define CONF_REPLAYGAIN_PREAMP "replaygain_preamp"
+#define CONF_REPLAYGAIN_MISSING_PREAMP "replaygain_missing_preamp"
#define CONF_VOLUME_NORMALIZATION "volume_normalization"
#define CONF_SAMPLERATE_CONVERTER "samplerate_converter"
#define CONF_AUDIO_BUFFER_SIZE "audio_buffer_size"
@@ -69,9 +68,6 @@
#define CONF_INPUT "input"
#define CONF_GAPLESS_MP3_PLAYBACK "gapless_mp3_playback"
-#define CONF_BOOL_UNSET -1
-#define CONF_BOOL_INVALID -2
-
#define DEFAULT_PLAYLIST_MAX_LENGTH (1024*16)
#define DEFAULT_PLAYLIST_SAVE_ABSOLUTE_PATHS false
@@ -79,6 +75,12 @@ struct block_param {
char *name;
char *value;
int line;
+
+ /**
+ * This flag is false when nobody has queried the value of
+ * this option yet.
+ */
+ bool used;
};
struct config_param {
@@ -87,31 +89,50 @@ struct config_param {
struct block_param *block_params;
unsigned num_block_params;
+
+ /**
+ * This flag is false when nobody has queried the value of
+ * this option yet.
+ */
+ bool used;
};
+/**
+ * A GQuark for GError instances, resulting from malformed
+ * configuration.
+ */
+G_GNUC_CONST
+static inline GQuark
+config_quark(void)
+{
+ return g_quark_from_static_string("config");
+}
+
void config_global_init(void);
void config_global_finish(void);
-void config_read_file(const char *file);
-
/**
- * Adds a new configuration parameter. The name must be registered
- * with registerConfigParam().
+ * Call this function after all configuration has been evaluated. It
+ * checks for unused parameters, and logs warnings.
*/
-void
-config_add_param(const char *name, struct config_param *param);
+void config_global_check(void);
+
+void config_read_file(const char *file);
/* don't free the returned value
set _last_ to NULL to get first entry */
+G_GNUC_CONST
struct config_param *
config_get_next_param(const char *name, const struct config_param *last);
+G_GNUC_CONST
static inline struct config_param *
config_get_param(const char *name)
{
return config_get_next_param(name, NULL);
}
+G_GNUC_CONST
const char *
config_get_string(const char *name, const char *default_value);
@@ -120,21 +141,27 @@ config_get_string(const char *name, const char *default_value);
* absolute path. If there is a tilde prefix, it is expanded. Aborts
* MPD if the path is not a valid absolute path.
*/
+G_GNUC_CONST
const char *
config_get_path(const char *name);
+G_GNUC_CONST
unsigned
config_get_positive(const char *name, unsigned default_value);
+G_GNUC_CONST
struct block_param *
config_get_block_param(const struct config_param *param, const char *name);
+G_GNUC_CONST
bool config_get_bool(const char *name, bool default_value);
+G_GNUC_CONST
const char *
config_get_block_string(const struct config_param *param, const char *name,
const char *default_value);
+G_GNUC_CONST
static inline char *
config_dup_block_string(const struct config_param *param, const char *name,
const char *default_value)
@@ -142,14 +169,17 @@ config_dup_block_string(const struct config_param *param, const char *name,
return g_strdup(config_get_block_string(param, name, default_value));
}
+G_GNUC_CONST
unsigned
config_get_block_unsigned(const struct config_param *param, const char *name,
unsigned default_value);
+G_GNUC_CONST
bool
config_get_block_bool(const struct config_param *param, const char *name,
bool default_value);
+G_GNUC_CONST
struct config_param *
config_new_param(const char *value, int line);