2010/2/24 Lennart Poettering mznyfn@0pointer.de
On Tue, 23.02.10 11:08, Clemens Ladisch (clemens@ladisch.de) wrote:
Lennart Poettering wrote:
On Sun, 21.02.10 12:01, Raymond Yau (superquad.vortex2@gmail.com)
wrote:
However Simple Mixer API cannot know the subdevice number , you have
to use
control API ( the lower level API used by Simple Mixer API )
Unfortunately there is no way from the simple mixer to the lower level mixer.
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?
Card hw:1 'Intel'/'HDA Intel at 0xff9f4000 irq 22' Mixer name : 'Analog Devices AD1988' Components : 'HDA:11d41988' Controls : 48 Simple ctrls : 26
Simple mixer control 'Capture',0 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 54 Front Left: Capture 39 [72%] [0.00dB] [off] Front Right: Capture 39 [72%] [0.00dB] [off] Simple mixer control 'Capture',1 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 54 Front Left: Capture 39 [72%] [0.00dB] [off] Front Right: Capture 39 [72%] [0.00dB] [off] Simple mixer control 'Capture',2 Capabilities: cvolume cswitch Capture channels: Front Left - Front Right Limits: Capture 0 - 54 Front Left: Capture 39 [72%] [0.00dB] [off] Front Right: Capture 39 [72%] [0.00dB] [off]
Simple mixer control 'Input Source',0 Capabilities: cenum Items: 'Front Mic' 'Line' 'Mic' 'CD' 'Mix' Item0: 'Mic' Simple mixer control 'Input Source',1 Capabilities: cenum Items: 'Front Mic' 'Line' 'Mic' 'CD' 'Mix' Item0: 'Front Mic' Simple mixer control 'Input Source',2 Capabilities: cenum Items: 'Front Mic' 'Line' 'Mic' 'CD' 'Mix' Item0: 'Front Mic'
control.28 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' value.0 false value.1 false } control.29 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 54' comment.dbmin -5850 comment.dbmax 2250 iface MIXER name 'Capture Volume' index 1 value.0 39 value.1 39 } control.30 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' index 1 value.0 false value.1 false } control.31 { comment.access 'read write' comment.type INTEGER comment.count 2 comment.range '0 - 54' comment.dbmin -5850 comment.dbmax 2250 iface MIXER name 'Capture Volume' index 2 value.0 39 value.1 39 } control.32 { comment.access 'read write' comment.type BOOLEAN comment.count 2 iface MIXER name 'Capture Switch' index 2 value.0 false value.1 false } control.33 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Front Mic' comment.item.1 Line comment.item.2 Mic comment.item.3 CD comment.item.4 Mix iface MIXER name 'Input Source' value Mic } control.34 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Front Mic' comment.item.1 Line comment.item.2 Mic comment.item.3 CD comment.item.4 Mix iface MIXER name 'Input Source' index 1 value 'Front Mic' } control.35 { comment.access 'read write' comment.type ENUMERATED comment.count 1 comment.item.0 'Front Mic' comment.item.1 Line comment.item.2 Mic comment.item.3 CD comment.item.4 Mix iface MIXER name 'Input Source' index 2 value 'Front Mic' }
Getting information about the mixer layout (like the nodes reported by HDA and USB devices) is on the TODO list; the only reason it isn't being implemented is lack of time.
Would be great to have that.
Lennart