# # Configuration for the EMU10K1 chip # EMU10K1.pcm.front.0 { @args [ CARD ] @args.CARD { type string } type asym playback.pcm { type hooks slave.pcm { type hw card $CARD chmap [ "UNKNOWN" "FL,FR" ] } hooks.0 { type ctl_elems hook_args [ { interface PCM name "EMU10K1 PCM Send Volume" index { @func private_pcm_subdevice } # lock true optional true value [ 255 255 0 0 255 0 0 0 0 255 0 0 ] } { interface PCM name "EMU10K1 PCM Send Routing" index { @func private_pcm_subdevice } # lock true optional true value [ 8 9 0 0 8 9 0 0 8 9 0 0 ] } ] } } capture.pcm { type hw card $CARD } } EMU10K1.pcm.rear.0 { @args [ CARD ] @args.CARD { type string } type asym playback.pcm { type hooks slave.pcm { type hw card $CARD chmap [ "UNKNOWN" "RL,RR" ] } hooks.0 { type ctl_elems hook_args [ { interface PCM name "EMU10K1 PCM Send Volume" index { @func private_pcm_subdevice } # lock true optional true value [ 0 0 255 255 0 0 255 0 0 0 0 255 ] } ] } } } EMU10K1.pcm.center_lfe.0 { @args [ CARD ] @args.CARD { type string } type asym playback.pcm { type hooks slave.pcm { type hw card $CARD chmap [ "UNKNOWN" "FC,LFE" ] } hooks.0 { type ctl_elems hook_args [ { name "Headphone Center Playback Switch" index 1 preserve true # lock true optional true value true } { name "Headphone LFE Playback Switch" index 1 preserve true # lock true optional true value true } # if you have a creative's digital receiver, you can get surround/center/lfe # output through the digital jack. so, the following is commented out. # pay attention in case of analog output from the shared center/digital # jack! # { # name "SB Live Analog/Digital Output Jack" # preserve true # lock true # value 0 # } { interface PCM name "EMU10K1 PCM Send Volume" index { @func private_pcm_subdevice } # lock true optional true value [ 255 255 0 0 255 0 0 0 0 255 0 0 ] } { interface PCM name "EMU10K1 PCM Send Routing" index { @func private_pcm_subdevice } # lock true optional true value [ 6 7 0 0 6 7 0 0 6 7 0 0 ] } ] } } } EMU10K1.pcm.surround40.0 { @args [ CARD ] @args.CARD { type string } type multi slaves [ { pcm { @func concat strings [ "cards.EMU10K1.pcm.front.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.EMU10K1.pcm.rear.0:CARD=" $CARD ] } channels 2 } ] bindings [ { slave 0 channel 0 } { slave 0 channel 1 } { slave 1 channel 0 } { slave 1 channel 1 } ] } EMU10K1.pcm.surround51.0 { @args [ CARD ] @args.CARD { type string } type multi slaves [ { pcm { @func concat strings [ "cards.EMU10K1.pcm.front.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.EMU10K1.pcm.rear.0:CARD=" $CARD ] } channels 2 } { pcm { @func concat strings [ "cards.EMU10K1.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 } ] } EMU10K1.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 device 2 } hooks.0 { type ctl_elems hook_args [ { interface PCM name "IEC958 Playback Default" device 2 lock true preserve true optional true value [ $AES0 $AES1 $AES2 $AES3 ] } { name "IEC958 Optical Raw Playback Switch" lock true preserve true value [ 1 1 ] } { name "SB Live Analog/Digital Output Jack" lock true preserve true value 1 } ] } }