[alsa-devel] [PATCH v2 1/2] ALSA: jack: create jack kcontrols for every jack input device

Raymond Yau superquad.vortex2 at gmail.com
Sat Mar 28 07:09:56 CET 2015


> > >
> > > > > +}
> > > > > +
> > > > > +static int snd_jack_new_kctl(struct snd_card *card, struct
> > > > > +snd_jack *jack, int type) {
> > > > > +       struct snd_kcontrol *kctl;
> > > > > +       struct snd_jack_kctl *jack_kctl;
> > > > > +       int i, err, index, state = 0 /* use 0 for default state
?? */;
> > > > > +
> > > > > +       INIT_LIST_HEAD(&jack->kctl_list);
> > > > > +       for (i = 0; i < fls(SND_JACK_BTN_0); i++) {
> > > > > +               int testbit = 1 << i;
> > > > > +               if (type & testbit) {
> > > >
> > > > With this implementation, you'll get multiple boolean kctls for a
> > > > headset.  I thought we agreed with creating a single boolean for
headset?
> > > [Keyon] We agreed with creating multiple kctls for combo jack, e.g.
> > headset.
> > > Furthermore, e.g., imagine that type = SND_JACK_HEADSET  |
> > > SND_JACK_BTN_0, we will create 3 kctls for the jack, when BTN_0 is
> > > pressed, we will report to the 3rd kctl.
> >
> > Hm, I don't remember that I agreed with multiple kctls...
> >
> > The multiple kctls have a significant drawback (multiple event calls
for a single
> > headset) and its behavior is incompatible with the current code (both
the
> > name change and the behavior change).  That is, your patch will very
likely
> > break the existing applications.
> [Keyon] I am not very clear with the existing applications that using
these
> kctl events(seems Android use input subsystem event? Which we didn't
> Change here. If I understand correctly, Pulseaudio uses jack switch
controls,
> via the name, then we can use different name for headphone and mic here.)
>
> we will generate 2 event calls(one headphone, one mic) when Headset
> plug in/out, applications will receive these 2 events,  and they can do
anything,
> e.g. decide to switch on/off speaker/headphone.

Why do you need to generate two event (hp and mic) if soc jack only support
headset ?

For mobile phone and tablet which only support headset using TRRRS
connector  and most of them don't support  headphone using TRRS connector.

When the headset jack kctl is on, this implies headphone and headset mic
are used


More information about the Alsa-devel mailing list