At Tue, 20 Nov 2007 01:51:51 +0100, Lennart Poettering wrote:
Some newer soundcards lack a hw volume control if I understood correctly. Unfortunately I don't have access to them myself. But apparently if PulseAudio is run on those devices, volume control in PulseAudio doesn't work at all. Apparently ALSA uses softvol to add a software volume control (attenuation) to the mixer on those soundcards. PA finds that control and makes use of it -- however, since it accesses the PCM via the raw devices (hw:, surround41: and so on) softvol doesn't work: i.e. the volume that people can change through the PA mixer is not reflected in any way in the audio output.
Now, is there a way I can detect for a mixer element if it is "real" or if it is implemented only for the "plughw" PCM? As it seems the "hw:0" mixer device does contain "virtual" tracks, isn't that a bit strange? Shouldn't the virtual mixer tracks be available only in a mixer device "plughw:0"? That at least would be symmetric to the PCM case, wouldn't it?
Check snd_ctl_elem_info_is_user(). All softvol controls are implemented as user elements.
Takashi