ConfigFile: add enum ConfigOption
Look up top-level config options by enum (= integer), not by name string.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user