mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
ucm: do argument value substitution for Macros
Link: https://github.com/alsa-project/alsa-ucm-conf/pull/411 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
3fd24db22d
commit
99499a6ebc
1 changed files with 7 additions and 3 deletions
|
|
@ -415,7 +415,7 @@ static int evaluate_macro1(snd_use_case_mgr_t *uc_mgr,
|
||||||
snd_config_iterator_t i, next;
|
snd_config_iterator_t i, next;
|
||||||
snd_config_t *m, *mc, *a, *n;
|
snd_config_t *m, *mc, *a, *n;
|
||||||
const char *mid, *id;
|
const char *mid, *id;
|
||||||
char name[128], *var;
|
char name[128], *var, *var2;
|
||||||
const char *s;
|
const char *s;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
|
@ -449,9 +449,13 @@ static int evaluate_macro1(snd_use_case_mgr_t *uc_mgr,
|
||||||
err = snd_config_get_ascii(n, &var);
|
err = snd_config_get_ascii(n, &var);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto __err_path;
|
goto __err_path;
|
||||||
snprintf(name, sizeof(name), "__%s", id);
|
err = uc_mgr_get_substituted_value(uc_mgr, &var2, var);
|
||||||
err = uc_mgr_set_variable(uc_mgr, name, var);
|
|
||||||
free(var);
|
free(var);
|
||||||
|
if (err >= 0) {
|
||||||
|
snprintf(name, sizeof(name), "__%s", id);
|
||||||
|
err = uc_mgr_set_variable(uc_mgr, name, var2);
|
||||||
|
free(var2);
|
||||||
|
}
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto __err_path;
|
goto __err_path;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue