Files
2026-11-11 23:30:30 +03:00

2201 lines
103 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Changes from Qualcomm Innovation Center are provided under the following license:
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* SPDX-License-Identifier: BSD-3-Clause-Clear
* -->
<resource_manager_info>
<version>2.0</version>
<config_params>
<param key="native_audio_mode" value="false"/>
<!-- Uncomment HIFI Filter Headphones related sections when set this
hifi_filter key to true -->
<param key="hifi_filter" value="false"/>
<param key="max_sessions" value="128"/>
<param key="max_nonTunnel_sessions" value="4"/>
<param key="connectivity_proxy_enabled" value ="true" />
<param key="logging_level" value ="7" />
<param key="context_manager_enable" value ="true" />
<param key="lpi_logging_enable" value ="false" />
<!-- change PAL_DEVICE_OUT_ULTRASOUND_DEDICATED backend name when set it to true -->
<param key="upd_dedicated_be" value ="false" />
<param key="upd_duty_cycle_enable" value="false" />
<param key="dual_mono" value ="false" />
<param key="signal_handler" value ="true" />
<param key="device_mux_config" value ="false" />
<param key="upd_virtual_port" value ="false" />
<param key="haptics_priority" value ="touch_haptics" />
<param key="dummy_dev_enable" value ="true" />
<param key="haptics_through_wsa" value ="false" />
<!-- Jie.Du@MULTIMEDIA.AUDIODRIVER.SMARTPA, 2021/06/22, add for engineermode test -->
<param key="oplus_mic_count" value ="3" />
<param key="mictype" value ="main,BottomR,sec" />
<param key="emADCAgingSupport" value ="1" />
<!-- YeWenliang@MULTIMEDIA.AUDIODRIVER, 2021/08/12, Add for mulit scene record -->
<param key="oplus_multi_record" value="true"/>
<!-- Yongzhi.Zhang@MULTIMEDIA.AUDIODRIVER.FEATURE, 2021/10/18, Add for hdr record -->
<param key="oplus_hdr_record" value="false"/>
<!-- YeWenliang@MULTIMEDIA.AUDIODRIVER, 2021/08/27, Add for smartpa power monitor -->
<param key="support_smartpa_pm" value="true"/>
<!-- Zhao.Pan@MULTIMEDIA.AUDIODRIVER.FEEDBACK, 2022/04/12, add for speaker err feedback -->
<param key="oplus_check_speaker" value="true"/>
<!-- YeWenliang@MULTIMEDIA.AUDIODRIVER, 2021/08/31, Add for ear protection -->
<param key="oplus_ear_protection_enable" value="true"/>
<!-- YeWenliang@MULTIMEDIA.AUDIODRIVER, 2021/10/21, Add for power analysis -->
<param key="power_analysis_enable" value="true"/>
<!-- ZhaoShengtao@MULTIMEDIA.AUDIODRIVER, 2021/10/28, Add for audio abnormal detect -->
<param key="audio_detect_config_enable" value="true"/>
<!-- liuhaituo@MULTIMEDIA.AUDIODRIVER, 2022/04/16, Add adsp ssr interfac start -->
<param key="adsp_ssr_support" value="yes"/>
<!-- Jie.Du@MULTIMEDIA.AUDIODRIVER, 2023/02/22, add for support call record in ocar mode -->
<param key="ocar_mode_support" value="true"/>
<!-- Nan.Zhong@MULTIMEDIA.AUDIODRIVER.SMARTPA, 2023/04/28, add for speaker protection -->
<param key="speaker_auto_calibration" value="true"/>
<param key="oplus_speaker_id" value="1"/>
<param key="speaker_ckv_extn" value="3"/>
<!-- Huangzilong@MULTIMEDIA.AUDIODRIVER, 2022/09/20, Add for 4ch aec -->
<param key="oplus_4ch_aec_enable" value="true"/>
<param key="oplus_ref_channel_count" value ="2" />
<!-- liuhaituo@MULTIMEDIA.AUDIODRIVER, 2024/01/10, Add for Distinguish between old and new version interfaces -->
<param key="sipa_algo_version" value ="v3" />
<!-- hongxiang.jin@MULTIMEDIA.AUDIODRIVER, 2024/03/11, add for support speaker swap channel -->
<param key="speaker_swap_channel_support" value="true"/>
<!--Zhao.Pan@MULTIMEDIA.AUDIODRIVER.FEEDBACK, 2023/11/29, add for audio daemon -->
<param key="oplus_audio_daemon_pal" value="true"/>
<param key="oplus_audio_daemon_agm" value="true"/>
<!-- Zhangliu@MULTIMEDIA.AUDIODRIVER, 2023/08/10, Add oplus voice isolation -->
<param key="voice_isolation_enable" value="true"/>
<!-- Minyi.Hu@MULTIMEDIA.AUDIODRIVER, 2022/08/26, Add for smart pa power control -->
<param key="lowbattery_speaker_profile_support" value="true"/>
<param key="oplus_opve_err_fb" value="true"/>
<param key="oplus_opve_standard_version" value="true"/>
<!-- Yongzhi.Zhang@MULTIMEDAI.AUDIODRIVER.HAL, 2023/11/22, add for spk prot diff latency feature -->
<param key="speaker_diff_latency_support" value ="false" />
<!-- liuhaituo@MULTIMEDAI.AUDIODRIVER.HAL, 2025/01/02, add for voice translation feature -->
<param key="OPLUS_VOICE_TRANSLATION_SUPPORT" value ="true" />
<param key="oplus_voice_call_fb" value="true" />
<!-- liuhaituo@MULTIMEDAI.AUDIODRIVER.HAL, 2025/07/30, add for oplus HFP feature -->
<param key="OPLUS_HFP_SUPPORT" value="true"/>
</config_params>
<config_volume>
<use_volume_set_param>1</use_volume_set_param>
<supported_streams>
<supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</supported_stream>
<supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
<supported_stream>PAL_STREAM_PCM_OFFLOAD</supported_stream>
<supported_stream>PAL_STREAM_VOIP_RX</supported_stream>
<!-- Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL.OPLUS_FEATURE_RINGTONE_HAPTIC, 2022/11/22, Add for haptic volume use setparam -->
<supported_stream>PAL_STREAM_HAPTICS</supported_stream>
</supported_streams>
</config_volume>
<!-- Jianfeng.Qiu@MULTIMEDIA.AUDIODRIVER.HAL.OPLUS_FEATURE_RINGTONE_HAPTIC, 2022/11/22, Add for haptic volume config -->
<haptic_volume_to_level_mapping>
<haptic_volume_level_map volume="0.32" level="0"/>
<haptic_volume_level_map volume="0.36" level="1"/>
<haptic_volume_level_map volume="0.40" level="2"/>
<haptic_volume_level_map volume="0.45" level="3"/>
<haptic_volume_level_map volume="0.49" level="4"/>
<haptic_volume_level_map volume="0.53" level="5"/>
<haptic_volume_level_map volume="0.57" level="6"/>
<haptic_volume_level_map volume="0.62" level="7"/>
<haptic_volume_level_map volume="0.66" level="8"/>
<haptic_volume_level_map volume="0.70" level="9"/>
<haptic_volume_level_map volume="0.74" level="10"/>
<haptic_volume_level_map volume="0.79" level="11"/>
<haptic_volume_level_map volume="0.83" level="12"/>
<haptic_volume_level_map volume="0.87" level="13"/>
<haptic_volume_level_map volume="0.91" level="14"/>
<haptic_volume_level_map volume="0.95" level="15"/>
<haptic_volume_level_map volume="1.00" level="16"/>
</haptic_volume_to_level_mapping>
<config_lpm>
<use_disable_lpm>1</use_disable_lpm>
<lpm_supported_streams>
<lpm_supported_stream>PAL_STREAM_LOW_LATENCY</lpm_supported_stream>
<lpm_supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</lpm_supported_stream>
</lpm_supported_streams>
</config_lpm>
<config_gapless key="gapless_supported" value="1"/>
<bt_codecs>
<codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
<codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
<codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_QLEA" codec_type="enc" codec_library="lib_bt_ble.so" />
<codec codec_format="CODEC_TYPE_APTX_AD_R4" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
</bt_codecs>
<gain_db_to_level_mapping>
<gain_level_map db="-59" level="5"/>
<gain_level_map db="-17.4" level="4"/>
<gain_level_map db="-13.8" level="3"/>
<gain_level_map db="-10.2" level="2"/>
<gain_level_map db="0" level="1"/>
</gain_db_to_level_mapping>
<smartpa_rotation_cmd_mapping>
<cmd_count>2</cmd_count>
<rotation_cmd_map fold_state="0" rotation="0" cmds="0x01,0x00"/>
<rotation_cmd_map fold_state="0" rotation="90" cmds="0x01,0x00"/>
<rotation_cmd_map fold_state="0" rotation="180" cmds="0x10,0x00"/>
<rotation_cmd_map fold_state="0" rotation="270" cmds="0x10,0x00"/>
</smartpa_rotation_cmd_mapping>
<config_voice>
<vsid>0xB3000000</vsid>
<loopbackDelay>1000</loopbackDelay>
<maxVolIndex>9</maxVolIndex>
<mode_map>
<modepair key="0x11C05000" value="0xB3000001"/>
<modepair key="0x11DC5000" value="0xB3000001"/>
<modepair key="0x12006000" value="0xB3000001"/>
<modepair key="0x121C6000" value="0xB3000001"/>
</mode_map>
</config_voice>
<sleep_monitor_vote_streams>
<low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
<low_power_stream_type>PAL_STREAM_SENSOR_PCM_DATA</low_power_stream_type>
<avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
</sleep_monitor_vote_streams>
<perf_lock library="libqti-perfd-client.so" config="0x40400000, 0x1, 0x40800000, 0x514" />
<silence_detection_config pcm="1" voice="1" duration="6000"/>
<group_device_cfg>
<upd_rx>
<snd_device name="handset" />
<group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
</upd_rx>
<handset>
<group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
</handset>
<speaker>
<group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
</speaker>
<speaker_voice>
<group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
</speaker_voice>
<upd_rx_handset>
<snd_device name="speaker" />
<devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
<group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
</upd_rx_handset>
<upd_rx_speaker>
<snd_device name="speaker" />
<devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
<group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
</upd_rx_speaker>
</group_device_cfg>
<device_profile>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>24</bit_width>
<snd_device_name>handset-mic</snd_device_name>
<ec_enable>0</ec_enable>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<custom-config key="camcorder-mic">
<channels>3</channels>
<snd_device_name>camcorder-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
<custom-config key="main-mic-record">
<channels>1</channels>
<snd_device_name>main-mic-test</snd_device_name>
</custom-config>
<custom-config key="sec-mic-record">
<channels>1</channels>
<snd_device_name>sec-mic-test</snd_device_name>
</custom-config>
<custom-config key="anc-mic-record">
<channels>1</channels>
<snd_device_name>anc-mic-test</snd_device_name>
</custom-config>
<custom-config key="bottom-right-mic-record">
<channels>1</channels>
<snd_device_name>bottom-right-mic-test</snd_device_name>
</custom-config>
<custom-config key="mmi-stero-mic-record">
<channels>2</channels>
<snd_device_name>mmi-mic-record</snd_device_name>
</custom-config>
<custom-config key="mmi-anc-mic-record">
<channels>1</channels>
<snd_device_name>mmi-anc-mic-record</snd_device_name>
</custom-config>
<custom-config key="mmi-seal-mic-record">
<channels>3</channels>
<snd_device_name>mmi-mic-seal-record</snd_device_name>
</custom-config>
<custom-config key="camcorder-mic">
<channels>3</channels>
<snd_device_name>camcorder-mic</snd_device_name>
</custom-config>
<custom-config key="oprec-mic">
<channels>4</channels>
<snd_device_name>oprec-mic</snd_device_name>
</custom-config>
<custom-config key="normalrec-mic">
<channels>2</channels>
<snd_device_name>handset-mic</snd_device_name>
</custom-config>
<custom-config key="aging-hdr0-record">
<channels>4</channels>
<snd_device_name>aging-hdr0-record</snd_device_name>
</custom-config>
<custom-config key="aging-hdr1-record">
<channels>1</channels>
<snd_device_name>aging-hdr1-record</snd_device_name>
</custom-config>
<custom-config key="uni-oprec-mic">
<channels>3</channels>
<snd_device_name>uni-oprec-mic</snd_device_name>
</custom-config>
<custom-config key="4ch-aec-mic">
<ec_enable>1</ec_enable>
</custom-config>
</usecase>
<!--Uncomment these lines instead of above lines if needing to enable EC per custom key
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="vr-mic">
<ec_enable>1</ec_enable>
</custom-config>
</usecase>
-->
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<ec_enable>1</ec_enable>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
<ec_enable>1</ec_enable>
<snd_device_name>voice-handset-mic</snd_device_name>
<custom-config key="voice_isolation">
<channels>3</channels>
<snd_device_name>handset-mic-isolation</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
<ec_enable>1</ec_enable>
<snd_device_name>voice-handset-mic</snd_device_name>
<custom-config key="nn-sm">
<channels>1</channels>
<snd_device_name>handset-mic</snd_device_name>
</custom-config>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="dual-mic-nn-sm">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="dual-mic-cascade">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="quad-mic">
<channels>4</channels>
<snd_device_name>quad-mic</snd_device_name>
</custom-config>
<custom-config key="voice_isolation">
<channels>3</channels>
<snd_device_name>handset-mic-isolation</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>handset-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="oprec-mic">
<channels>2</channels>
<snd_device_name>handset-mic</snd_device_name>
</custom-config>
<custom-config key="normalrec-mic">
<channels>2</channels>
<snd_device_name>handset-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_RAW</name>
<snd_device_name>handset-mic-unprocessed</snd_device_name>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<ec_enable>1</ec_enable>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<channels>2</channels>
<bit_width>16</bit_width>
<snd_device_name>handset-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_RECOGNITION</name>
<custom-config key="4ch-aec-mic">
<ec_enable>1</ec_enable>
</custom-config>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_SPEAKER_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>4</max_channels>
<samplerate>48000</samplerate>
<bit_width>24</bit_width>
<channels>2</channels>
<ec_enable>0</ec_enable>
<snd_device_name>speaker-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<custom-config key="camcorder-mic">
<channels>3</channels>
<snd_device_name>camcorder-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<ec_enable>1</ec_enable>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
<custom-config key="camcorder-mic">
<channels>3</channels>
<snd_device_name>camcorder-mic</snd_device_name>
</custom-config>
<custom-config key="oprec-mic">
<channels>4</channels>
<snd_device_name>oprec-mic</snd_device_name>
</custom-config>
<custom-config key="normalrec-mic">
<channels>2</channels>
<snd_device_name>speaker-mic</snd_device_name>
</custom-config>
<custom-config key="aging-hdr0-record">
<channels>4</channels>
<snd_device_name>aging-hdr0-record</snd_device_name>
</custom-config>
<custom-config key="aging-hdr1-record">
<channels>1</channels>
<snd_device_name>aging-hdr1-record</snd_device_name>
</custom-config>
</usecase>
<!--Uncomment these lines instead of above lines if needing to enable EC per custom key
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="vr-mic">
<ec_enable>1</ec_enable>
</custom-config>
</usecase>
-->
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<ec_enable>1</ec_enable>
<custom-config key="unprocessed-hdr-mic-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-landscape">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
</custom-config>
<custom-config key="unprocessed-hdr-mic-inverted-portrait">
<channels>4</channels>
<snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<priority>2</priority>
<ec_enable>1</ec_enable>
<snd_device_name>voice-speaker-mic</snd_device_name>
<custom-config key="voice_isolation">
<channels>3</channels>
<snd_device_name>speaker-mic-isolation</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<bit_width>16</bit_width>
<ec_enable>1</ec_enable>
<snd_device_name>voice-speaker-mic</snd_device_name>
<custom-config key="nn-sm">
<channels>1</channels>
<snd_device_name>speaker-mic</snd_device_name>
</custom-config>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>speaker-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="dual-mic-nn-sm">
<channels>2</channels>
<snd_device_name>speaker-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="dual-mic-cascade">
<channels>2</channels>
<snd_device_name>speaker-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="quad-mic">
<channels>4</channels>
<snd_device_name>quad-mic</snd_device_name>
</custom-config>
<custom-config key="quad-mic-cascade">
<channels>4</channels>
<snd_device_name>quad-mic</snd_device_name>
</custom-config>
<custom-config key="voice_isolation">
<channels>3</channels>
<snd_device_name>speaker-mic-isolation</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<channels>2</channels>
<bit_width>16</bit_width>
<snd_device_name>speaker-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<custom-config key="dual-mic">
<channels>2</channels>
<snd_device_name>speaker-dmic-endfire</snd_device_name>
</custom-config>
<custom-config key="oprec-mic">
<channels>2</channels>
<snd_device_name>speaker-mic</snd_device_name>
</custom-config>
<custom-config key="normalrec-mic">
<channels>2</channels>
<snd_device_name>speaker-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<ec_enable>1</ec_enable>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<bit_width>24</bit_width>
<snd_device_name>headset-mic</snd_device_name>
<ec_enable>0</ec_enable>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="ktv-mic2rec">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
<custom-config key="ktv-mic">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
</usecase>
<!--Uncomment these lines instead of above lines if needing to enable EC per custom key
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="vr-mic">
<ec_enable>1</ec_enable>
</custom-config>
</usecase>
-->
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<ec_enable>1</ec_enable>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<ec_enable>1</ec_enable>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<sidetone_mode>OFF</sidetone_mode>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<priority>1</priority>
<ec_enable>1</ec_enable>
<custom-config key="nn-sm">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<custom-config key="ktv-mic2rec">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
<custom-config key="ktv-mic">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="ktv-mic2rec">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
<custom-config key="ktv-mic">
<channels>1</channels>
<snd_device_name>headset-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_UI</name>
<ec_enable>1</ec_enable>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
<back_end_name>BTFM_PROXY-TX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>bt-sco-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>va-mic</snd_device_name>
<ec_enable>1</ec_enable>
<ec_rx_device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<id>PAL_DEVICE_OUT_HANDSET</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
<id>PAL_DEVICE_OUT_USB_HEADSET</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>headset-va-mic</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<ec_enable>1</ec_enable>
<ec_rx_device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_USB_HEADSET</id>
<back_end_name>USB_AUDIO-TX</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<samplerate>48000</samplerate>
<bit_width>24</bit_width>
<ec_enable>0</ec_enable>
<snd_device_name>usb-headset-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
<ec_enable>1</ec_enable>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="ktv-mic2rec">
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
</custom-config>
<custom-config key="ktv-mic">
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
</custom-config>
</usecase>
<!--Uncomment these lines instead of above lines if needing to enable EC per custom key
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="vr-mic">
<ec_enable>1</ec_enable>
</custom-config>
</usecase>
-->
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<ec_enable>1</ec_enable>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<sidetone_mode>OFF</sidetone_mode>
<ec_enable>1</ec_enable>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
<custom-config key="ktv-mic2rec">
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
</custom-config>
<custom-config key="ktv-mic">
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="ktv-mic2rec">
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
</custom-config>
<custom-config key="ktv-mic">
<channels>1</channels>
<snd_device_name>usb-headset-mic</snd_device_name>
</custom-config>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_USB_HEADSET</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_FM_TUNER</id>
<back_end_name>MI2S-LPAIF-TX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>play-fm</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_PROXY</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_RECORD_PROXY</id>
<back_end_name>PCM_RT_PROXY-TX-2</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_VI_FEEDBACK</id>
<back_end_name>MI2S-LPAIF-TX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>32</bit_width>
<snd_device_name>vi-feedback</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_CPS_FEEDBACK</id>
<back_end_name>MI2S-LPAIF-TX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>24000</samplerate>
<bit_width>32</bit_width>
<snd_device_name>cps-feedback</snd_device_name>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
<back_end_name>BTFM_PROXY-TX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp-mic</snd_device_name>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_BLUETOOTH_BLE</id>
<back_end_name>BTFM_PROXY-TX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-ble-mic</snd_device_name>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_TX</name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
</usecase>
<ec_rx_device>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
</ec_rx_device>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_TELEPHONY_RX</id>
<back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<usecase>
<name>PAL_STREAM_PROXY</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<samplerate>96000</samplerate>
<bit_width>16</bit_width>
<snd_device_name>ultrasound-mic</snd_device_name>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_EXT_EC_REF</id>
<back_end_name>MI2S-LPAIF-TX-TERTIARY</back_end_name>
<snd_device_name>ext_ec_ref_tx</snd_device_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>16</bit_width>
<samplerate>48000</samplerate>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_ECHO_REF</id>
<back_end_name>PCM_DUMMY-TX-0</back_end_name>
<snd_device_name>echo-ref-record</snd_device_name>
<max_channels>1</max_channels>
<channels>1</channels>
<bit_width>16</bit_width>
<samplerate>48000</samplerate>
<usecase>
<name>PAL_STREAM_RAW</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_HAPTICS_VI_FEEDBACK</id>
<back_end_name>CODEC_DMA-LPAIF_WSA2-TX-0</back_end_name>
<snd_device_name>haptics-vi-feedback-mono</snd_device_name>
<max_channels>1</max_channels>
<channels>1</channels>
<bit_width>32</bit_width>
<samplerate>8000</samplerate>
<usecase>
<name>PAL_STREAM_HAPTICS</name>
</usecase>
</in-device>
<in-device>
<id>PAL_DEVICE_IN_DUMMY</id>
<back_end_name>PCM_DUMMY-TX-1</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>dummy-dev</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</in-device>
<out-device>
<id>PAL_DEVICE_NONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>none</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_SPEAKER</id>
<back_end_name>MI2S-LPAIF-RX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<samplerate>48000</samplerate>
<bit_width>24</bit_width>
<snd_device_name>speaker</snd_device_name>
<speaker_protection_enabled>1</speaker_protection_enabled>
<fractional_sr>0</fractional_sr>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<!-- Flag to specify cps mode which is applicable
Values: disable CPS: 0
CPS streaming: 1
ADSP control mode: 2
-->
<cps_mode>0</cps_mode>
<vbat_enabled>0</vbat_enabled>
<!--specify the supported bit format on speaker end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
<!--We support 24 bit for speaker as of now, as some module in ADSP does not support Q31 format-->
<!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>
<!-- RAS should be enabled with speaker protection always -->
<ras_enabled>0</ras_enabled>
<!-- Flag to specify speaker in case Voice call is switched from
handset to speaker with only 1 speaker.
Values: Both speaker : 0
Right speaker: 1
Left speaker : 2
-->
<speaker_mono_right>0</speaker_mono_right>
<!-- Time in seconds for Quick cal. Set 0 to disable -->
<quick_cal_time>0</quick_cal_time>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<channels>2</channels>
<snd_device_name>speaker</snd_device_name>
</usecase>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<custom-config key="crsCall">
<priority>1</priority>
<channels>2</channels>
<snd_device_name>speaker</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>3</priority>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<priority>4</priority>
<samplerate>96000</samplerate>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<custom-config key="left-speaker-playback">
<snd_device_name>mmi-speaker-left</snd_device_name>
</custom-config>
<custom-config key="right-speaker-playback">
<snd_device_name>mmi-speaker-right</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<priority>1</priority>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HANDSET</id>
<back_end_name>MI2S-LPAIF-RX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
<ext_ec_ref_enabled>0</ext_ec_ref_enabled>
<samplerate>48000</samplerate>
<bit_width>24</bit_width>
<fractional_sr>0</fractional_sr>
<snd_device_name>handset</snd_device_name>
<handset_protection_enabled>0</handset_protection_enabled>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<snd_device_name>handset</snd_device_name>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>3</priority>
<custom-config key="receiver-playback">
<snd_device_name>mmi-receiver</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_ULTRASOUND</name>
<priority>4</priority>
<samplerate>96000</samplerate>
</usecase>
<usecase>
<name>PAL_STREAM_LOW_LATENCY</name>
<custom-config key="receiver-playback">
<snd_device_name>mmi-receiver</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="receiver-playback">
<snd_device_name>mmi-receiver</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<priority>1</priority>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>24</bit_width>
<fractional_sr>1</fractional_sr>
<snd_device_name>headphones</snd_device_name>
<!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_PCM_OFFLOAD</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
-->
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>3</priority>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<priority>1</priority>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
<back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<bit_width>24</bit_width>
<fractional_sr>1</fractional_sr>
<snd_device_name>headphones</snd_device_name>
<!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
<usecase>
<name>PAL_STREAM_COMPRESSED</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_PCM_OFFLOAD</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
<usecase>
<name>PAL_STREAM_DEEP_BUFFER</name>
<custom-config key="hifi-filter_custom_key">
<snd_device_name>headphones-hifi-filter</snd_device_name>
</custom-config>
</usecase>
-->
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>3</priority>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<priority>1</priority>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
<back_end_name>BTFM_PROXY-RX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-a2dp</snd_device_name>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
<back_end_name>BTFM_PROXY-RX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-ble</snd_device_name>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
<back_end_name>BTFM_PROXY-RX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-ble</snd_device_name>
<samplerate>44100</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
<back_end_name>BTFM_PROXY-RX-0</back_end_name>
<max_channels>1</max_channels>
<channels>1</channels>
<snd_device_name>bt-sco</snd_device_name>
<samplerate>8000</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
<back_end_name>DISPLAY_PORT-RX-0</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<snd_device_name>display-port</snd_device_name>
<fractional_sr>1</fractional_sr>
<!--specify the supported bit format on DP end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_3LE</supported_bit_format>-->
<!--We support 24 bit for DP as of now, as SPF needs to conform to IEC 60958 packet format -->
<!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S24_3LE</supported_bit_format>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HDMI</id>
<back_end_name>DISPLAY_PORT-RX</back_end_name>
<max_channels>32</max_channels>
<channels>2</channels>
<fractional_sr>1</fractional_sr>
<snd_device_name>display-port</snd_device_name>
<!--specify the supported bit format on HDMI end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_3LE</supported_bit_format>-->
<!--We support 24 bit for HDMI as of now, as SPF needs to conform to IEC 60958 packet format -->
<!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S24_3LE</supported_bit_format>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_DEVICE</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<!-- liuhaituo@MULTIMEDIA.AUDIODRIVER.HAL, 2025/01/21, resolve 8634299 issue -->
<bit_width>24</bit_width>
<snd_device_name>usb-headphones</snd_device_name>
<fractional_sr>1</fractional_sr>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>3</priority>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<priority>1</priority>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_USB_HEADSET</id>
<back_end_name>USB_AUDIO-RX</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<!-- liuhaituo@MULTIMEDIA.AUDIODRIVER.HAL, 2025/01/21, resolve 8634299 issue -->
<bit_width>24</bit_width>
<snd_device_name>usb-headphones</snd_device_name>
<fractional_sr>1</fractional_sr>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
<usecase>
<name>PAL_STREAM_VOIP_RX</name>
<priority>3</priority>
</usecase>
<usecase>
<name>PAL_STREAM_LOOPBACK</name>
<custom-config key="oplus-hfp">
<priority>1</priority>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
<back_end_name>DISPLAY_PORT-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>display-port1</snd_device_name>
<fractional_sr>1</fractional_sr>
<!--specify the supported bit format on DP end point -->
<!--this should be in the form of pal_audio_fmt_id-->
<!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_3LE</supported_bit_format>-->
<!--We support 24 bit for DP as of now, as SPF needs to conform to IEC 60958 packet format -->
<!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
<supported_bit_format>PAL_AUDIO_FMT_PCM_S24_3LE</supported_bit_format>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_PROXY</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<fractional_sr>0</fractional_sr>
<samplerate>48000</samplerate>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_RECORD_PROXY</id>
<back_end_name>PCM_RT_PROXY-RX-2</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<fractional_sr>0</fractional_sr>
<samplerate>48000</samplerate>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HEARING_AID</id>
<back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
<max_channels>8</max_channels>
<channels>2</channels>
<snd_device_name>afe-proxy</snd_device_name>
<fractional_sr>0</fractional_sr>
<usecase>
<name>PAL_STREAM_VOICE_CALL</name>
<priority>1</priority>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
<back_end_name>CODEC_DMA-LPAIF_WSA2-RX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>haptics-dev</snd_device_name>
<haptics_protection_enabled>0</haptics_protection_enabled>
<usecase>
<name>PAL_STREAM_HAPTICS</name>
<custom-config key="haptics-over-wsa">
<backend_name>CODEC_DMA-LPAIF_WSA2-RX-1</backend_name>
<snd_device_name>haptics-dev</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</custom-config>
<custom-config key="haptics-low-battery">
<snd_device_name>haptics-dev-low-battery</snd_device_name>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_ULTRASOUND</id>
<back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>ultrasound-handset</snd_device_name>
<samplerate>96000</samplerate>
<bit_width>16</bit_width>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_ULTRASOUND_DEDICATED</id>
<back_end_name>MI2S-LPAIF-RX-SECONDARY</back_end_name>
<max_channels>2</max_channels>
<channels>1</channels>
<snd_device_name>handset</snd_device_name>
<samplerate>96000</samplerate>
<bit_width>16</bit_width>
<usecase>
<name>PAL_STREAM_SENSOR_PCM_RENDERER</name>
<custom-config key="stereo-spkr">
<snd_device_name>speaker</snd_device_name>
<channels>2</channels>
</custom-config>
<custom-config key="top-spkr">
<snd_device_name>handset</snd_device_name>
</custom-config>
<custom-config key="bottom-spkr">
<snd_device_name>speaker-mono-2</snd_device_name>
</custom-config>
</usecase>
</out-device>
<out-device>
<id>PAL_DEVICE_OUT_DUMMY</id>
<back_end_name>PCM_DUMMY-RX-0</back_end_name>
<max_channels>2</max_channels>
<channels>2</channels>
<snd_device_name>dummy-dev</snd_device_name>
<samplerate>48000</samplerate>
<bit_width>16</bit_width>
</out-device>
</device_profile>
<in_streams>
<in_stream>
<name>PAL_STREAM_VOIP_TX</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_DEEP_BUFFER</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_COMPRESSED</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_VOICE_UI</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_ACD</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_PROXY</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_RAW</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
<disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
<in_stream>
<name>PAL_STREAM_SENSOR_PCM_DATA</name>
<policies>
<ec_ref>
<disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
<disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
</ec_ref>
</policies>
</in_stream>
</in_streams>
<sound_trigger_platform_info>
<common_config>
<!-- Sound trigger streams common params -->
<param lpi_enable="true" />
<param support_nlpi_switch="true" />
<param support_device_switch="false" />
<param enable_debug_dumps="false" />
<param concurrent_capture="false" />
<param concurrent_voice_call="false" />
<param concurrent_voip_call="false" />
<param low_latency_bargein_enable="false" />
</common_config>
<capture_profile_list>
<!-- Common Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_HEADSET_FFECNS">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_FFECNS">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<!-- ACD Specific Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<!-- Sensor PCM Data Specific Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_RAW_LPI_TX_MACRO">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="ultrasound-mic" />
<param ec_ref="false" />
<param backend="tx_macro" />
</capture_profile>
<capture_profile name="DUAL_MIC_48KHZ_16BIT_RAW_LPI_TX_MACRO">
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="ultrasound-dmic" />
<param ec_ref="false" />
<param backend="tx_macro" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_RAW_LPI_NO_BUFFER_TX_MACRO">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="ultrasound-mic" />
<param ec_ref="false" />
<param backend="tx_macro" />
</capture_profile>
<capture_profile name="DUAL_MIC_48KHZ_16BIT_RAW_LPI_NO_BUFFER_TX_MACRO">
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="ultrasound-dmic" />
<param ec_ref="false" />
<param backend="tx_macro" />
</capture_profile>
<!-- SVA/Hotword Specific Profiles -->
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_HEADSET_RAW_NLPI">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_RAW_NLPI">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_48KHZ_16BIT_RAW_NLPI">
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="DUAL_MIC_48KHZ_16BIT_FFECNS">
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="DUAL_MIC_48KHZ_16BIT_BREENO_ECNS">
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="TRI_MIC_48KHZ_16BIT_FFECNS">
<param sample_rate="48000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="QUAD_MIC_48KHZ_16BIT_FFECNS">
<param sample_rate="48000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_NS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="va-mic-mono" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="16000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="DUAL_MIC_48KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="va-mic-dmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="16000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="TRI_MIC_48KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="48000" />
<param channels="3" />
<param bit_width="16" />
<param snd_name="va-mic-tmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="16000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="QUAD_MIC_48KHZ_16BIT_CUSTOM_ECNS">
<param sample_rate="48000" />
<param channels="4" />
<param bit_width="16" />
<param snd_name="va-mic-qmic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic-lpi" />
<param ec_ref="false" />
</capture_profile>
<capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
<param sample_rate="16000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_MIC_48KHZ_16BIT_HEADSET_CUSTOM_ECNS">
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-va-mic" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="DUAL_HANDSET_MIC_48KHZ_16BIT_FFECNS">
<param device_id="PAL_DEVICE_IN_HANDSET_MIC" />
<param sample_rate="48000" />
<param channels="2" />
<param bit_width="16" />
<param snd_name="handset-dmic-endfire" />
<param ec_ref="true" />
</capture_profile>
<capture_profile name="SINGLE_HEADSET_MIC_48KHZ_16BIT_FFECNS">
<param device_id="PAL_DEVICE_IN_WIRED_HEADSET" />
<param sample_rate="48000" />
<param channels="1" />
<param bit_width="16" />
<param snd_name="headset-mic" />
<param ec_ref="true" />
</capture_profile>
</capture_profile_list>
<acd_platform_info>
<config>
<param acd_enable="false" />
</config>
<!-- ACD -->
<stream_config>
<name>QC_ACD</name>
<param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
<high_performance capture_profile_handset="SINGLE_MIC_48KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_FFECNS" />
</operating_modes>
<sound_model_info>
<sound_model>
<name>ACD_SOUND_MODEL_ID_EVENT</name>
<bin>event.eai</bin>
<uuid>0x0B001007</uuid>
<contexts>
<context id="0x0800132D" /> <!-- EVENT_ALARM -->
<context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
<context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
<context id="0x08001330" /> <!-- EVENT_DOORBELL -->
<context id="0x08001331" /> <!-- EVENT_DOOROPENCLOSE -->
<context id="0x08001332" /> <!-- EVENT_CRASH -->
<context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
<context id="0x08001334" /> <!-- EVENT_SIREN -->
<context id="0x080013CC" /> <!-- EVENT_CARHONK -->
<context id="0x080013CD" /> <!-- EVENT_GUNSHOT -->
<context id="0x080013CE" /> <!-- EVENT_PHONERING -->
<context id="0x080013CF" /> <!-- EVENT_SLEEPAPNEA -->
<context id="0x080013D0" /> <!-- EVENT_SNORING -->
<context id="0x080013D1" /> <!-- EVENT_CATMEOW -->
<context id="0x080013D2" /> <!-- EVENT_DOORKNOCK -->
<context id="0x080013D3" /> <!-- EVENT_WATERFLOW -->
<context id="0x080013D4" /> <!-- EVENT_FIREALARM -->
</contexts>
</sound_model>
<sound_model>
<name>ACD_SOUND_MODEL_ID_SPEECH</name>
<bin>speech.eai</bin>
<uuid>0x0B001008</uuid>
<contexts>
<context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
</contexts>
</sound_model>
<sound_model>
<name>ACD_SOUND_MODEL_ID_MUSIC</name>
<bin>music.eai</bin>
<uuid>0x0B001009</uuid>
<contexts>
<context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
</contexts>
</sound_model>
<sound_model>
<name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
<bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
<uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
<contexts>
<context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
<context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
<context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
<context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
</contexts>
</sound_model>
</sound_model_info>
</stream_config>
<!-- Sensor PCM Data -->
<stream_config>
<name>QC_SENSOR_PCM_DATA</name>
<param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
<low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
<low_power_tx_macro capture_profile_handset="DUAL_MIC_48KHZ_16BIT_RAW_LPI_NO_BUFFER_TX_MACRO" />
<high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
<high_performance_ns capture_profile_handset="SINGLE_MIC_48KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_FFECNS" />
</operating_modes>
</stream_config>
</acd_platform_info>
<!-- Voice UI -->
<vui_platform_info>
<config>
<!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
<param version="0x0103" />
<param enable_failure_detection="false" />
<param notify_second_stage_failure="false" />
<param mmap_enable="true" />
<param mmap_buffer_duration="5000" />
<!-- 5ms duration of data -->
<param mmap_frame_length="5" />
<!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
<param transit_to_non_lpi_on_charging="false" />
</config>
<!-- Multiple stream_config tags can be listed, each with unique -->
<!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
<!-- configuration. ISV must use their own unique vendor_uuid. -->
<stream_config>
<name>QC_VOICE_UI</name>
<param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
<param merge_first_stage_sound_models="false" />
<!-- Property for extended detection payload, disabled by default -->
<!-- OEM can enable this by adding properties defined in SoundTriggerUtils.h-->
<!-- Example: param detection_property_list="0x10001,0x10002,0x10003,0x10004"-->
<param detection_property_list="" />
<!--For now total 3 engines are supported, if more engine instances are needed,-->
<!-- do update acdb and usecaseKvManager.xml files by adding more instances -->
<param pdk_first_stage_max_engine_count="1"/>
<param enable_concurrent_event_capture="true" />
<!-- Profile specific data which the algorithm can support -->
<param capture_keyword="2000" /> <!-- Default history buffer length -->
<param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
<param pre_roll_duration="500" /> <!-- Default preroll duration -->
<!-- durations in us -->
<param kw_start_tolerance="360000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="480000" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
<high_performance capture_profile_handset="DUAL_MIC_48KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_FFECNS" />
<high_performance_and_charging capture_profile_handset="DUAL_MIC_48KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_FFECNS" />
</operating_modes>
<sound_model_info>
<first_stage_module_params>
<param module_type="GMM" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
<first_stage_module_params>
<param module_type="PDK" />
<param load_sound_model_ids="0xC0000008, 0x0800124E" />
<param unload_sound_model_ids="0xC0000008, 0x08001250" />
<param wakeup_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x0800124F" />
<param engine_per_model_reset_ids="0xC0000008, 0x080014ED" />
</first_stage_module_params>
<arm_ss_module_params>
<!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x2" />
<param module_lib="libcapiv2svacnnvendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
<arm_ss_module_params>
<param sm_detection_type= "USER_VERIFICATION" />
<param sm_id="0x4" />
<param module_lib="libcapiv2uvvendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
<arm_ss_module_params>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x8" />
<param module_lib="libcapiv2svarnnvendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
<arm_ss_module_params>
<param sm_detection_type= "KEYWORD_DETECTION" />
<param sm_id="0x40" />
<param module_lib="libcapiv2udk7vendor.so" />
<param sample_rate="16000" />
<param bit_width="16" />
<param channel_count="1" />
</arm_ss_module_params>
</sound_model_info>
</stream_config>
<!-- Hotword Voice UI-->
<stream_config>
<name>HOTWORD_VOICE_UI</name>
<param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
<param interface_plugin_lib="libhotword_intf.so" />
<param get_module_version="false" />
<param merge_first_stage_sound_models="false" />
<param capture_keyword="2000" />
<param client_capture_read_delay="2000" />
<param kw_start_tolerance="100" />
<param kw_end_tolerance="100" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
<high_performance capture_profile_handset="DUAL_MIC_48KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_RAW_NLPI" />
<high_performance_and_charging capture_profile_handset="DUAL_MIC_48KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_RAW_NLPI" />
</operating_modes>
<sound_model_info>
<first_stage_module_params>
<param module_type="HOTWORD" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param unload_sound_model_ids="0xC0000008, 0x00012C15" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param version_ids="0xC0000008, 0x18000101" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
</sound_model_info>
</stream_config>
<!-- CUSTOM Voice UI-->
<stream_config>
<name>CUSTOM_VOICE_UI</name>
<!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
<param vendor_uuid="c51c508a-ee1b-11ec-8ea0-0242ac120002" />
<param interface_plugin_lib="libcustomva_intf.so" />
<param merge_first_stage_sound_models="false" />
<!-- Profile specific data which the algorithm can support -->
<param capture_keyword="2000" /> <!-- Default history buffer length -->
<param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
<param pre_roll_duration="500" /> <!-- Default preroll duration -->
<!-- durations in us -->
<param kw_start_tolerance="360000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="480000" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="1" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
<high_performance capture_profile_handset="DUAL_MIC_48KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
<high_performance_and_charging capture_profile_handset="DUAL_MIC_48KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
</operating_modes>
<sound_model_info>
<first_stage_module_params>
<param module_type="CUSTOM1" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param custom_config_ids="0xC0000008, 0x08001049" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
</sound_model_info>
</stream_config>
<!-- Breeno Voice UI-->
<stream_config>
<name>BREENO_VOICE_UI</name>
<!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
<param vendor_uuid="68ac2d41-e861-11e4-95ed-0002a5d5c51c" />
<param interface_plugin_lib="libcustomva_intf.so" />
<param merge_first_stage_sound_models="false" />
<!-- Profile specific data which the algorithm can support -->
<param capture_keyword="2000" /> <!-- Default history buffer length -->
<param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
<param pre_roll_duration="500" /> <!-- Default preroll duration -->
<!-- durations in us -->
<param kw_start_tolerance="360000" />
<param kw_end_tolerance="240000" />
<param data_before_kw_start="360000" />
<param data_after_kw_end="480000" />
<param sample_rate="16000" />
<param bit_width="16" />
<!-- Module output channels -->
<param out_channels="2" />
<operating_modes>
<low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
<high_performance capture_profile_handset="DUAL_MIC_48KHZ_16BIT_BREENO_ECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
<high_performance_and_charging capture_profile_handset="DUAL_MIC_48KHZ_16BIT_BREENO_ECNS" capture_profile_headset="SINGLE_MIC_48KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
</operating_modes>
<sound_model_info>
<first_stage_module_params>
<param module_type="CUSTOM1" />
<param load_sound_model_ids="0xC0000008, 0x0800104C" />
<param custom_config_ids="0xC0000008, 0x0800119B" />
<param buffering_config_ids="0xC0000008, 0x08001044" />
<param engine_reset_ids="0xC0000008, 0x08001051" />
</first_stage_module_params>
</sound_model_info>
</stream_config>
</vui_platform_info>
</sound_trigger_platform_info>
</resource_manager_info>