[alsa-devel] [PATCH 8/31] HDA patch_via.c: Change VT1708S & VT1702 hp mode controls
Takashi Iwai
tiwai at suse.de
Wed Oct 7 08:59:10 CEST 2009
At Wed, 7 Oct 2009 14:01:51 +0800,
Li Bo wrote:
>
> On Wed, Oct 7, 2009 at 2:03 AM, Takashi Iwai <tiwai at suse.de> wrote:
> > At Wed, 7 Oct 2009 01:42:50 +0800,
> > Li Bo wrote:
> >>
> >> On Tue, Oct 6, 2009 at 11:55 PM, Li Bo <liboat at gmail.com> wrote:
> >> > On Tue, Oct 6, 2009 at 1:47 PM, Takashi Iwai <tiwai at suse.de> wrote:
> >> >> At Tue, 6 Oct 2009 12:44:28 +0800,
> >> >> Li Bo wrote:
> >> >>>
> >> >>> Hi, Takashi
> >> >>> When independent hp switches from
> >> >>> on -> off: hp volume/switch is deactivated
> >> >>> off -> hp volume switch is activated
> >> >>> These 2 actions are one-shot setup, so we put "need reboot" to remind user
> >> >>> that hp volume/switch update will only take effect after reboot.
> >> >>
> >> >> First off, you don't have to "reboot" at all :)
> >> >>
> >> >
> >> > I also want to kick that "reboot" off:)
> >> >
> >> >> And, the activation/deactivation can be done on the fly, so it's no
> >> >> more "one-shot" action (if implemented properly).
> >> >>
> >> >>
> >> >> Takashi
> >> >>
> >> >
> >> > You mean just act/deact on via_independent_hp_put? I'll try and update this,
> >> > thank you!
> >> >
> >> Sorry I don't know how to activate/deactivate on the fly. I toggle access'
> >> SNDRV_CTL_ELEM_ACCESS_INACTIVE bit in via_independent_hp_put, but
> >> in alsamixer it cannot reflect the change unless restart it. Please
> >> give some help.
> >
> > You simply need to notify the control elements you changed via
> > snd_ctl_notify().
> > Then the mixer app will update the status as well.
> >
> >
> > Takashi
> >
>
> I add snd_ctl_notify after access update, but test with results that:
> - alsamixer (v1.0.21) will gray/de-grayed the control only after
> restart the application
Hm, strange. Are you sure that it's notified?
> - gnome-volume-control will just ignore the access bit and display
> the control as usual.
Then it's a bug of gnome-volume-control (maybe in gstreamer).
> Maybe we have to backward to snd_ctl_remove implementation.
No, removing is a really bad interface. If the control notification
is done properly, it's just a matter of application side.
When the control is inactive, you can't change the value, so it's
anyway safe in the driver perspective.
thanks,
Takashi
More information about the Alsa-devel
mailing list