--- /dev/null
+#
+# Configuration for the EMU10K1 chip
+#
+
+pcm.emu10k1_front {
+ args [ CARD DEV SUBDEV ]
+ args.CARD {
+ type integer
+ }
+ args.DEV {
+ type integer
+ }
+ args.SUBDEV {
+ type integer
+ default -1
+ }
+ type hw
+ card $(CARD)
+ device $(DEV)
+ subdevice $(SUBDEV)
+}
+
+pcm.front_0 {
+ args [ CARD ]
+ args.CARD {
+ type integer
+ }
+ refer {
+ @func concat
+ strings [ "pcm.emu10k1_front:" $(CARD) ",0,-1" ]
+ }
+}
+
+pcm.emu10k1_rear {
+ args [ CARD DEV SUBDEV ]
+ args.CARD {
+ type integer
+ }
+ args.DEV {
+ type integer
+ }
+ args.SUBDEV {
+ type integer
+ default -1
+ }
+ type hooks
+ slave.pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_front:" $(CARD) "," $(DEV) "," $(SUBDEV)
+ ]
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Wave Surround Playback Volume"
+ preserve true
+ lock true
+ value [ 0 0 ]
+ }
+ {
+ name "EMU10K1 PCM Send Volume"
+ index = &(subdevice)
+ lock true
+ value [ 0 0 0 0 0 0 255 0 0 0 0 255 ]
+ }
+ ]
+ }
+}
+
+pcm.rear_0 {
+ args [ CARD ]
+ args.CARD {
+ type integer
+ }
+ refer {
+ @func concat
+ strings [ "pcm.emu10k1_rear:" $(CARD) ",0,-1" ]
+ }
+}
+
+pcm.emu10k1_center_lfe {
+ args [ CARD DEV SUBDEV ]
+ args.CARD {
+ type integer
+ }
+ args.DEV {
+ type integer
+ }
+ args.SUBDEV {
+ type integer
+ default -1
+ }
+ type hooks
+ slave.pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_front:" $(CARD) "," $(DEV) "," $(SUBDEV)
+ ]
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "Headphone Center Playback Switch"
+ preserve true
+ lock true
+ value true
+ }
+ {
+ name "Headphone LFE Playback Switch"
+ preserve true
+ lock true
+ value true
+ }
+ {
+ name "EMU10K1 PCM Send Volume"
+ index = &(subdevice)
+ lock true
+ value [ 0 0 0 0 255 0 0 0 0 255 0 0 ]
+ }
+ {
+ name "EMU10K1 PCM Send Routing"
+ index = &(subdevice)
+ lock true
+ value [ 0 1 2 3 6 7 0 1 6 7 0 1 ]
+ }
+ ]
+ }
+}
+
+pcm.center_lfe_0 {
+ args [ CARD ]
+ args.CARD {
+ type integer
+ }
+ refer {
+ @func concat
+ strings [ "pcm.emu10k1_center_lfe:" $(CARD) ",0,-1" ]
+ }
+}
+
+pcm.surround40_0 {
+ args [ CARD ]
+ args.CARD {
+ type integer
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_front:" $(CARD) ",0,-1"
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_rear:" $(CARD) ",0,-1"
+ ]
+ }
+ channels 2
+ }
+ ]
+ bindings [
+ { slave 0 channel 0 }
+ { slave 0 channel 1 }
+ { slave 1 channel 0 }
+ { slave 1 channel 1 }
+ ]
+}
+
+pcm.surround51_0 {
+ args [ CARD ]
+ args.CARD {
+ type integer
+ }
+ type multi
+ slaves [
+ {
+ pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_front:" $(CARD) ",0,-1"
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_rear:" $(CARD) ",0,-1"
+ ]
+ }
+ channels 2
+ }
+ {
+ pcm {
+ @func concat
+ strings [
+ "pcm.emu10k1_center_lfe:" $(CARD) ",0,-1"
+ ]
+ }
+ 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 }
+ ]
+}
+
+pcm.iec958_0 {
+ args [ CARD DEV AES0 AES1 AES2 AES3 ]
+ args.CARD {
+ type integer
+ }
+ args.DEV {
+ type integer
+ }
+ args.AES0 {
+ type integer
+ }
+ args.AES1 {
+ type integer
+ }
+ args.AES2 {
+ type integer
+ }
+ args.AES3 {
+ type integer
+ }
+ type hooks
+ slave.pcm {
+ @func concat
+ strings [
+ "hw:"
+ "CARD=" $(CARD) ","
+ "DEV=3,"
+ "SUBDEV=0"
+ ]
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback Default"
+ value [ $(AES0) $(AES1) $(AES2) $(AES3) ]
+ }
+ {
+ name "IEC958 Optical Raw Playback Switch"
+ value [ 1 1 ]
+ }
+ ]
+ }
+}