[alsa-devel] [PATCH V3 1/5] sound: asoc: Adding support for STA529 Audio Codec
Takashi Iwai
tiwai at suse.de
Fri Apr 15 11:27:29 CEST 2011
At Thu, 14 Apr 2011 22:28:45 +0800,
Lu Guanqun wrote:
>
> On Thu, Apr 14, 2011 at 10:19:36PM +0800, Lu Guanqun wrote:
> > On Thu, Apr 14, 2011 at 05:54:11PM +0800, Takashi Iwai wrote:
> > > At Mon, 11 Apr 2011 07:56:22 -0700,
> > > Mark Brown wrote:
> > > >
> > > > > +static const struct snd_kcontrol_new sta529_new_snd_controls[] = {
> > > > > + SOC_ENUM("pwm select", pwm_src_enum),
> > > > > + SOC_ENUM("mode select", mode_src_enum),
> > > > > +};
> > > >
> > > > ALSA control names are idiomatically things like "PWM Select" with
> > > > capitalisation.
> > >
> > > Actually, the capital words are no mandatory requirement (although
> > > it's conventionally so). It's just alsa-mixer grouping rule that
> > > requires the capital words "Play", "Capture", "Volume", "Switch",
> > > etc.
> >
> > Hi Takashi,
> >
> > Where can I find these alsa-mixer grouping rule?
> > So that I can obey these rules and make them appear in the right view in
> > alsamixer.
>
> Hi Takashi,
>
> I'm reading this comment from file `sound/aoa/codecs/tas.c`:
>
> /* If we name this 'Input Source', it properly shows up in
> * alsamixer as a selection, * but it's shown under the
> * 'Playback' category.
> * If I name it 'Capture Source', it shows up in strange
> * ways (two bools of which one can be selected at a
> * time) but at least it's shown in the 'Capture'
> * category.
> * I was told that this was due to backward compatibility,
> * but I don't understand then why the mangling is *not*
> * done when I name it "Input Source".....
> */
>
> I'm wondering what's the story behind? Can you shed some lights?
In alsa-mixer abstraction, the "Capture Source" enum control is split
over multiple switches (a switch per enum item). This was a historical
design at the time SoundBlaster is still standard.
One of the problems with this abstraction is that it can't handle
multiple capture-source controls. So, many drivers use nowadays
"Input Source" control instead. But, in the earlier alsa-lib, this
wasn't handled as the capture control, thus it appears as a global
(both directional) control in alsamixer.
Now, this control is handled as a capture control in alsa-lib, so the
appearance is corrected.
Takashi
More information about the Alsa-devel
mailing list