#
#  Hardware output from 4.0 speakers.
#  Samples must be positioned:
#    chn0 - front left
#    chn1 - front right
#    chn2 - rear left
#    chn3 - rear right
#

pcm.!surround40 {
	@args [ CARD DEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_SURROUND40_CARD
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.surround40.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_SURROUND40_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.surround40.device
			}
		}
	}
	type empty
	slave.pcm {
		@func refer
		name {
			@func concat
			strings [
				"cards."
				{
					@func card_driver
					card $CARD
				}
				".pcm.surround40." $DEV ":CARD=" $CARD
			]
		}
	}
	hint {
		description "4.0 Surround output to Front and Rear speakers"
		device $DEV
	}
}
