From 7ccaa086931026534c324ec43eaec1dd7a491a9f Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 6 Nov 2019 10:19:57 +0100 Subject: [PATCH] ucm: evaluate nested If blocks also in True/False blocks Signed-off-by: Jaroslav Kysela --- src/ucm/ucm_cond.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ucm/ucm_cond.c b/src/ucm/ucm_cond.c index 0e2e44e0..3df83bd2 100644 --- a/src/ucm/ucm_cond.c +++ b/src/ucm/ucm_cond.c @@ -308,6 +308,16 @@ int uc_mgr_evaluate_condition(snd_use_case_mgr_t *uc_mgr, err = if_eval_one(uc_mgr, n, &a); if (err < 0) return err; + err = snd_config_search(a, "If", &n2); + if (err < 0 && err != -ENOENT) { + uc_error("If block error (If)"); + return -EINVAL; + } else if (err == 0) { + err = uc_mgr_evaluate_condition(uc_mgr, a, n2); + if (err < 0) + return err; + snd_config_delete(n2); + } snd_config_for_each(i2, next2, a) { n2 = snd_config_iterator_entry(i2); err = snd_config_remove(n2); -- 2.47.1