ucm: configuration - substitute ${ConfDir} and ${ConfTopDir}

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2020-05-19 15:07:13 +02:00
parent 3edfebc522
commit 8a36b43e03

View file

@ -29,6 +29,27 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <limits.h> #include <limits.h>
static char *rval_conf_topdir(snd_use_case_mgr_t *uc_mgr)
{
const char *dir;
if (uc_mgr->conf_format < 3)
return NULL;
dir = uc_mgr_config_dir(uc_mgr->conf_format);
if (dir && dir[0])
return strdup(dir);
return NULL;
}
static char *rval_conf_dir(snd_use_case_mgr_t *uc_mgr)
{
if (uc_mgr->conf_format < 3)
return NULL;
if (uc_mgr->conf_dir_name && uc_mgr->conf_dir_name[0])
return strdup(uc_mgr->conf_dir_name);
return NULL;
}
static char *rval_conf_name(snd_use_case_mgr_t *uc_mgr) static char *rval_conf_name(snd_use_case_mgr_t *uc_mgr)
{ {
if (uc_mgr->conf_file_name && uc_mgr->conf_file_name[0]) if (uc_mgr->conf_file_name && uc_mgr->conf_file_name[0])
@ -193,6 +214,8 @@ int uc_mgr_get_substituted_value(snd_use_case_mgr_t *uc_mgr,
if (*value == '$' && *(value+1) == '{') { if (*value == '$' && *(value+1) == '{') {
bool allow_empty = false; bool allow_empty = false;
MATCH_VARIABLE(value, "${ConfTopDir}", rval_conf_topdir, false);
MATCH_VARIABLE(value, "${ConfDir}", rval_conf_dir, false);
MATCH_VARIABLE(value, "${ConfName}", rval_conf_name, false); MATCH_VARIABLE(value, "${ConfName}", rval_conf_name, false);
MATCH_VARIABLE(value, "${CardId}", rval_card_id, false); MATCH_VARIABLE(value, "${CardId}", rval_card_id, false);
MATCH_VARIABLE(value, "${CardDriver}", rval_card_driver, false); MATCH_VARIABLE(value, "${CardDriver}", rval_card_driver, false);