# Use case Configuration for TI SDP4430 HiFi Music
# By Liam Girdwood <lrg@slimlogic.co.uk>

SectionVerb {
  	EnableSequence [
                cdev "hw:SDP4430"
		cset "name='DL1 Mixer Multimedia' 1"
		cset "name='Sidetone Mixer Playback' 1"
                cset "name='DL1 PDM Switch' 1"
		cset "name='DL1 Media Playback Volume' 90,90"
                cset "name='SDT DL Volume' 120"

                cset "name='HS Left Playback' 1"
                cset "name='HS Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:SDP4430"
		cset "name='DL1 Mixer Multimedia' 0"
		cset "name='Sidetone Mixer Playback' 0"
                cset "name='DL1 PDM Switch' 0"
		cset "name='DL1 Media Playback Volume' 0,0"
                cset "name='SDT DL Volume' 0"

		cset "name='HS Right Playback' 0"
		cset "name='HS Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]

 	# Optional TQ and ALSA PCMs
#	Value {
#		TQ "Music"
#		PlaybackPCM "hw:0,0"
#                PlaybackVolume "name='DL1 Media Playback Volume' 90,90"
#                PlaybackSwitch "name='DL1 PDM Switch' 1"
#	}
}

SectionDevice."Headset".0 {
	Comment "SDP4430 3.5mm Headset"
	
	EnableSequence [
                cdev "hw:SDP4430"
                cset "name='HS Left Playback' 1"
                cset "name='HS Right Playback' 1"
                cset "name='Headset Playback Volume' 13"
	]

	DisableSequence [
                cdev "hw:SDP4430"
		cset "name='HS Right Playback' 0"
		cset "name='HS Left Playback' 0"
                cset "name='Headset Playback Volume' 0"
	]
}

#SectionModifier."RecordMedia".0 {
#	SupportedDevice [
#		"Headset"
#	]
 #       EnableSequence [
 #         ....
 #       ]
 #
 #       DisableSequence [
 #         ...
 #       ]
 #
 #       TransitionSequence."ToModifierName" [
 #         ...
 #       ]
 #
 #       # Optional TQ and ALSA PCMs
 #       Value {
 #               TQ Voice
 #               CapturePCM "hw:1"
 #               PlaybackVolume "name='Master Playback Volume',index=2"
 #               PlaybackSwitch "name='Master Playback Switch',index=2"
 #       }
#
#}

