From 12f6790910de53f76dc26a51c09e26f0f7be56fe Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 19 Mar 2025 11:54:46 +0100 Subject: [PATCH] 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 --- src/ucm/main.c | 5 +++++ src/ucm/ucm_confdoc.h | 28 +++++++++++++++------------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/ucm/main.c b/src/ucm/main.c index 3a3c9c15..f1849aa2 100644 --- a/src/ucm/main.c +++ b/src/ucm/main.c @@ -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; } diff --git a/src/ucm/ucm_confdoc.h b/src/ucm/ucm_confdoc.h index 908bc9d7..5002a2dc 100644 --- a/src/ucm/ucm_confdoc.h +++ b/src/ucm/ucm_confdoc.h @@ -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:\} | Environment variable \ ${sys:\} | Contents of sysfs file \ ${var:\} | UCM parser variable (set using a _Define_ block) ${eval:\} | Evaluate expression like *($var+2)/3* [**Syntax 5**] ${find-card:\} | Find a card - see _Find card substitution_ section ${find-device:\} | 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 -- 2.47.1