[alsa-devel] [PATCH v2 1/2] ALSA: jack: create jack kcontrols for every jack input device
Jie, Yang
yang.jie at intel.com
Fri Mar 27 08:45:04 CET 2015
> -----Original Message-----
> From: David Henningsson [mailto:david.henningsson at canonical.com]
> Sent: Friday, March 27, 2015 2:50 PM
> To: Jie, Yang; Tanu Kaskinen; Takashi Iwai
> Cc: perex at perex.cz; broonie at kernel.org; alsa-devel at alsa-project.org;
> Girdwood, Liam R; Liam Girdwood
> Subject: Re: [PATCH v2 1/2] ALSA: jack: create jack kcontrols for every jack
> input device
>
>
>
> On 2015-03-26 13:43, Jie, Yang wrote:
> >
> > Sorry, Correct a typo(removing line "create "Mic Jack" kctl;" in
> > default case)
>
> It looks like your code can be simplified as:
[Keyon] thanks, I will try simplify them.
>
> switch (type | SND_JACK_HEADSET) {
> case SND_JACK_HEADSET:
> create "Headset Mic Jack" kctl;
> /* fall through */
> case SND_JACK_MICROPHONE:
> case SND_JACK_HEADPHONE:
> create format("%s Jack", id) kctl;
[Keyon] I don't want to fill "id" to kctl name, because sometimes it can be
string which can't be understood by PA, such as:
soc/intel/mfld_machine.c: ret_val = snd_soc_card_jack_new(runtime->card,
soc/intel/mfld_machine.c- "Intel(R) MID Audio Jack", SND_JACK_HEADSET |
soc/intel/mfld_machine.c- SND_JACK_BTN_0 | SND_JACK_BTN_1, &mfld_jack,
soc/omap/ams-delta.c: ret = snd_soc_card_jack_new(card, "hook_switch", SND_JACK_HEADSET,
soc/omap/ams-delta.c- &ams_delta_hook_switch, NULL, 0);
> }
>
> ...that way, prefixes such as "Front Headphone Jack" are preserved too,
[Keyon] if PA can recognize "Front Headphone Jack" and "Rear Headphone Jack", then I
prefer to add a determine here:
if (!strcmp(id, "Front Headphone Jack") || !strcmp(id, "Rear Headphone Jack"))
create format("%s Jack", id) kctl;
> which is a good thing.
>
> // David
>
> >
> > snd_jack_new(struct snd_card *card, const char *id, int type, struct
> snd_jack **jjack) { ...
> > Switch(type | SND_JACK_HEADSET)
> > {
> > case SND_JACK_MICROPHONE:
> > create "Mic Jack" kctl;
> > break;
> > case SND_JACK_HEADSET:
> > if (id == "Headphone Mic Headset") {
> > create " Headphone Mic Jack " kctl;
> > create " Headset Mic Jack " kctl;
> > } else {
> > create " Headphone Jack " kctl;
> > create " Headset Mic Jack " kctl;
> > }
> > break;
> > case SND_JACK_HEADPHONE:
> > if (id == "Headset Mic") {
> > create " Headphone Jack " kctl;
> > // create " Headset Mic Phantom Jack " kctl;
> > } else if (id == "Headphone Mic") {
> > create " Headphone Mic Jack " kctl;
> > } else if (id == "Headset Headphone Mic") {
> > create " Headphone Mic Jack " kctl;
> > // create " Headset Mic Phantom Jack " kctl;
> > } else {
> > create " Headphone Jack " kctl;
> > }
> > break;
> > default:
> > break;
> > }
> > ...
> > }
> >
> >
> > Jack Type Jack name kctls/switches
> name
> > SND_JACK_HEADPHONE Headphone Headphone
> Jack
> > SND_JACK_MICROPHONE Mic Mic Jack
> > SND_JACK_HEADSET Headset Headphone
> Jack
> > Headset Mic
> Jack
> > SND_JACK_HEADPHONE Headset Mic Headphone
> Jack
> > Headset Mic
> Phantom Jack
> > SND_JACK_HEADPHONE Headphone Mic Headphone
> Mic Jack
> > SND_JACK_HEADPHONE Headset Headphone Mic Headphone
> Mic Jack
> > Headset Mic
> Phantom Jack
> > SND_JACK_HEADSET Headphone Mic Headset Headphone
> Mic Jack
> > Headset Mic
> Jack
> >
> > ~Keyon
> >
>
> --
> David Henningsson, Canonical Ltd.
> https://launchpad.net/~diwic
More information about the Alsa-devel
mailing list