Macro.apcmremap.CtlRemapMonoToStereoVolSw {
	Type Volume
	Stereo "Analog PCM"
	MonoL "Left Analog PCM"
	MonoR "Right Analog PCM"
}

Macro.dpcmremap.CtlRemapMonoToStereoVolSw {
	Type Volume
	Stereo "Digital PCM"
	MonoL "Left Digital PCM"
	MonoR "Right Digital PCM"
}

SectionVerb {
	EnableSequence [
		disdevall ""
		cset "name='ADC Phase Switch' 1"
		cset "name='BIQ Coefficients' 0x03,0x5a,0x00,0x06,0xfc,0xac,0x00,0x00,0xfe,0x58,0x00,0x00,0x03,0x50,0x00,0x06,0xfe,0x58,0x00,0x08"
		cset "name='Left PCM Source' DSP"
		cset "name='Right PCM Source' DSP"
	]

	Value {
		TQ "HiFi"
	}
}

SectionDevice."Headphones" {
	Comment "Headphones"

	ConflictingDevice [
		"Speaker"
	]

	EnableSequence [
		cset "name='Headphone Switch' on"
	]

	DisableSequence [
		cset "name='Headphone Switch' off"
	]

	Value {
		PlaybackPriority 200
		PlaybackPCM "hw:${CardId},0"
		JackControl "Headphone Jack"
		PlaybackMixerElem "Headphone"
		PlaybackMasterElem "Digital Playback"
	}
}

SectionDevice."Speaker" {
	Comment "Speaker"

	ConflictingDevice [
		"Headphones"
	]

	EnableSequence [
		cset "name='Left DSP RX1 Source' ASPRX1"
		cset "name='Right DSP RX1 Source' ASPRX2"
		cset "name='Left DSP RX2 Source' ASPRX1"
		cset "name='Right DSP RX2 Source' ASPRX2"
		cset "name='Left DSP1 Preload Switch' 1"
		cset "name='Right DSP1 Preload Switch' 1"
	]

	DisableSequence [
		cset "name='Left DSP RX1 Source' Zero"
		cset "name='Right DSP RX1 Source' Zero"
		cset "name='Left DSP RX2 Source' Zero"
		cset "name='Right DSP RX2 Source' Zero"
		cset "name='Left DSP1 Preload Switch' 0"
		cset "name='Right DSP1 Preload Switch' 0"
	]

	Value {
		PlaybackPriority 100
		PlaybackPCM "hw:${CardId},1"
		PlaybackMixerElem "Digital PCM"
		PlaybackMasterElem "Analog PCM"
		PlaybackVolume "Digital PCM Volume"
	}
}

SectionDevice."Mic" {
	Comment "Internal Microphone"

	ConflictingDevice [
		"Headset"
	]

	EnableSequence [
		cset "name='Int Mic Switch' on"
		cset "name='DMIC Enable Switch' on"
	]

	DisableSequence [
		cset "name='Int Mic Switch' off"
		cset "name='DMIC Enable Switch' off"
	]

	Value {
		CapturePriority 200
		CapturePCM "hw:${CardId},0"
		CaptureMixerElem "Int Mic"
		CaptureVolume "Mic Volume"
		CaptureSwitch "Int Mic Switch"
	}
}

SectionDevice."Headset" {
	Comment "Headset Microphone"

	ConflictingDevice [
		"Mic"
	]

	EnableSequence [
		cset "name='Headset Mic Switch' on"
	]

	DisableSequence [
		cset "name='Headset Mic Switch' off"
	]

	Value {
		CapturePriority 300
		CapturePCM "hw:${CardId},0"
		CaptureMixerElem "Headset Mic"
		CaptureVolume "Mic Volume"
		CaptureSwitch "Headset Mic Switch"
		JackControl "Headset Mic Jack"
	}
}
