alsa-utils/topology
Ranjani Sridharan 90f5967178 topology: pre-processor: Move the call to expand variables
Remove the call to snd_config_expand_custom() to expand the top-level
input config. And replace it with calls to snd_config_evaluate_string()
for each non-compound config while processing individual objects. This
will allow retreving variable definitions from object attribute values
and global definitions.

Add a new field "current_obj_cfg" to hold the current object config
being pre-processed.

This will facilitate adding simple math expressions for computing
attribute values for objects based on other attributes. For ex: we can
set the expression for buffer size as follows:

buffer_size "$[($in_channels * 48) * 4]"

The buffer_size attribute value will be computed with the attribute
value "in_channels" based on the expression above. So if $in_channels =
2, buffer_size will be evaluated to 384.

Additionally this change also permits computing attribute values based
on previously computed values. For example:

buffer_size "$[($in_channels * 48) * 4]"
dma_buffer_size "$[$buffer_size * 2]"

dma_buffer_size will be computed as 768. Note that the order of
definitions for buffer_size and dma_buffer_size matters because the
evaluation for dma_buffer_size depends on the evaluation of buffer_size.
In order to conform to this, the tplg_object_copy_and_add_param() is
modified to add attribute configs from class config to an object using
snd_config_before() instead of snd_config_add().

With this change, we no longer need to set the auto_attr_updater for
buffer type widget objects. So remove it.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2021-12-19 20:32:38 +01:00
..
alsatplg.rst alsatplg: add decode command 2020-02-09 20:52:30 +01:00
Makefile.am topology: pre-process-dai: add support for hwcfg objects 2021-05-25 18:26:51 +02:00
pre-process-class.c alsatplg: use standard include/asoundlib.h instead direct headers 2021-09-03 08:49:03 +02:00
pre-process-dai.c alsatplg: use standard include/asoundlib.h instead direct headers 2021-09-03 08:49:03 +02:00
pre-process-dapm.c topology: pre-processor: Move the call to expand variables 2021-12-19 20:32:38 +01:00
pre-process-object.c topology: pre-processor: Move the call to expand variables 2021-12-19 20:32:38 +01:00
pre-processor.c topology: pre-processor: Move the call to expand variables 2021-12-19 20:32:38 +01:00
pre-processor.h topology: pre-processor: Move the call to expand variables 2021-12-19 20:32:38 +01:00
topology.c topology: fix the file permissions for the generated files 2021-12-12 19:58:54 +01:00
topology.h topology: pre-processor: Move the call to expand variables 2021-12-19 20:32:38 +01:00