# audio_properties.mk
#
# Product-specific audio property definitions.
# Taken as it is from vendor/qcom/opensource/audio-hal/primary-hal/configs/msm8953/msm8953.mk
#

# Reduce client buffer size for fast audio output tracks
PRODUCT_PROPERTY_OVERRIDES += \
	af.fast_track_multiplier=1

#Low latency audio buffer size in frames
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio_hal.period_size=192

##fluencetype can be "fluence" or "fluencepro" or "none"
PRODUCT_PROPERTY_OVERRIDES += \
	ro.vendor.audio.sdk.fluencetype=none\
	persist.vendor.audio.fluence.voicecall=true\
	persist.vendor.audio.fluence.voicerec=false\
	persist.vendor.audio.fluence.speaker=true

#disable tunnel encoding
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.tunnel.encode=false

#Buffer size in kbytes for compress offload playback
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.offload.buffer.size.kb=64

#Minimum duration for offload playback in secs
PRODUCT_PROPERTY_OVERRIDES += \
	audio.offload.min.duration.secs=30

#Enable offload audio video playback by default
PRODUCT_PROPERTY_OVERRIDES += \
	audio.offload.video=true

#Enable audio track offload by default
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.offload.track.enable=true

#Enable music through deep buffer
PRODUCT_PROPERTY_OVERRIDES += \
	audio.deep_buffer.media=true

#enable voice path for PCM VoIP by default
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.voice.path.for.pcm.voip=true

#Enable multi channel aac through offload
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.offload.multiaac.enable=true

#Enable DS2, Hardbypass feature for Dolby
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.dolby.ds2.enabled=false\
	vendor.audio.dolby.ds2.hardbypass=false

#Disable Multiple offload sesison
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.offload.multiple.enabled=false

#Disable Compress passthrough playback
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.offload.passthrough=false

#Disable surround sound recording
PRODUCT_PROPERTY_OVERRIDES += \
	ro.vendor.audio.sdk.ssr=false

#enable dsp gapless mode by default
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.offload.gapless.enabled=true

#enable pbe effects
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.safx.pbe.enabled=true

#parser input buffer size(256kb) in byte stream mode
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.parser.ip.buffer.size=262144

#enable downsampling for multi-channel content > 48Khz
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.playback.mch.downsample=true

#enable software decoders for ALAC and APE.
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.use.sw.alac.decoder=false\
	vendor.audio.use.sw.ape.decoder=true

#property for AudioSphere Post processing
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.pp.asphere.enabled=false

#Audio voice concurrency related flags
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.voice.playback.conc.disabled=true\
	vendor.voice.record.conc.disabled=false\
	vendor.voice.voip.conc.disabled=true

#Decides the audio fallback path during voice call,
#deep-buffer and fast are the two allowed fallback paths now.
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.voice.conc.fallbackpath=deep-buffer

#Disable speaker protection by default
PRODUCT_PROPERTY_OVERRIDES += \
	persist.vendor.audio.speaker.prot.enable=false

#Enable HW AAC Encoder by default
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.hw.aac.encoder=true

#flac sw decoder 24 bit decode capability
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.flac.sw.decoder.24bit=true

#timeout crash duration set to 20sec before system is ready.
#timeout duration updates to default timeout of 5sec once the system is ready.
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.hal.boot.timeout.ms=20000

#read wsatz name from thermal zone type
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.read.wsatz.type=true

#Set AudioFlinger client heap size
PRODUCT_PROPERTY_OVERRIDES += \
	ro.af.client_heap_size_kbyte=7168

PRODUCT_PROPERTY_OVERRIDES += \
	persist.vendor.audio.hw.binder.size_kbyte=1024

#Set speaker protection cal tx path sampling rate to 48k
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.spkr_prot.tx.sampling_rate=48000

PRODUCT_PROPERTY_OVERRIDES += \
	ro.config.vc_call_vol_steps=7

# add dynamic feature flags here
PRODUCT_PROPERTY_OVERRIDES += \
	vendor.audio.feature.snd_mon.enable=true \
	vendor.audio.feature.compr_cap.enable=false \
	vendor.audio.feature.hifi_audio.enable=true \
	vendor.audio.feature.hdmi_edid.enable=true  \
	vendor.audio.feature.dsm_feedback.enable=false \
	vendor.audio.feature.ssrec.enable=true  \
	vendor.audio.feature.compr_voip.enable=true \
	vendor.audio.feature.kpi_optimize.enable=true \
	vendor.audio.feature.usb_offload.enable=false  \
	vendor.audio.feature.usb_offload_burst_mode.enable=false \
	vendor.audio.feature.usb_offload_sidetone_volume.enable=false \
	vendor.audio.feature.src_trkn.enable=true \
	vendor.audio.feature.ras.enable=false \
	vendor.audio.feature.a2dp_offload.enable=false \
	vendor.audio.feature.wsa.enable=true \
	vendor.audio.feature.compress_meta_data.enable=true \
	vendor.audio.feature.vbat.enable=true \
	vendor.audio.feature.display_port.enable=false \
	vendor.audio.feature.fluence.enable=true \
	vendor.audio.feature.custom_stereo.enable=true \
	vendor.audio.feature.anc_headset.enable=true \
	vendor.audio.feature.spkr_prot.enable=false \
	vendor.audio.feature.fm.enable=true \
	vendor.audio.feature.external_dsp.enable=false \
	vendor.audio.feature.external_speaker.enable=false \
	vendor.audio.feature.external_speaker_tfa.enable=false \
	vendor.audio.feature.hwdep_cal.enable=false \
	vendor.audio.feature.hfp.enable=true \
	vendor.audio.feature.ext_hw_plugin.enable=false \
	vendor.audio.feature.record_play_concurency.enable=false \
	vendor.audio.feature.hdmi_passthrough.enable=false \
	vendor.audio.feature.concurrent_capture.enable=false \
	vendor.audio.feature.compress_in.enable=false \
	vendor.audio.feature.battery_listener.enable=false \
	vendor.audio.feature.maxx_audio.enable=false \
	vendor.audio.feature.audiozoom.enable=false \
	vendor.audio.feature.auto_hal.enable=false \
	vendor.audio.read.wsatz.type=true \
	vendor.audio.feature.multi_voice_session.enable=true \
	vendor.audio.feature.incall_music.enable=true

