[alsa-devel] [PATCH v4 0/5] ALSA: jack: Refactoring for jack kctls
Raymond Yau
superquad.vortex2 at gmail.com
Wed Apr 8 06:39:20 CEST 2015
2015-4-8 上午12:07 於 "Takashi Iwai" <tiwai at suse.de> 寫道:
>
> At Fri, 3 Apr 2015 20:07:13 +0800,
> Jie Yang wrote:
> >
> > Currently only hda will create kctls for hda jacks, for asoc, people
> > may need create jack kctls in specific driver.
> >
> > Here we are introducing kctls for each jack, by creating kctls and add
> > them to jack controls list (considering exist of combo jack). At the
> > same time, we will report events for each control in the list.
> >
> > With this new implementation, both HDA and soc jack kctls works fine,
> > they are compatible for old HDA jack kctls, too.
> >
> > For soc,
> > a. snd_jack_new() with NULL jack_kctl;
> > b. for each pin, call snd_jack_add_kctls() to add one kctl(it will
> > call snd_ctl_add() to add kctl to card);
>
> So, if I understand correctly, there is no association between input
> jack and ctl jack names at all? The former is created via
> snd_jack_new() while the latter is created from each pin name string.
>
> > For hda,
> > a. call snd_jack_kctl_new()(in __snd_hda_jack_add_kctl()) to new a
> > jack_kctl(also new kctl); and use snd_hda_ctl_add to add kctl to card;
> > b. new a hda_jack_tbl, appoint jack_tbl->jack_kctl = jack_kctl;
> > c. for non-phantom jack, call snd_jack_new() with this jack_kctl,
> > then the jack_kctl will be added to the new created jack;
>
> This would work, yes. But, I have some uneasy feeling, something not
> well digested...
>
> Ideally, we want a single API for representing both input and kctl
> jacks. Now, with this implementation, essentially it's still two API
> calls -- snd_jack_new() for input jacks and snd_jack_kctl_new() for
> kctl jacks. (Actually oxygen driver still seems lacking kctl jack
> because of this.) The obvious difference from the current code is
> that there is an internal association from kctls to input-jack object
> (although the relation is invisible in outside). Hmm...
>
>
Do pulseaudio need oxygen change from input device to kctl since there is
no headphone playback volume and pulseaudio drop the support multi channel
volume control recently ?
Card hw:0 'DS'/'Asus Virtuoso 66 (rev 2) at 0xe800, irq 16'
Mixer name : 'AV200'
Components : 'WM8776 WM8766 AV200'
Controls : 31
Simple ctrls : 25
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right - Rear Left - Rear Right -
Front Center - Woofer - Side Left - Side Right
Limits: Playback 135 - 255
Mono:
Front Left: Playback 255 [100%] [0.00dB] [on]
Front Right: Playback 255 [100%] [0.00dB] [on]
Rear Left: Playback 255 [100%] [0.00dB] [on]
Rear Right: Playback 255 [100%] [0.00dB] [on]
Front Center: Playback 255 [100%] [0.00dB] [on]
Woofer: Playback 255 [100%] [0.00dB] [on]
Side Left: Playback 255 [100%] [0.00dB] [on]
Side Right: Playback 255 [100%] [0.00dB] [on]
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 61 - 127
Mono:
Front Left: Playback 127 [100%] [on]
Front Right: Playback 127 [100%] [on]
More information about the Alsa-devel
mailing list