
2010/2/24 Clemens Ladisch clemens@ladisch.de
Lennart Poettering wrote:
On Tue, 23.02.10 11:08, Clemens Ladisch (clemens@ladisch.de) wrote:
Lennart Poettering wrote:
Unfortunately there is no way from the simple mixer to the lower
level
mixer.
From the check_unplugged function in
alsa-utils/alsamixer/mixer_widget.c:
err = snd_mixer_get_hctl(mixer, mixer_device_name, &hctl); if (err >= 0) ctl = snd_hctl_ctl(hctl);
But that still doesn't give me a hint which snd_ctl_eleme_t belongs to which snd_mixer_eleme_t, does it?
Not really; the point of the simple mixer interface is to abstract away some of the ctl naming conventions.
It would be great if the smixer would include some API that gives me
a
hint to which device/subdevice a specific snd_mixer_elem_t belongs
to.
Often, there is no 1:1 correspondence between mixer elements and PCM devices. Only mixer controls with interface PCM (not MIXER) have
(sub-)
device numbers, and at the moment this is used only for controls that are associated with the streams of hardware-mixing-capable cards.
Which are not that many, right? Not HDA at least?
No, most recent hardware was designed for software mixing. Only the snd-emu10k1, snd-via82xx and snd-ymfpci drivers implement such controls.
Regards, Clemens
The current implementation of HDA capturing subdevices are almost as same as those playback subdevices of hardware mixing sound card
each subdevice support the same format , rate , channels , the number of input sources are also the same
The only difference is the type IFACE_MIXER and IFACE_PCM since using IFACE_PCM will break most mixer application