]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ucm: adding the folder of card_long_name when finding verb conf file
authorHui Wang <hui.wang@canonical.com>
Wed, 2 May 2018 06:08:05 +0000 (14:08 +0800)
committerJaroslav Kysela <perex@perex.cz>
Wed, 2 May 2018 06:42:40 +0000 (08:42 +0200)
The board configuration file and verb conf file are allowed to be
in the folder named of card_long_name, so when finding the verb conf
file, we need to check if it is in the folder of card_long_name or
card_name.

Signed-off-by: Hui Wang <hui.wang@canonical.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/parser.c

index 2d76152ff6e16cf28e0a4aff480856da9cc1db5c..219edb9691a6bbf04b062766464a267de58f053c 100644 (file)
@@ -1056,6 +1056,7 @@ static int parse_verb_file(snd_use_case_mgr_t *uc_mgr,
        char filename[MAX_FILE];
        char *env = getenv(ALSA_CONFIG_UCM_VAR);
        int err;
+       char *folder_name;
 
        /* allocate verb */
        verb = calloc(1, sizeof(struct use_case_verb));
@@ -1082,12 +1083,17 @@ static int parse_verb_file(snd_use_case_mgr_t *uc_mgr,
        }
 
        /* open Verb file for reading */
+       if (!strncmp(uc_mgr->conf_file_name, uc_mgr->card_long_name, MAX_CARD_LONG_NAME))
+               folder_name = uc_mgr->card_long_name;
+       else
+               folder_name = uc_mgr->card_name;
+
        if (env)
                snprintf(filename, sizeof(filename), "%s/%s/%s",
-                        env, uc_mgr->card_name, file);
+                        env, folder_name, file);
        else
                snprintf(filename, sizeof(filename), "%s/ucm/%s/%s",
-                        snd_config_topdir(), uc_mgr->card_name, file);
+                        snd_config_topdir(), folder_name, file);
        filename[sizeof(filename)-1] = '\0';
        
        err = uc_mgr_config_load(filename, &cfg);