OSDN Git Service

ucm: substitute component sequence string
authorJaroslav Kysela <perex@perex.cz>
Wed, 27 May 2020 12:12:12 +0000 (14:12 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 27 May 2020 12:12:12 +0000 (14:12 +0200)
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/ucm/parser.c

index e4b1b71..44b6130 100644 (file)
@@ -570,17 +570,22 @@ struct use_case_device *find_component_dev(snd_use_case_mgr_t *uc_mgr,
  * disable sequence is needed by its parenet device.
  */
 static int parse_component_seq(snd_use_case_mgr_t *uc_mgr,
-                         snd_config_t *n, int enable,
-                         struct component_sequence *cmpt_seq)
+                              snd_config_t *n, int enable,
+                              struct component_sequence *cmpt_seq)
 {
-       const char *val;
+       char *val;
        int err;
 
-       err = snd_config_get_string(n, &val);
+       if (uc_mgr->conf_format < 3) {
+               err = parse_string(n, &val);
+       } else {
+               err = parse_string_substitute(uc_mgr, n, &val);
+       }
        if (err < 0)
                return err;
 
        cmpt_seq->device = find_component_dev(uc_mgr, val);
+       free(val);
        if (!cmpt_seq->device) {
                uc_error("error: Cannot find component device %s", val);
                return -EINVAL;