aboutsummaryrefslogtreecommitdiffstats
path: root/src/filter
diff options
context:
space:
mode:
authorAlbin Eldstål-Damlin <laeder.keps@gmail.com>2009-12-14 21:09:28 +0100
committerMax Kellermann <max@duempel.org>2009-12-14 22:12:58 +0100
commit0ac0bd26e73773d075200516dc8000e907d3a1ac (patch)
tree57768742a564c3e6d277563acce13bb3ab346465 /src/filter
parentbf6258f58266ebdd9766e659ff4d6c80bd17c6d0 (diff)
downloadmpd-0ac0bd26e73773d075200516dc8000e907d3a1ac.tar.gz
mpd-0ac0bd26e73773d075200516dc8000e907d3a1ac.tar.xz
mpd-0ac0bd26e73773d075200516dc8000e907d3a1ac.zip
Split filter_config into its own module
Diffstat (limited to 'src/filter')
-rw-r--r--src/filter/chain_filter_plugin.c97
-rw-r--r--src/filter/chain_filter_plugin.h12
2 files changed, 0 insertions, 109 deletions
diff --git a/src/filter/chain_filter_plugin.c b/src/filter/chain_filter_plugin.c
index 5f9544b50..48100bc4b 100644
--- a/src/filter/chain_filter_plugin.c
+++ b/src/filter/chain_filter_plugin.c
@@ -25,7 +25,6 @@
#include "filter_registry.h"
#include <assert.h>
-#include <string.h>
struct filter_chain {
/** the base class */
@@ -179,99 +178,3 @@ filter_chain_append(struct filter *_chain, struct filter *filter)
chain->children = g_slist_append(chain->children, filter);
}
-/**
- * Find the "filter" configuration block for the specified name.
- *
- * @param filter_template_name the name of the filter template
- * @return the configuration block, or NULL if none was configured
- */
-static const struct config_param *
-filter_plugin_config(const char *filter_template_name)
-{
- const struct config_param *param = NULL;
-
- while ((param = config_get_next_param(CONF_AUDIO_FILTER, param)) != NULL) {
- const char *name =
- config_get_block_string(param, "name", NULL);
- if (name == NULL)
- g_error("filter configuration without 'name' name in line %d",
- param->line);
-
- if (strcmp(name, filter_template_name) == 0)
- return param;
- }
-
- return NULL;
-}
-
-/**
- * Builds a filter chain from a configuration string on the form
- * "name1, name2, name3, ..." by looking up each name among the
- * configured filter sections.
- * @param chain the chain to append filters on
- * @param spec the filter chain specification
- * @return the number of filters which were successfully added
- */
-unsigned int
-filter_chain_parse(struct filter *chain, const char *spec) {
-
- // Split on comma
- gchar** tokens = g_strsplit_set(spec, ",", 255);
-
- int added_filters = 0;
-
- // Add each name to the filter chain by instantiating an actual filter
- char **template_names = tokens;
- while (*template_names != NULL) {
- const char *plugin_name;
- const struct filter_plugin *fp;
- struct filter *f;
- const struct config_param *cfg;
-
- // Squeeze whitespace
- g_strstrip(*template_names);
-
- cfg = filter_plugin_config(*template_names);
- if (cfg == NULL) {
- g_error("Unable to locate filter template %s",
- *template_names);
- ++template_names;
- continue;
- }
-
- // Figure out what kind of a plugin that is
- plugin_name = config_get_block_string(cfg, "plugin", NULL);
- if (plugin_name == NULL) {
- g_error("filter configuration without 'plugin' at line %d",
- cfg->line);
- ++template_names;
- continue;
- }
-
- // Instantiate one of those filter plugins with the template name as a hint
- fp = filter_plugin_by_name(plugin_name);
- if (fp == NULL) {
- g_error("filter plugin not found: %s",
- plugin_name);
- ++template_names;
- continue;
- }
-
- f = filter_new(fp, cfg, NULL);
- if (f == NULL) {
- g_error("filter plugin initialization failed: %s",
- plugin_name);
- ++template_names;
- continue;
- }
-
- filter_chain_append(chain, f);
- ++added_filters;
-
- ++template_names;
- }
-
- g_strfreev(tokens);
-
- return added_filters;
-}
diff --git a/src/filter/chain_filter_plugin.h b/src/filter/chain_filter_plugin.h
index 54e07081d..f8462b22d 100644
--- a/src/filter/chain_filter_plugin.h
+++ b/src/filter/chain_filter_plugin.h
@@ -45,16 +45,4 @@ filter_chain_new(void);
void
filter_chain_append(struct filter *chain, struct filter *filter);
-/**
- * Builds a filter chain from a configuration string on the form
- * "name1, name2, name3, ..." by looking up each name among the
- * configured filter sections. If no filters are specified, a
- * null filter is automatically appended.
- * @param chain the chain to append filters on
- * @param spec the filter chain specification
- * @return the number of filters which were successfully added
- */
-unsigned int
-filter_chain_parse(struct filter *chain, const char *spec);
-
#endif