+Define.HaveSpeaker ""
+Define.HaveInternalMic ""
+
If.spk {
Condition {
Type String
Haystack "${CardComponents}"
Needle "cfg-spk:2"
}
- True.Include.spk.File "/codecs/rt5640/Speaker.conf"
+ True {
+ Include.spk.File "/codecs/rt5640/Speaker.conf"
+ Define.HaveSpeaker "yes"
+ }
}
If.mono {
Haystack "${CardComponents}"
Needle "cfg-spk:1"
}
- True.Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf"
+ True {
+ Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf"
+ Define.HaveSpeaker "yes"
+ }
}
Include.hs.File "/codecs/rt5640/HeadPhones.conf"
Haystack "${CardComponents}"
Needle "cfg-mic:dmic1"
}
- True.Include.dmic.File "/codecs/rt5640/DigitalMics.conf"
+ True {
+ Include.dmic.File "/codecs/rt5640/DigitalMics.conf"
+ Define.HaveInternalMic "yes"
+ }
}
If.in1 {
Haystack "${CardComponents}"
Needle "cfg-mic:in1"
}
- True.Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf"
+ True {
+ Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf"
+ Define.HaveInternalMic "yes"
+ }
}
If.in3 {
Haystack "${CardComponents}"
Needle "cfg-mic:in3"
}
- True.Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf"
+ True {
+ Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf"
+ Define.HaveInternalMic "yes"
+ }
}
Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf"
+Define.HaveSpeaker ""
+Define.HaveInternalMic ""
+
If.spk {
Condition {
Type String
Haystack "${CardLongName}"
Needle "-stereo-spk"
}
- True.Include.spk.File "/codecs/rt5640/Speaker.conf"
+ True {
+ Include.spk.File "/codecs/rt5640/Speaker.conf"
+ Define.HaveSpeaker "yes"
+ }
}
If.mono {
Haystack "${CardLongName}"
Needle "-mono-spk"
}
- True.Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf"
+ True {
+ Include.mspk.File "/codecs/rt5640/MonoSpeaker.conf"
+ Define.HaveSpeaker "yes"
+ }
}
Include.hs.File "/codecs/rt5640/HeadPhones.conf"
Haystack "${CardLongName}"
Needle "-dmic1-mic"
}
- True.Include.dmic.File "/codecs/rt5640/DigitalMics.conf"
+ True {
+ Include.dmic.File "/codecs/rt5640/DigitalMics.conf"
+ Define.HaveInternalMic "yes"
+ }
}
If.in1 {
Haystack "${CardLongName}"
Needle "-in1-mic"
}
- True.Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf"
+ True {
+ Include.mic1.File "/codecs/rt5640/IN1-InternalMic.conf"
+ Define.HaveInternalMic "yes"
+ }
}
If.in3 {
Haystack "${CardLongName}"
Needle "-in3-mic"
}
- True.Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf"
+ True {
+ Include.mic3.File "/codecs/rt5640/IN3-InternalMic.conf"
+ Define.HaveInternalMic "yes"
+ }
}
Include.hsmic.File "/codecs/rt5640/HeadsetMic.conf"
SectionDevice."Headphones" {
Comment "Headphones"
- ConflictingDevice [
- "Speaker"
- ]
+ If.have-spk {
+ Condition {
+ Type String
+ Empty "${var:HaveSpeaker}"
+ }
+ False {
+ ConflictingDevice [
+ "Speaker"
+ ]
+ }
+ }
EnableSequence [
cset "name='DAC MIXL INF1 Switch' on"
SectionDevice."Headset" {
Comment "Headset Microphone"
- ConflictingDevice [
- "Mic"
- ]
+ If.have-mic {
+ Condition {
+ Type String
+ Empty "${var:HaveInternalMic}"
+ }
+ False {
+ ConflictingDevice [
+ "Mic"
+ ]
+ }
+ }
EnableSequence [
cset "name='Headset Mic Switch' on"