#
# Configuration for the RME9652
#

<confdir:pcm/front.conf>

RME9652.pcm.front.0 {
	@args [ CARD ]
	@args.CARD {
		type string
	}
	type hw
	card $CARD
}	

# FIXME: This configuration is not valid for double-speed rates.

<confdir:pcm/iec958.conf>

RME9652.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 route
		slave {
			pcm {
				type hw
				card $CARD
			}
			channels 26
		}
		ttable.0.24 1
		ttable.1.25 1
	}
	hooks.0 {
		type ctl_elems
		hook_args [
			{
				interface PCM
				name "IEC958 Playback PCM Stream"
				lock true
				value [ $AES0 $AES1 $AES2 $AES3 ]
			}
		]
	}
}
