# # Configuration for the CA0106 chip # # default with dmix & dsnoop CA0106.pcm.default { @args [ CARD ] @args.CARD { type string } type asym playback.pcm { type plug slave.pcm { @func concat strings [ "dmix:" $CARD ] } } capture.pcm { type plug slave.pcm { @func concat strings [ "dsnoop:" $CARD ] } } } CA0106.pcm.front.0 { @args [ CARD ] @args.CARD { type string } type hw card $CARD } CA0106.pcm.rear.0 { @args [ CARD ] @args.CARD { type string } type hw card $CARD device 1 } CA0106.pcm.center_lfe.0 { @args [ CARD ] @args.CARD { type string } type hw card $CARD device 2 } CA0106.pcm.side.0 { @args [ CARD ] @args.CARD { type string } type hw card $CARD device 3 } CA0106.pcm.surround40.0 { @args [ CARD ] @args.CARD { type string } type multi slaves [ { pcm { @func concat strings [ "cards.CA0106.pcm.front.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.CA0106.pcm.rear.0:CARD=" $CARD ] } channels 2 } ] bindings [ { slave 0 channel 0 } { slave 0 channel 1 } { slave 1 channel 0 } { slave 1 channel 1 } ] } CA0106.pcm.surround51.0 { @args [ CARD ] @args.CARD { type string } type multi slaves [ { pcm { @func concat strings [ "cards.CA0106.pcm.front.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.CA0106.pcm.rear.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD ] } channels 2 } ] bindings [ { slave 0 channel 0 } { slave 0 channel 1 } { slave 1 channel 0 } { slave 1 channel 1 } { slave 2 channel 0 } { slave 2 channel 1 } ] } CA0106.pcm.surround71.0 { @args [ CARD ] @args.CARD { type string } type multi slaves [ { pcm { @func concat strings [ "cards.CA0106.pcm.front.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.CA0106.pcm.rear.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.CA0106.pcm.center_lfe.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.CA0106.pcm.side.0:CARD=" $CARD ] } channels 2 } ] bindings [ { slave 0 channel 0 } { slave 0 channel 1 } { slave 1 channel 0 } { slave 1 channel 1 } { slave 2 channel 0 } { slave 2 channel 1 } { slave 3 channel 0 } { slave 3 channel 1 } ] } CA0106.pcm.iec958.0 { @args [ CARD AES0 AES1 AES2 AES3 ] @args.CARD { type string } @args.AES0 { type integer } @args.AES1 { type integer } @args.AES2 { type integer } @args.AES3 { type integer } type hooks slave.pcm { type hw card $CARD } hooks.0 { type ctl_elems hook_args [ { name "IEC958 Front Playback Volume" index 0 lock true preserve true value [ 207 207 ] # Puts 0x30303030 in the Volume register. 0xff - 0x30 = 0xcf = 207 } { name "IEC958 Playback Switch" lock true preserve true value 1 } { interface PCM name "IEC958 Playback Default" index 1 lock true preserve true optional true value [ $AES0 $AES1 $AES2 $AES3 ] } { # for compatibility with older drivers name "IEC958 Playback Default" index 1 lock true preserve true optional true value [ $AES0 $AES1 $AES2 $AES3 ] } ] } }