[alsa-devel] Standard mixer control names

Lennart Poettering mznyfn at 0pointer.de
Sun Feb 22 00:36:30 CET 2009


I'd like to add functionality to PulseAudio to allow a simplified
selection of capture input (i.e. "Mic", "Line-In", ...) and playback
outputs ("Headphones", "Line-Out", ...) for ALSA cards. By
"simplified" I mean that only one input and output shall be active at
a time. Also, some more nonsense items shall be filtered out
(i.e. recording from "Phone"). Hence, basically I want to compile a
list of available and whitelisted inputs and outputs and allow the
user to select exactly one from each.

ALSA is making that very hard to implement something like this because
every driver seems to wrap input/output selection differently.

On one card I have only has a couple of cswitches
(snd-es1371). The same one has an enum "Mic Select". Another card has
an enum "Input Source", but no cswitches (a HDA chip). The
"ControlNames.txt" file in the kernel seems to suggest that there is an
element "Capture Source".

For playback it seems that some cards have a a headphone switch, and
others a headphone slider (which i guess makes sense).

Now, the question, how should I implement this?

For playback the handling is easy as long as there is only one element
to deal with, but what about capture? One option would be to simply
go by cswitch and nothing else. Or go by "Input Source" and nothing
else. Or combine some form. Now I'd of course prefer if the drivers
get fixed to use a single element naming scheme only. Is there any
chance to get that? And which one would that be?


Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4

More information about the Alsa-devel mailing list