[alsa-devel] alsa-lib: snd_mixer_selem_is_active changes - which event?

Sebastian H. vand2 at gmx.de
Sun Apr 17 14:06:17 CEST 2011


>> I wonder which event mask notifies an application that
>> snd_mixer_selem_is_active() may have changed.
>>
>> SND_CTL_EVENT_MASK_VALUE
>> or
>> SND_CTL_EVENT_MASK_INFO
>>
>> or something else?
>>
>> I'd be glad for any insights?
>>
>>
> qasmixer display the following message when play audio through front device
> of emu10k1
> 
> alsa_callback_hctl_elem: Unknown mask ( 3 )
> [EE] snd_hctl_handle_events : Operation not permitted

This is actually a bug in qasmixer.
Up to now it could not handle multi event masks.

Mask 3 seems to be
SND_CTL_EVENT_MASK_VALUE & SND_CTL_EVENT_MASK_INFO ( 1 & 2 )
but qasmixer checks for
( mask == SND_CTL_EVENT_MASK_VALUE ) ||
( mask == SND_CTL_EVENT_MASK_INFO )
which fails as ( 3 == 1 ) || ( 3 == 2 ) == false;

That should be fixed now.
A new version should be around next week.
You could also try the development version in the sourceforge mercurial
repo.

> which event mask "SND_CTL_EVENT_MASK_VALUE" or "SND_CTL_EVENT_MASK_VALUE "
> should the mixer application handle first ?

IMO the order doesn't matter as long as both events are handled properly
and the displayed mixer state equals the system mixer state
afterwards.

> e.g. it is possible that the driver may change access of  the control
> 
>  & ~SNDRV_CTL_ELEM_ACCESS_READ

If that triggers a SND_CTL_EVENT_MASK_INFO event it shouldn't be a
problem in the coming version 0.11.0.

Sebastian H.



More information about the Alsa-devel mailing list