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