ucm: add @@LibraryVersion and @@SyntaxVersion variables

It may be useful to check the current syntax version (and maybe
library version) when new features are added.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2025-03-19 11:54:46 +01:00
parent 7fbd47ce79
commit 12f6790910
2 changed files with 20 additions and 13 deletions

View file

@ -1502,6 +1502,11 @@ const char *parse_open_variables(snd_use_case_mgr_t *uc_mgr, const char *name)
skip:
snd_config_delete(cfg);
uc_mgr_set_variable(uc_mgr, "@@LibraryVersion", SND_LIB_VERSION_STR);
snprintf(vname, sizeof(vname), "%d", SYNTAX_VERSION_MAX);
uc_mgr_set_variable(uc_mgr, "@@SyntaxVersion", vname);
return end + 3;
}

View file

@ -387,7 +387,7 @@ The dynamic tree identifiers and assigned values in the configuration tree are
substituted. The substitutes strings are in the table bellow.
Substituted string | Value
---------------------|---------------------
-----------------------|---------------------
${OpenName} | Original UCM card name (passed to snd_use_case_mgr_open())
${ConfLibDir} | Library top-level configuration directory (e.g. /usr/share/alsa)
${ConfTopDir} | Top-level UCM configuration directory (e.g. /usr/share/alsa/ucm2)
@ -405,6 +405,8 @@ ${var:\<str\>} | UCM parser variable (set using a _Define_ block)
${eval:\<str\>} | Evaluate expression like *($var+2)/3* [**Syntax 5**]
${find-card:\<str\>} | Find a card - see _Find card substitution_ section
${find-device:\<str\>} | Find a device - see _Find device substitution_ section
@@LibraryVersion | e.g. "1.2.14" [**Syntax 8**]
@@SyntaxVersion | e.g. "8" [**Syntax 8**]
#### Special whole string substitution