Syntax 6

Define.DeviceMic "Mic"
Define.DeviceDmic ""

Include.card-init.File "/lib/card-init.conf"

If.devdmic {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "cfg-dmics:"
	}
	True {
		Define.DeviceDmic "Mic1"
		Define.DeviceMic "Mic2"
		FixedBootSequence [
			#
			# users expect to turn the LED on when only internal
			# mic is off, but it makes sense to turn this LED
			# when all internal inputs are off
			#
			sysw "-/class/sound/ctl-led/mic/card${CardNumber}/detach:Capture Switch"
			# dmic array info
			exec "-nhlt-dmic-info -o ${var:LibDir}/dmics-nhlt.json"
		]
	}
}

SectionUseCase."HiFi" {
	File "/Intel/sof-hda-dsp/HiFi.conf"
	Comment "Play HiFi quality Music"
}

# the kcontrols initial values, which will be set by `alsactl init`

If.amute {
	Condition {
		Type ControlExists
		Control "name='Auto-Mute Mode'"
	}
	True.BootSequence [
		cset "name='Auto-Mute Mode' off"
	]
}

If.master {
	Condition {
		Type ControlExists
		Control "name='Master Playback Volume'"
	}
	True.BootSequence [
		cset "name='Master Playback Volume' 60%"
		cset "name='Master Playback Switch' on"
	]
}

If.speaker {
	Condition {
		Type ControlExists
		Control "name='Speaker Playback Volume'"
	}
	True.BootSequence [
		cset "name='Speaker Playback Volume' 60%"
	]
}

If.DellMuteLed {
	Condition {
		Type String
		Haystack "$${sys:class/leds/platform::mute/device}"
		Needle "dell-laptop"
	}
	True {
		FixedBootSequence [
			sysw "-/class/sound/ctl-led/speaker/card${CardNumber}/attach:Master Playback Switch"
		]
	}
}

If.headphone {
	Condition {
		Type ControlExists
		Control "name='Headphone Playback Volume'"
	}
	True.BootSequence [
		cset "name='Headphone Playback Volume' 60%"
	]
}

If.dmic {
	Condition {
		Type String
		Empty "${var:DeviceDmic}"
	}
	False.If.Dmic0 {
		Condition {
			Type ControlExists
			Control "name='Dmic0 Capture Volume'"
		}
		True.BootSequence [
			cset "name='Dmic0 Capture Volume' 70%"
			cset "name='Dmic0 Capture Switch' on"
		]
	}
}

If.Capture {
	Condition {
		Type ControlExists
		Control "name='Capture Switch'"
	}
	True.BootSequence [
		cset "name='Capture Volume' 60%"
		cset "name='Capture Switch' on"
	]
}
