#
# Hardware output from side speakers
#

pcm.!side {
	@args [ CARD DEV ]
	@args.CARD {
		type string
		default {
			@func getenv
			vars [
				ALSA_SIDE_CARD
				ALSA_PCM_CARD
				ALSA_CARD
			]
			default {
				@func refer
				name defaults.pcm.side.card
			}
		}
	}
	@args.DEV {
		type integer
		default {
			@func igetenv
			vars [
				ALSA_SIDE_DEVICE
			]
			default {
				@func refer
				name defaults.pcm.side.device
			}
		}
	}
	type empty
	slave.pcm {
		@func refer
		name {
			@func concat
			strings [
				"cards."
				{
					@func card_driver
					card $CARD
				}
				".pcm.side." $DEV ":CARD=" $CARD
			]
		}
	}
	hint {
		show {
			@func refer
			name defaults.namehint.basic
		}
		description "Side speakers"
		device $DEV
	}
}
