]> git.alsa-project.org Git - alsa-utils.git/commitdiff
topology: pre-process-obejct: add helper function to get the section config
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Mon, 26 Apr 2021 18:33:12 +0000 (11:33 -0700)
committerJaroslav Kysela <perex@perex.cz>
Tue, 25 May 2021 16:26:51 +0000 (18:26 +0200)
Add a helper function to retrieve the config node
pointing to the section name for a given object.
For ex: for the object, Object.Widget.pga.1{},
the function returns the config with id, "SectionWidget"
in the output config.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
topology/pre-process-object.c
topology/pre-processor.h

index 249bd7dfcf0107937c00a9e545d1c3dc1f0db524..66116b42e425a71e79f4043b88f136e55e53da65 100644 (file)
@@ -738,6 +738,24 @@ static const struct build_function_map *tplg_object_get_map(struct tplg_pre_proc
        return NULL;
 }
 
+/* search for section name based on class type and name and return the config in output_cfg */
+snd_config_t *tplg_object_get_section(struct tplg_pre_processor *tplg_pp, snd_config_t *class)
+{
+       const struct build_function_map *map;
+       snd_config_t *cfg = NULL;
+       int ret;
+
+       map = tplg_object_get_map(tplg_pp, class);
+       if (!map)
+               return NULL;
+
+       ret = snd_config_search(tplg_pp->output_cfg, map->section_name, &cfg);
+       if (ret < 0)
+               SNDERR("Section config for %s not found\n", map->section_name);
+
+       return cfg;
+}
+
 /* return 1 if attribute not found in search_config, 0 on success and negative value on error */
 static int tplg_object_copy_and_add_param(struct tplg_pre_processor *tplg_pp,
                                          snd_config_t *obj,
index 5599ca2f04ffd639f9ca12087dfc2eaea541d429..8934e2f60c63d743c47f7e804bb01437cd746f83 100644 (file)
@@ -61,6 +61,7 @@ snd_config_t *tplg_object_get_instance_config(struct tplg_pre_processor *tplg_pp
                                        snd_config_t *class_type);
 const char *tplg_object_get_name(struct tplg_pre_processor *tplg_pp,
                                 snd_config_t *object);
+snd_config_t *tplg_object_get_section(struct tplg_pre_processor *tplg_pp, snd_config_t *class);
 
 /* class helpers */
 snd_config_t *tplg_class_lookup(struct tplg_pre_processor *tplg_pp, snd_config_t *cfg);