ConfigFile: add enum ConfigOption

Look up top-level config options by enum (= integer), not by name
string.
This commit is contained in:
Max Kellermann
2013-01-30 17:52:51 +01:00
parent daa4647712
commit 595b6a4f6c
16 changed files with 278 additions and 197 deletions

View File

@@ -33,7 +33,8 @@
#include <stdlib.h>
const char *
config_get_string(G_GNUC_UNUSED const char *name, const char *default_value)
config_get_string(gcc_unused enum ConfigOption option,
const char *default_value)
{
return default_value;
}

View File

@@ -57,7 +57,10 @@ int main(int argc, char **argv)
return 1;
}
const char *value = config_get_string(name, NULL);
ConfigOption option = ParseConfigOptionName(name);
const char *value = option != CONF_MAX
? config_get_string(option, nullptr)
: nullptr;
int ret;
if (value != NULL) {
g_print("%s\n", value);

View File

@@ -48,7 +48,8 @@ my_log_func(const gchar *log_domain, G_GNUC_UNUSED GLogLevelFlags log_level,
}
const char *
config_get_string(G_GNUC_UNUSED const char *name, const char *default_value)
config_get_string(gcc_unused enum ConfigOption option,
const char *default_value)
{
return default_value;
}

View File

@@ -56,11 +56,11 @@ my_log_func(const gchar *log_domain, G_GNUC_UNUSED GLogLevelFlags log_level,
}
static const struct config_param *
find_named_config_block(const char *block, const char *name)
find_named_config_block(ConfigOption option, const char *name)
{
const struct config_param *param = NULL;
while ((param = config_get_next_param(block, param)) != NULL) {
while ((param = config_get_next_param(option, param)) != NULL) {
const char *current_name =
config_get_block_string(param, "name", NULL);
if (current_name != NULL && strcmp(current_name, name) == 0)
@@ -77,7 +77,7 @@ load_filter(const char *name)
struct filter *filter;
GError *error = NULL;
param = find_named_config_block("filter", name);
param = find_named_config_block(CONF_AUDIO_FILTER, name);
if (param == NULL) {
g_printerr("No such configured filter: %s\n", name);
return nullptr;

View File

@@ -81,11 +81,11 @@ filter_plugin_by_name(G_GNUC_UNUSED const char *name)
}
static const struct config_param *
find_named_config_block(const char *block, const char *name)
find_named_config_block(ConfigOption option, const char *name)
{
const struct config_param *param = NULL;
while ((param = config_get_next_param(block, param)) != NULL) {
while ((param = config_get_next_param(option, param)) != NULL) {
const char *current_name =
config_get_block_string(param, "name", NULL);
if (current_name != NULL && strcmp(current_name, name) == 0)