]> git.alsa-project.org Git - alsa-lib.git/commitdiff
ucm: add @@LibraryVersion and @@SyntaxVersion variables
authorJaroslav Kysela <perex@perex.cz>
Wed, 19 Mar 2025 10:54:46 +0000 (11:54 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 19 Mar 2025 10:54:50 +0000 (11:54 +0100)
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>
src/ucm/main.c
src/ucm/ucm_confdoc.h

index 3a3c9c154f6e9de109ae33ecfdbddfc9424e404c..f1849aa2a21093dd2e168287f359f1f3a89e64b2 100644 (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;
 }
 
index 908bc9d76477d1dd360f431c7e4384ea5208cc48..5002a2dc54666a330e34f0e1cc45eaf9589198c4 100644 (file)
@@ -386,25 +386,27 @@ Evaluation order   | Configuration block | Evaluation restart
 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)
-${ConfDir}           | Card's UCM configuration directory (e.g. /usr/share/alsa/ucm2/conf.d/USB-Audio)
-${ConfName}          | Configuration name (e.g. USB-Audio.conf)
-${CardNumber}        | Real ALSA card number (or empty string for the virtual UCM card)
-${CardId}            | ALSA card identifier (see snd_ctl_card_info_get_id())
-${CardDriver}        | ALSA card driver (see snd_ctl_card_info_get_driver())
-${CardName}          | ALSA card name (see snd_ctl_card_info_get_name())
-${CardLongName}      | ALSA card long name (see snd_ctl_card_info_get_longname())
-${CardComponents}    | ALSA card components (see snd_ctl_card_info_get_components())
+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)
+${ConfDir}             | Card's UCM configuration directory (e.g. /usr/share/alsa/ucm2/conf.d/USB-Audio)
+${ConfName}            | Configuration name (e.g. USB-Audio.conf)
+${CardNumber}          | Real ALSA card number (or empty string for the virtual UCM card)
+${CardId}              | ALSA card identifier (see snd_ctl_card_info_get_id())
+${CardDriver}          | ALSA card driver (see snd_ctl_card_info_get_driver())
+${CardName}            | ALSA card name (see snd_ctl_card_info_get_name())
+${CardLongName}        | ALSA card long name (see snd_ctl_card_info_get_longname())
+${CardComponents}      | ALSA card components (see snd_ctl_card_info_get_components())
 ${env:\<str\>}         | Environment variable \<str\>
 ${sys:\<str\>}         | Contents of sysfs file \<str\>
 ${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