Syntax 6

Define.ProfileName ""
Define.MixerRemap ""
Define.SplitPCMPeriodTime 10000		# 10ms

If.linked {
	Condition {
		Type RegexMatch
		String "${CardComponents}"
		# Aorus Master Front Headphone 0414:a000
		Regex "USB0414:a000"
	}
	True.Define.ProfileName "../common/linked"
}

If.realtek-alc1220-vb {

	Condition {
		Type RegexMatch
		String "${CardComponents}"
		# 0414:a002 Gigabyte TRX40 Aorus Pro WiFi
		# 0414:a00d Gigabyte TRX40 Aorus Pro WiFi Rev 1.2
		# 0b05:1917 ASUS ROG Strix
		# 0b05:1918 ASUS PRIME TRX40 PRO-S
		# 0db0:0d64 MSI TRX40 Creator
		# 0db0:543d MSI TRX40
		# 26ce:0a01 Asrock TRX40 Creator
		Regex "USB((0414:a00[2d])|(0b05:191[78])|(0db0:(0d64|543d))|(26ce:0a01))"
	}
	True.Define.ProfileName "Realtek/ALC1220-VB-Desktop"
}

If.realtek-alc4080 {

	Condition {
		Type RegexMatch
		String "${CardComponents}"
		# 0414:a00e Gigabyte Z590 Aorus Pro AX
		# 0b05:1996 ASUS on multiple boards (including ASUS ROG Maximus XIII)
		# 0b05:1a16 ASUS ROG Strix B660-F Gaming WiFi
		# 0b05:1a20 ASUS ROG STRIX Z690-I Gaming Wifi
		# 0b05:1a27 ALC4082 on ASUS ROG Maximus Z690 Hero
		# 0db0:005a MSI MPG Z690 CARBON WIFI
		# 0db0:151f MSI X570S EDGE MAX WIFI
		# 0db0:1feb MSI Edge Wifi Z690
		# 0db0:419c MSI MPG X570S Carbon Max Wifi
		# 0db0:82c7 MSI MEG Z690I Unify
		# 0db0:a073 MSI MAG X570S Torpedo Max
		# 0db0:a47c MSI MEG X570S Ace Max
		# 0db0:b202 MSI MAG Z690 Tomahawk Wifi
		# 0db0:d6e7 MSI MPG X670E Carbon Wifi
		Regex "USB((0414:a00e)|(0b05:(1996|1a(16|2[07])))|(0db0:(005a|151f|1feb|419c|82c7|a073|a47c|b202|d6e7)))"
	}
	True.Define.ProfileName "Realtek/ALC4080"
}

If.gigabyte-aorus-main {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB0414:a001"
	}
	True.Define.ProfileName "Gigabyte/Aorus-Master-Main-Audio"
}

If.steinberg-ur24c {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB0499:174d"
	}
	True.Define.ProfileName "Steinberg/UR24C"
}

If.steinberg-ur44 {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB0499:1700"
	}
	True.Define.ProfileName "Steinberg/UR44"
}

If.motu-m24 {
	Condition {
		Type RegexMatch
		String "${CardComponents}"
		Regex "USB07fd:000[8b]"
	}
	True.If.M4 {
		Condition {
			Type String
			Haystack "${CardLongName}"
			Needle "MOTU M4"
		}
		True.Define.ProfileName "MOTU/M4"
		False.Define.ProfileName "MOTU/M2"
	}
}

If.dell-wd15 {
	Condition {
		Type RegexMatch
		String "${CardComponents}"
		Regex "USB0bda:40(14|2e)"
	}
	True.Define.ProfileName "Dell/WD15-Dock"
}

If.dell-desktop-front {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB0bda:4c54"
	}
	True.Define.ProfileName "Dell/Desktop-Front"
}

If.dell-desktop-rear {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB0bda:4c55"
	}
	True.Define.ProfileName "Dell/Desktop-Rear"
}

If.goxlr {
	Condition {
		Type RegexMatch
		String "${CardComponents}"
		Regex "USB1220:8fe[04]"
	}
	True.Define.ProfileName "GoXLR/GoXLR"
}

If.focusrite-scarlett-2i4-gen2 {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB1235:8200"
	}
	True.Define {
		ProfileName "Focusrite/Scarlett-2i4-gen2"
	}
}

If.behringer-umc202hd {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB1397:0507"
	}
	True.Define {
		ProfileName "Behringer/UMC202HD"
		MixerRemap yes
	}
}

If.behringer-umc204hd {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB1397:0508"
	}
	True.Define {
		ProfileName "Behringer/UMC204HD"
		MixerRemap yes
	}
}

If.behringer-Flow8-Streaming {
	Condition {
	Type String
	Haystack "${CardComponents}"
		Needle "USB1397:050d"
	}
	True.Define.ProfileName "Behringer/Flow8-Streaming"
}

If.behringer-Flow8-Recording {
	Condition {
	Type String
	Haystack "${CardComponents}"
		Needle "USB1397:050c"
	}
	True.Define.ProfileName "Behringer/Flow8-Recording"
}

If.Rane-SL-1 {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB13e5:0001"
	}
	True.Define.ProfileName "Rane/SL-1"
}

If.lenovo-p620-rear {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB17aa:1046"
	}
	True.Define.ProfileName "Lenovo/ThinkStation-P620-Rear"
}

If.lenovo-p620-main {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB17aa:104d"
	}
	True.Define.ProfileName "Lenovo/ThinkStation-P620-Main"
}

If.kontrolz1 {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB17cc:1210"
	}
	True.Define.ProfileName "NativeInstruments/Traktor-Kontrol-Z1"
}

If.minifuse12 {
	Condition {
		Type RegexMatch
		String "${CardComponents}"
		Regex "USB1c75:af[89]0"
	}
	True.Define.ProfileName "Arturia/Minifuse-12"
}

If.id4-0003 {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB2708:0003"
	}
	True.Define.ProfileName "Audient/Audient-iD4-0003"
}

If.id4-0009 {
	Condition {
		Type String
		Haystack "${CardComponents}"
		Needle "USB2708:0009"
	}
	True.Define.ProfileName "Audient/Audient-iD4-0009"
}

If.mixremap {
	Condition {
		Type String
		Empty "${var:MixerRemap}"
	}
	False {
		Include.card-init.File "/lib/card-init.conf"
		Include.ctl-remap.File "/lib/ctl-remap.conf"
	}
}

If.inc {
	Condition {
		Type String
		Empty "${var:ProfileName}"
	}
	True.Error "UCM is not supported for this USB device (${CardLongName} @ ${CardComponents})"
	False.Include.prof.File "/USB-Audio/${var:ProfileName}.conf"
}
