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

pcm.!surround50 {
	@args [ CARD DEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_SURROUND50_CARD
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.surround50.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_SURROUND50_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.surround50.device
			}
		}
	}
	type route
	slave.pcm {
		@func refer
		name {
			@func concat
			strings [
				"cards."
				{
					@func card_driver
					card $CARD
				}
				".pcm.surround51." $DEV ":CARD=" $CARD
			]
		}
	}
	ttable.0.FL 1
	ttable.1.FR 1
	ttable.2.RL 1
	ttable.3.RR 1
	ttable.4.FC 1
	hint {
		description "5.0 Surround output to Front, Center and Rear speakers"
		device_output $DEV
	}
}
