__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# Control audio processing in SOF
# File paths for controlling SOF processing
If.SOFIPCVer {
Condition {
Type ControlExists
Control "name='Post Mixer Analog Playback IIR Eq bytes'"
}
True.Define {
SOFIPCVer "ipc4"
PostMixerAnalogPlaybackIIRBytes "Post Mixer Analog Playback IIR Eq bytes"
PostMixerAnalogPlaybackFIRBytes "Post Mixer Analog Playback FIR Eq bytes"
PostMixerAnalogPlaybackDRCBytes "Post Mixer Analog Playback DRC bytes"
PostMixerAnalogPlaybackDRCSwitch "Post Mixer Analog Playback DRC switch"
}
False.Define {
SOFIPCVer "ipc3"
PostMixerAnalogPlaybackIIRBytes "EQIIR1.0 eqiir_coef_1"
PostMixerAnalogPlaybackFIRBytes "EQFIR1.0 eqfir_coef_1"
PostMixerAnalogPlaybackDRCBytes "not available"
PostMixerAnalogPlaybackDRCSwitch "not available"
}
}
If.SOFPath {
Condition { Type AlwaysTrue }
True.Define {
BlobPath "${ConfTopDir}/blobs/sof/${var:SOFIPCVer}"
SpeakerIirBlob "${var:BlobPath}/eq_iir/highpass_100hz_0db_48khz.blob"
SpeakerFirBlob "${var:BlobPath}/eq_fir/pass.blob"
SpeakerDrcBlob "${var:BlobPath}/drc/speaker_default.blob"
HeadphoneIirBlob "${var:BlobPath}/eq_iir/pass.blob"
HeadphoneFirBlob "${var:BlobPath}/eq_fir/pass.blob"
HeadphoneDrcBlob "${var:BlobPath}/drc/passthrough.blob"
}
}
Define.ConfPathFromDMI "${sys:devices/virtual/dmi/id/sys_vendor}/${sys:devices/virtual/dmi/id/product_name}.conf"
Define.SOFProductConfig "/blobs/sof/product_configs/${var:ConfPathFromDMI}"
Define.SOFConfFullPath "${ConfTopDir}${var:SOFProductConfig}"
Define.SOFUserConfig "/blobs/sof/user_configs/${var:ConfPathFromDMI}"
Define.SOFUserConfFullPath "${ConfTopDir}${var:SOFUserConfig}"
If.HasUserConfig {
Condition {
Type Path
Mode read
Path "${var:SOFUserConfFullPath}"
}
True {
Include.product-config.File "${var:SOFUserConfig}"
}
False.If.HasProductConfig {
Condition {
Type Path
Mode read
Path "${var:SOFConfFullPath}"
}
True {
Include.product-config.File "${var:SOFProductConfig}"
}
}
}
# Redefine headphone control FOR SOF. This is same as Headphone in HDA/HiFi-analog.conf
# but adds DRC and EQ controls.
DefineMacro.SofControl {
Define.EndpointDrcVar "${var:__endpoint}DrcBlob"
Define.EndpointIirVar "${var:__endpoint}IirBlob"
Define.EndpointFirVar "${var:__endpoint}FirBlob"
Define.EndpointDrcBlob "${var:$EndpointDrcVar}"
Define.EndpointIirBlob "${var:$EndpointIirVar}"
Define.EndpointFirBlob "${var:$EndpointFirVar}"
If.endpoint_with_drc {
Condition {
Type ControlExists
Control "name='${var:PostMixerAnalogPlaybackDRCSwitch}'"
}
True {
EnableSequence [
# For debug uncomment below the echo command to see what blobs are applied
#shell "/bin/echo '${var:__endpoint} ${var:EndpointIirBlob} ${var:EndpointFirBlob} ${var:EndpointDrcBlob}' >> /tmp/alsa-ucm.txt"
cset "name='${var:PostMixerAnalogPlaybackDRCSwitch}' ${var:__drcswitch}"
cset-tlv "name='${var:PostMixerAnalogPlaybackDRCBytes}' ${var:EndpointDrcBlob}"
cset-tlv "name='${var:PostMixerAnalogPlaybackIIRBytes}' ${var:EndpointIirBlob}"
cset-tlv "name='${var:PostMixerAnalogPlaybackFIRBytes}' ${var:EndpointFirBlob}"
]
}
False.If.endpoint_with_eq {
Condition {
Type ControlExists
Control "name='${var:PostMixerAnalogPlaybackFIRBytes}'"
}
True {
EnableSequence [
# For debug uncomment below the echo command to see what blobs are applied
#shell "/bin/echo '${var:__endpoint} ${var:EndpointIirBlob} ${var:EndpointFirBlob}' >> /tmp/alsa-ucm.txt"
cset-tlv "name='${var:PostMixerAnalogPlaybackIIRBytes}' ${var:EndpointIirBlob}"
cset-tlv "name='${var:PostMixerAnalogPlaybackFIRBytes}' ${var:EndpointFirBlob}"
]
}
}
}
}
# Merge this to Headpones subtree in HDA/HiFi-analog.conf
SectionDevice."Headphones" {
Macro.headphone.SofControl "endpoint=Headphone drcswitch=off"
}
# Merge this to Speaker subtree in HDA/HiFi-analog.conf
If.spk {
Condition {
Type ControlExists
Control "name='Speaker Playback Switch'"
}
True.SectionDevice."Speaker" {
Macro.speaker.SofControl "endpoint=Speaker drcswitch=on"
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| Hdmi.conf | File | 414 B | 0644 |
|
| HiFi-sof.conf | File | 4.03 KB | 0644 |
|
| HiFi.conf | File | 1.07 KB | 0644 |
|
| sof-hda-dsp.conf | File | 2.93 KB | 0644 |
|