42 lines
1.3 KiB
Plaintext
42 lines
1.3 KiB
Plaintext
SectionDevice."Speaker" {
|
|
Comment "Mono Speaker"
|
|
|
|
ConflictingDevice [
|
|
"Headphones"
|
|
]
|
|
|
|
EnableSequence [
|
|
# BYT/CHT devices with an ES8316 codec use a single speaker
|
|
# connected between the headhpone LOUT and ROUT pins, expecting
|
|
# the output to be in a mono differential mode. Presumably this
|
|
# is done to use the power of both the left and right headphone
|
|
# amplifier channels to allow the speaker to be louder.
|
|
#
|
|
# The ES8316 codec does not have a differential output mode, but
|
|
# we can emulate one by making both channels output the exact
|
|
# same signal by setting the "DAC Mono Mix Switch", combined
|
|
# with setting the "Playback Polarity" control to "R Invert",
|
|
# which applies a 180 degrees phase inversion to the right chan.
|
|
cset "name='DAC Mono Mix Switch' on"
|
|
cset "name='Playback Polarity' 1"
|
|
|
|
cset "name='Speaker Switch' on"
|
|
]
|
|
|
|
DisableSequence [
|
|
cset "name='Speaker Switch' off"
|
|
# DAC settings back to normal for stereo headphones output
|
|
cset "name='Playback Polarity' 0"
|
|
cset "name='DAC Mono Mix Switch' off"
|
|
]
|
|
|
|
Value {
|
|
PlaybackPriority 100
|
|
PlaybackPCM "hw:${CardId}"
|
|
# The es8316 only has a HP-amp which is muxed to the speaker
|
|
# or to the headpones output
|
|
PlaybackMixerElem "Headphone Mixer"
|
|
PlaybackMasterElem "DAC"
|
|
}
|
|
}
|