[alsa-devel] asihpi: Control naming

Sebastian H. vand2 at gmx.de
Sat Oct 2 13:10:25 CEST 2010


Am 02.10.2010 06:10, schrieb Raymond Yau:
> 2010/10/2 Sebastian H. <vand2 at gmx.de>
> 
>> Am 01.10.2010 15:19, schrieb Clemens Ladisch:
>>> Sebastian H. wrote:
>>>> Am 01.10.2010 09:05, schrieb Clemens Ladisch:
>>>>> Those are elements where the simple mixer code doesn't know the
>>>>> direction (because the driver author didn't put "Playback" or "Capture"
>>>>> into the name).
>>>>
>>>> Ok, but I wonder how to interpret this state in which both functions
>>>> return zero.
>>>
>>> There are cases where the playback/capture direction is obvious from the
>>> name ("just implement an AI!"), but these can be considered bugs.
>>
>> Ok, I'll stick to the element name list from Raymond then for an
>> automated detection.
>>
> 
> I just only mention the keywords in those capture controls in sound card
> drivers.
> They may have slightly different name (e.g. 'Mic Boost (+20dB)' , 'Front Mic
> Boost' )
> 

For sure, I won't do an exact match comparison but rather look for
occurences of a "Mic" strings or so.

> In simple_none.c , it also defined some keywords for stanard ac97 control
> too

Thanks, I'll have a look into that one.

The whole issue is probably no big deal at all. In the worst case the
elements just ends up in the playback page.

> some of them are used (e.g. "3D Control - Switch" is regarded a pswitch) but
> "Depth and Rear Depth are regarded as volume )
> 
> 
> Simple mixer control '3D Control - Switch',0
>   Capabilities: pswitch pswitch-joined penum
>   Playback channels: Mono
>   Mono: Playback [off]
> Simple mixer control '3D Control Sigmatel - Depth',0
>   Capabilities: volume volume-joined penum
>   Playback channels: Mono
>   Capture channels: Mono
>   Limits: 0 - 3
>   Mono: 0 [0%]
> Simple mixer control '3D Control Sigmatel - Rear Depth',0
>   Capabilities: volume volume-joined penum
>   Playback channels: Mono
>   Capture channels: Mono
>   Limits: 0 - 3
>   Mono: 0 [0%]
> 
> They are just 3D effect and have no dB information.
> 
> However alsa-python return run-time error when you try to use the function
> get_volume_range_dB() to find out whether the mixer elem has dB Info or not

The ambiguity can only appear for enum elements because the following
functions allow uncertain return value combinations.

snd_mixer_selem_is_enumerated ( ... )
snd_mixer_selem_is_enum_playback ( ... )
snd_mixer_selem_is_enum_capture ( ... )

Volumes and Switches are always playback and/or capture
because they can be detected by direction aware functions.

snd_mixer_selem_has_playback_volume ( ... )
snd_mixer_selem_has_capture_volume ( ... )

snd_mixer_selem_has_playback_switch ( ... )
snd_mixer_selem_has_capture_switch ( ... )

Sebastian


More information about the Alsa-devel mailing list