# Use case Configuration for sof-soundwire card

#
# Arguments:
#   ForAmps - regex filter for var:SpeakerAmps
#   Amp - amplifier number (1,2 etc.)
#   Sel - channel selection (L,R L,L L,R L,L+R R,L R,R R,L+R L+R,L L+R,R L+R,L+R)
#
DefineMacro.rt1316spk.If.0 {
	Condition {
		Type RegexMatch
		Regex "${var:__ForAmps}"
		String "${var:SpeakerAmps}"
	}
	True {
		EnableSequence [
			cset "name='rt1316-${var:__Amp} RX Channel Select' ${var:__Sel}"
		]
		If.lrswitch {
			Condition {
				Type ControlExists
				Control "name='rt1316-${var:__Amp} DAC L Switch'"
			}
			True {
				EnableSequence [
					cset "name='rt1316-${var:__Amp} DAC L Switch' 1"
					cset "name='rt1316-${var:__Amp} DAC R Switch' 1"
				]
				DisableSequence [
					cset "name='rt1316-${var:__Amp} DAC L Switch' 0"
					cset "name='rt1316-${var:__Amp} DAC R Switch' 0"
				]
			}
			False {
				EnableSequence [
					cset "name='rt1316-${var:__Amp} DAC Switch' 1"
				]

				DisableSequence [
					cset "name='rt1316-${var:__Amp} DAC Switch' 0"
				]
			}
		}
	}
}

SectionDevice."Speaker" {
	Comment	"Speaker"

	Macro.num1.rt1316spk { ForAmps "1" Amp 1 Sel "L,R" }
	Macro.num2.rt1316spk { ForAmps "2" Amp 1 Sel "L,L" }
	Macro.num3.rt1316spk { ForAmps "2" Amp 2 Sel "R,R" }

	EnableSequence [
		cset "name='Speaker Switch' on"
	]

	DisableSequence [
		cset "name='Speaker Switch' off"
	]

	Value {
	      PlaybackPriority 100
	      PlaybackPCM "hw:${CardId},2"
	}
}
