Syntax 6

Define.Use ""	# a non-empty string to use UCM configuration for HDA devices
Define.Done ""	# a non-empty string to skip the end error

Define.AcpCardId "$${find-card:field=name,return=id,regex='^(acp|acp6x)$'}"
Define.DeviceMic "Mic"

If.dualcodec {
	Condition {
		Type String
		Haystack "${CardLongName}"
		Needle "DualCodecs"
	}
	True {
		Define.Done y
		Define.AcpCardId ""
		Include.dual.File "/HDA/DualCodecs/DualCodecs.conf"
	}
}

If.acp {
	Condition {
		Type String
		Empty "${var:AcpCardId}"
	}
	False {
		Define.Use y
		Define.DeviceMic "Mic2"
	}
}

If.use {
	Condition {
		Type String
		Empty "${var:Use}"
	}
	False {
		Define.Done y

		SectionUseCase."HiFi" {
			File "/HDA/HiFi.conf"
			Comment "Play HiFi quality Music"
		}

		If.analog {
			Condition {
				Type ControlExists
				Control "name='Master Playback Switch'"
			}
			True {
				Include.init.File "/HDA/init.conf"

				FixedBootSequence [
					cset-new "name='Mic ACP LED Capture Switch' type=bool,count=1 off"
					exec "-/sbin/modprobe snd_ctl_led"
					sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:Mic ACP LED Capture Switch"
				]
			}
		}
	}
}

If.err {
	Condition {
		Type String
		Empty "${var:Done}"
	}
	True.Error "UCM is not supported for this HDA model (${CardLongName})"
}
