
Just as an FYI, this is a little HW-dependent.
For GPUs that have multiple codecs, everything David said is true.
Very recent NVIDIA GPUs such as GeForce 520, and at least some Intel GPUs which Pierre-Louis may be testing with (e.g. my wife's Ibex Peak) have just one codec, which supports multiple PCMs, and then are numbered like:
card 1: NVidia_1 [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: NVidia_1 [HDA NVidia], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0
Good feedback. Looks like the device number is the only reliable piece of information here. I simplified my initial patch based on David's suggestions, can you guys let me know how it behaves with multiple codecs/multiple PCMs? On my laptop, I get this result
$ amixer -c0 controls numid=22,iface=PCM,name='ELD',device=3 $ amixer -c0 cget numid=22 numid=22,iface=PCM,name='ELD',device=3 ; type=BYTES,access=rw------,values=84 : values=0x10,0x00,0x0d,0x00,0x68,0x82,0x00,0x0f,<snip> Thanks!