[alsa-devel] Commit:ce6cfaf1 query for shared control
Lars-Peter Clausen
lars at metafoo.de
Mon Nov 25 08:45:46 CET 2013
On 11/25/2013 08:12 AM, noman pouigt wrote:
> Hello Lars,
>
> I was wondering if you can enlighten me
> on below query.
>
> Commit:ce6cfaf1
>
> From the commit text "The input and
> output paths for each widgets are only
> updated though during the respective run
> for that widget".
>
> Does this commit text mean: when mux
> or mixer_power_update is called then only
> the widget is powered and it's peer- widget
> source(path source) and widget sink(path sink)?
Hi,
What the commit does is to make sure that if a control is shared between
multiple mixers/muxes to apply all the changes in the same update sequence.
Instead of, as it was done before, to run a update sequence for each mixer/mux.
>
> +------+
> A1 ------| |
> | MUX1 |----- C1
> B1 ------| |
> +------+
> |
> control ---+
> |
> +------+
> A2 ------| |
> | MUX2 |----- C2
> B2 ------| |
> +------+
>
> Can I represent the above diagram as below:
>
> char *input_text_1[] = {
> "A1", "B1"
> };
>
> struct soc_enum input_enum_1 =
> SOC_ENUM_SINGLE(some_register, some_bit,
> 2, input_text_1);
>
> char *input_text_2[] = {
> "A2", "B2"
> };
> struct soc_enum input_enum_2 =
> SOC_ENUM_SINGLE(some_register, some_bit,
> 2, input_text_2);
>
>
> struct snd_kcontrol_new input_mux =
> SOC_DAPM_ENUM("C1", input_enum_1);
> struct snd_kcontrol_new input_mux =
> SOC_DAPM_ENUM("C2", input_enum_2);
>
> dapm_route[] {
> "A1", "control","C1"
> "B1", "control","C1"
> "A2", "control","C2"
> "B2", "control","C2"
> };
The control part needs to have the name of one of the enum items. So this
would be { "A1", "A1", "C1" } and so on.
- Lars
More information about the Alsa-devel
mailing list