# Generic HDA devices for analog I/O Define.LineDevice "" Define.spkvol "Speaker" Define.hpvol "Headphone" Define.hpjack "Headphone Jack" Define.loctl "Line" Define.lovol "Line" If.hpjack { Condition { Type ControlExists Control "iface=CARD,name='Headphone Mic Jack'" } True.Define.hpjack "Headphone Mic Jack" False.If.front { Condition { Type ControlExists Control "iface=CARD,name='Front Headphone Jack'" } True.Define.hpjack "Front Headphone Jack" } } If.nolineout { Condition { Type ControlExists Control "name='Line Playback Switch'" } False.Define { loctl "" lovol "" } } If.lineout { Condition { Type ControlExists Control "name='Line Out Playback Switch'" } True.Define { loctl "Line Out" lovol "Line Out" } } If.linefront { Condition { Type ControlExists Control "name='Front Playback Volume'" } True.Define { LineDevice "1" } } If.hpvol { Condition { Type ControlExists Control "name='Headphone Playback Switch'" } False.Define.hpvol "" } If.hplo { Condition { Type ControlExists Control "name='Headphone+LO Playback Volume'" } True.Define { hpvol "Headphone+LO" lovol "Headphone+LO" } } If.spkvol { Condition { Type ControlExists Control "name='Speaker Playback Switch'" } False.Define.spkvol "" } If.outnone { Condition { Type String Empty "${var:hpvol}${var:spkvol}${var:lovol}" } True { If.spk { Condition { Type ControlExists Control "iface=CARD,name='Speaker Phantom Jack'" } True.Define.spkvol "Master" } If.line { Condition { Type ControlExists Control "iface=CARD,name='Line Phantom Jack'" } True.Define.lovol "Master" } If.lineout { Condition { Type ControlExists Control "iface=CARD,name='Line Out Phantom Jack'" } True.Define.lovol "Master" } If.none { Condition { Type String Empty "${var:spkvol}${var:lovol}" } True.If.default { Condition { Type ControlExists Control "name='Master Playback Switch'" } True.Define.hpvol "Master" } } } } If.hp { Condition { Type String Empty "${var:hpvol}" } False.SectionDevice."Headphones" { Comment "Headphones" If.headphone_switch { Condition { Type ControlExists Control "name='Headphone Playback Switch'" } True { EnableSequence [ cset "name='Headphone Playback Switch' on" ] DisableSequence [ cset "name='Headphone Playback Switch' off" ] } } Value { PlaybackPriority 200 PlaybackPCM "hw:${CardId}" PlaybackMixerElem "${var:hpvol}" PlaybackVolume "${var:hpvol} Playback Volume" PlaybackSwitch "${var:hpvol} Playback Switch" JackControl "${var:hpjack}" } If.master { Condition { Type String String1 "${var:hpvol}" String2 "Master" } False.Value.PlaybackMasterElem "Master" } } } If.spk { Condition { Type String Empty "${var:spkvol}" } False.Include.hifi-spk.File "/HDA/HiFi-spk.conf" } If.cap-sw { Condition { Type ControlExists Control "name='Capture Switch'" } True.Include.hifi-mic.File "/HDA/HiFi-mic.conf" } If.line { Condition { Type String Empty "${var:loctl}" } False.SectionDevice."Line${var:LineDevice}" { Comment "Line Output" If.conflict { Condition { Type String String1 "${var:lovol}" String2 "Headphone+LO" } True.ConflictingDevice [ "Headphones" ] } EnableSequence [ cset "name='${var:loctl} Playback Switch' on" ] DisableSequence [ cset "name='${var:loctl} Playback Switch' off" ] Value { PlaybackPriority 300 PlaybackPCM "hw:${CardId}" PlaybackMixerElem "${var:lovol}" PlaybackVolume "${var:lovol} Playback Volume" PlaybackSwitch "${var:loctl} Playback Switch" JackControl "${var:loctl} Jack" } If.master { Condition { Type String String1 "${var:lovol}" String2 "Master" } False.Value.PlaybackMasterElem "Master" } } } If.linefront { Condition { Type ControlExists Control "name='Front Playback Switch'" } True.SectionDevice."Line2" { Comment "Second Line Output" If.line1exists { Condition { Type String Empty "${var:loctl}" } False.ConflictingDevice [ "Line${var:LineDevice}" ] } EnableSequence [ cset "name='Front Playback Switch' on" ] DisableSequence [ cset "name='Front Playback Switch' off" ] Value { PlaybackPriority 250 PlaybackPCM "hw:${CardId}" PlaybackMixerElem "Front" PlaybackMasterElem "Master" PlaybackVolume "Front Playback Volume" PlaybackSwitch "Front Playback Switch" JackControl "Line Out Front Jack" } } }