From: Fuwei Tang fuweix.tang@intel.com
We missed parsing the index value, which is used as a use case indicator, when processing the route objects.
This patch fixes the bug.
Signed-off-by: Fuwei Tang fuweix.tang@intel.com Tested-by: Subhransu S. Prusty subhransu.s.prusty@intel.com --- src/topology/dapm.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/topology/dapm.c b/src/topology/dapm.c index 13aa1c4..2fa387f 100644 --- a/src/topology/dapm.c +++ b/src/topology/dapm.c @@ -381,7 +381,7 @@ done: }
-static int tplg_parse_routes(snd_tplg_t *tplg, snd_config_t *cfg) +static int tplg_parse_routes(snd_tplg_t *tplg, snd_config_t *cfg, int index) { snd_config_iterator_t i, next; snd_config_t *n; @@ -399,7 +399,7 @@ static int tplg_parse_routes(snd_tplg_t *tplg, snd_config_t *cfg) elem = tplg_elem_new_route(tplg); if (!elem) return -ENOMEM; - + elem->index = index; line = elem->route;
err = tplg_parse_line(val, line); @@ -419,7 +419,8 @@ int tplg_parse_dapm_graph(snd_tplg_t *tplg, snd_config_t *cfg, snd_config_iterator_t i, next; snd_config_t *n; int err; - const char *graph_id; + const char *graph_id, *val = NULL; + int index;
if (snd_config_get_type(cfg) != SND_CONFIG_TYPE_COMPOUND) { SNDERR("error: compound is expected for dapm graph definition\n"); @@ -436,8 +437,14 @@ int tplg_parse_dapm_graph(snd_tplg_t *tplg, snd_config_t *cfg, continue; }
+ if (strcmp(id, "index") == 0) { + if (snd_config_get_string(n, &val) < 0) + return NULL; + index = atoi(val); + } + if (strcmp(id, "lines") == 0) { - err = tplg_parse_routes(tplg, n); + err = tplg_parse_routes(tplg, n, index); if (err < 0) { SNDERR("error: failed to parse dapm graph %s\n", graph_id);