]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ucm: the ucm2/ subdirectory is driver name based
authorJaroslav Kysela <perex@perex.cz>
Mon, 3 Feb 2020 14:24:19 +0000 (15:24 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 3 Feb 2020 14:24:19 +0000 (15:24 +0100)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/parser.c

index dbbd381755b1dfd0ba8f4a2bf2f1523e5675ef51..f576fde429cf1b118eb104f45ed43d68df8fd616 100644 (file)
@@ -1515,7 +1515,7 @@ static int get_card_long_name(snd_use_case_mgr_t *mgr, char *longname)
        int card, err;
        snd_ctl_t *ctl;
        snd_ctl_card_info_t *info;
-       const char *_name, *_long_name;
+       const char *_driver, *_name, *_long_name;
 
        snd_ctl_card_info_alloca(&info);
 
@@ -1535,9 +1535,11 @@ static int get_card_long_name(snd_use_case_mgr_t *mgr, char *longname)
                err = get_card_info(mgr, name, &ctl, info);
 
                if (err == 0) {
+                       _driver = snd_ctl_card_info_get_driver(info);
                        _name = snd_ctl_card_info_get_name(info);
                        _long_name = snd_ctl_card_info_get_longname(info);
-                       if (!strcmp(card_name, _name) ||
+                       if (!strcmp(card_name, _driver) ||
+                           !strcmp(card_name, _name) ||
                            !strcmp(card_name, _long_name)) {
                                snd_strlcpy(longname, _long_name, MAX_CARD_LONG_NAME);
                                return 0;
@@ -1560,7 +1562,7 @@ static int get_by_card(snd_use_case_mgr_t *mgr, const char *ctl_name, char *long
 {
        snd_ctl_t *ctl;
        snd_ctl_card_info_t *info;
-       const char *_name, *_long_name;
+       const char *_driver, *_long_name;
        int err;
 
        snd_ctl_card_info_alloca(&info);
@@ -1569,8 +1571,8 @@ static int get_by_card(snd_use_case_mgr_t *mgr, const char *ctl_name, char *long
        if (err)
                return err;
 
-       _name = snd_ctl_card_info_get_name(info);
-       if (replace_string(&mgr->conf_dir_name, _name) == NULL)
+       _driver = snd_ctl_card_info_get_driver(info);
+       if (replace_string(&mgr->conf_dir_name, _driver) == NULL)
                return -ENOMEM;
        _long_name = snd_ctl_card_info_get_longname(info);
        snd_strlcpy(longname, _long_name, MAX_CARD_LONG_NAME);