summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/topology.h23
-rw-r--r--src/topology/data.c12
2 files changed, 29 insertions, 6 deletions
diff --git a/include/topology.h b/include/topology.h
index 644e5489..0675b527 100644
--- a/include/topology.h
+++ b/include/topology.h
@@ -302,6 +302,29 @@ extern "C" {
* }
* }
* </pre>
+ * To define multiple vendor tuples of same type, please append some
+ * characters after the type string ("string", "uuid", "bool", "byte", "short"
+ * or "word"), to avoid ID duplication in the SectionVendorTuples.<br>
+ * The parser will check the first few characters in ID to get the tuple type.
+ * Here is an example:
+ * <pre>
+ * SectionVendorTuples."id of the vendor tuples" {
+ * ...
+ * tuples."word.module0" {
+ * VENDOR_TOKEN_PARAM_ID1 "0x00112233"
+ * VENDOR_TOKEN_PARAM_ID2 "0x44556677"
+ * ...
+ * }
+ *
+ * tuples."word.module2" {
+ * VENDOR_TOKEN_PARAM_ID1 "0x11223344"
+ * VENDOR_TOKEN_PARAM_ID2 "0x55667788"
+ * ...
+ * }
+ * ...
+ * }
+ *
+ * </pre>
*
* <h5>Mixer Controls</h5>
* A mixer control is defined as a new section that can include channel mapping,
diff --git a/src/topology/data.c b/src/topology/data.c
index 245a8340..e81b7f12 100644
--- a/src/topology/data.c
+++ b/src/topology/data.c
@@ -534,17 +534,17 @@ static int parse_tuple_set(snd_config_t *cfg,
snd_config_get_id(cfg, &id);
- if (strcmp(id, "uuid") == 0)
+ if (strncmp(id, "uuid", 4) == 0)
type = SND_SOC_TPLG_TUPLE_TYPE_UUID;
- else if (strcmp(id, "string") == 0)
+ else if (strncmp(id, "string", 5) == 0)
type = SND_SOC_TPLG_TUPLE_TYPE_STRING;
- else if (strcmp(id, "bool") == 0)
+ else if (strncmp(id, "bool", 4) == 0)
type = SND_SOC_TPLG_TUPLE_TYPE_BOOL;
- else if (strcmp(id, "byte") == 0)
+ else if (strncmp(id, "byte", 4) == 0)
type = SND_SOC_TPLG_TUPLE_TYPE_BYTE;
- else if (strcmp(id, "short") == 0)
+ else if (strncmp(id, "short", 5) == 0)
type = SND_SOC_TPLG_TUPLE_TYPE_SHORT;
- else if (strcmp(id, "word") == 0)
+ else if (strncmp(id, "word", 4) == 0)
type = SND_SOC_TPLG_TUPLE_TYPE_WORD;
else {
SNDERR("error: invalid tuple type '%s'\n", id);