Use macros to minimize configuration blocks.
Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/370
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Type String
Empty "${var:SpeakerCodec1}"
}
- False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}-${var:SpeakerAmps1}.conf"
+ False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}.conf"
}
If.micdev {
+++ /dev/null
-# Use case Configuration for sof-soundwire card
-
-SectionDevice."Speaker" {
- Comment "Speaker"
-
- EnableSequence [
- cset "name='rt1308-1 DAC L Switch' 1"
- cset "name='rt1308-1 DAC R Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1308-1 DAC L Switch' 0"
- cset "name='rt1308-1 DAC R Switch' 0"
- cset "name='Speaker Switch' off"
- ]
-
- Value {
- PlaybackPriority 100
- PlaybackPCM "hw:${CardId},2"
- }
-}
+++ /dev/null
-# Use case Configuration for sof-soundwire card
-
-SectionDevice."Speaker" {
- Comment "Speaker"
-
- EnableSequence [
- cset "name='rt1308-1 RX Channel Select' LL"
- cset "name='rt1308-2 RX Channel Select' RR"
-
- cset "name='rt1308-1 DAC L Switch' 1"
- cset "name='rt1308-1 DAC R Switch' 1"
- cset "name='rt1308-2 DAC L Switch' 1"
- cset "name='rt1308-2 DAC R Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1308-1 DAC L Switch' 0"
- cset "name='rt1308-1 DAC R Switch' 0"
- cset "name='rt1308-2 DAC L Switch' 0"
- cset "name='rt1308-2 DAC R Switch' 0"
- cset "name='Speaker Switch' off"
- ]
-
- Value {
- PlaybackPriority 100
- PlaybackPCM "hw:${CardId},2"
- }
-}
--- /dev/null
+# Use case Configuration for sof-soundwire card
+
+#
+# Arguments:
+# ForAmps - regex filter for var:SpeakerAmps
+# Amp - amplifier number (1,2 etc.)
+# Sel - channel selection (LR LL RL RR)
+#
+DefineMacro.rt1308spk.If.0 {
+ Condition {
+ Type RegexMatch
+ Regex "${var:__ForAmps}"
+ String "${var:SpeakerAmps}"
+ }
+ True {
+ EnableSequence [
+ cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
+ cset "name='rt1308-${var:__Amp} DAC L Switch' 1"
+ cset "name='rt1308-${var:__Amp} DAC R Switch' 1"
+ ]
+ DisableSequence [
+ cset "name='rt1308-${var:__Amp} DAC L Switch' 0"
+ cset "name='rt1308-${var:__Amp} DAC R Switch' 0"
+ ]
+ }
+}
+
+SectionDevice."Speaker" {
+ Comment "Speaker"
+
+ Macro.num1.rt1308spk { ForAmps "[12]" Amp 1 Sel LL }
+ Macro.num2.rt1308spk { ForAmps "2" Amp 2 Sel RR }
+
+ EnableSequence [
+ cset "name='Speaker Switch' on"
+ ]
+
+ DisableSequence [
+ cset "name='Speaker Switch' off"
+ ]
+
+ Value {
+ PlaybackPriority 100
+ PlaybackPCM "hw:${CardId},2"
+ }
+}
+++ /dev/null
-# Use case Configuration for sof-soundwire card
-
-SectionDevice."Speaker" {
- Comment "Speaker"
-
- If.lrswitch {
- Condition {
- Type ControlExists
- Control "name='rt1316-1 DAC L Switch'"
- }
- True {
- EnableSequence [
- cset "name='rt1316-1 DAC L Switch' 1"
- cset "name='rt1316-1 DAC R Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1316-1 DAC L Switch' 0"
- cset "name='rt1316-1 DAC R Switch' 0"
- cset "name='Speaker Switch' off"
- ]
- }
- False {
- EnableSequence [
- cset "name='rt1316-1 DAC Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1316-1 DAC Switch' 0"
- cset "name='Speaker Switch' off"
- ]
- }
- }
-
- Value {
- PlaybackPriority 100
- PlaybackPCM "hw:${CardId},2"
- }
-}
+++ /dev/null
-# Use case Configuration for sof-soundwire card
-
-SectionDevice."Speaker" {
- Comment "Speaker"
-
- If.lrswitch {
- Condition {
- Type ControlExists
- Control "name='rt1316-1 DAC L Switch'"
- }
- True {
- EnableSequence [
- cset "name='rt1316-1 RX Channel Select' L,L"
- cset "name='rt1316-2 RX Channel Select' R,R"
- cset "name='rt1316-1 DAC L Switch' 1"
- cset "name='rt1316-1 DAC R Switch' 1"
- cset "name='rt1316-2 DAC L Switch' 1"
- cset "name='rt1316-2 DAC R Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1316-1 DAC L Switch' 0"
- cset "name='rt1316-1 DAC R Switch' 0"
- cset "name='rt1316-2 DAC L Switch' 0"
- cset "name='rt1316-2 DAC R Switch' 0"
- cset "name='Speaker Switch' off"
- ]
- }
- False {
- EnableSequence [
- cset "name='rt1316-1 RX Channel Select' L,L"
- cset "name='rt1316-2 RX Channel Select' R,R"
- cset "name='rt1316-1 DAC Switch' 1"
- cset "name='rt1316-2 DAC Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1316-1 DAC Switch' 0"
- cset "name='rt1316-2 DAC Switch' 0"
- cset "name='Speaker Switch' off"
- ]
- }
- }
-
- Value {
- PlaybackPriority 100
- PlaybackPCM "hw:${CardId},2"
- }
-}
--- /dev/null
+# 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 "[12]" Amp 1 Sel "L,L" }
+ Macro.num2.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"
+ }
+}
+++ /dev/null
-# Use case Configuration for sof-soundwire card
-
-SectionDevice."Speaker" {
- Comment "Speaker"
-
- EnableSequence [
- cset "name='rt1318-1 DAC Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1318-1 DAC Switch' 0"
- cset "name='Speaker Switch' off"
- ]
-
- Value {
- PlaybackPriority 100
- PlaybackPCM "hw:${CardId},2"
- }
-}
+++ /dev/null
-# Use case Configuration for sof-soundwire card
-
-SectionDevice."Speaker" {
- Comment "Speaker"
-
- EnableSequence [
- cset "name='rt1318-1 RX Channel Select' L,L"
- cset "name='rt1318-2 RX Channel Select' R,R"
-
- cset "name='rt1318-1 DAC Switch' 1"
- cset "name='rt1318-2 DAC Switch' 1"
- cset "name='Speaker Switch' on"
- ]
-
- DisableSequence [
- cset "name='rt1318-1 DAC Switch' 0"
- cset "name='rt1318-2 DAC Switch' 0"
- cset "name='Speaker Switch' off"
- ]
-
- Value {
- PlaybackPriority 100
- PlaybackPCM "hw:${CardId},2"
- }
-}
--- /dev/null
+# 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.rt1318spk.If.0 {
+ Condition {
+ Type RegexMatch
+ Regex "${var:__RegEx}"
+ String "${var:SpeakerAmps}"
+ }
+ True {
+ EnableSequence [
+ cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
+ cset "name='rt1308-${var:__Amp} DAC Switch' 1"
+ ]
+ DisableSequence [
+ cset "name='rt1308-${var:__Amp} DAC Switch' 0"
+ ]
+ }
+}
+
+SectionDevice."Speaker" {
+ Comment "Speaker"
+
+ Macro.num1.rt1318spk { ForAmps "[12]" Amp 1 Sel "L,L" }
+ Macro.num2.rt1318spk { 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"
+ }
+}