]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ucm: add ${CardComponents} substitution to the value string processing
authorJaroslav Kysela <perex@perex.cz>
Wed, 6 Nov 2019 09:21:40 +0000 (10:21 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 14 Nov 2019 14:00:40 +0000 (15:00 +0100)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/ucm_subs.c

index b51737188a79528225532bd7af88ad48d8becea4..c26fe08b3773fc75aaae26ce2180841d306b29a7 100644 (file)
@@ -63,6 +63,16 @@ static char *rval_card_longname(snd_use_case_mgr_t *uc_mgr)
        return strdup(snd_ctl_card_info_get_longname(ctl_list->ctl_info));
 }
 
+static char *rval_card_components(snd_use_case_mgr_t *uc_mgr)
+{
+       struct ctl_list *ctl_list;
+
+       ctl_list = uc_mgr_get_one_ctl(uc_mgr);
+       if (ctl_list == NULL)
+               return NULL;
+       return strdup(snd_ctl_card_info_get_components(ctl_list->ctl_info));
+}
+
 static char *rval_env(snd_use_case_mgr_t *uc_mgr ATTRIBUTE_UNUSED, const char *id)
 {
        char *e;
@@ -121,6 +131,7 @@ int uc_mgr_get_substituted_value(snd_use_case_mgr_t *uc_mgr,
                        MATCH_VARIABLE(value, "${CardId}", rval_card_id);
                        MATCH_VARIABLE(value, "${CardName}", rval_card_name);
                        MATCH_VARIABLE(value, "${CardLongName}", rval_card_longname);
+                       MATCH_VARIABLE(value, "${CardComponents}", rval_card_components);
                        MATCH_VARIABLE2(value, "${env:", rval_env);
                        err = -EINVAL;
                        tmp = strchr(value, '}');