> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PAL Defs

**Header:** `inc/PalDefs.h`

## Structures

### `aac_enc_cfg`

**Members**

<ParamField path="aac_enc_mode" type="uint16_t">
  AAC encoder mode.
</ParamField>

<ParamField path="aac_fmt_flag" type="uint16_t">
  AAC format flag.
</ParamField>

### `pal_snd_enc_aac`

**Members**

<ParamField path="aac_bit_rate" type="uint32_t" />

<ParamField path="global_cutoff_freq" type="uint32_t" />

<ParamField path="enc_cfg" type="struct aac_enc_cfg" />

### `pal_snd_dec_aac`

**Members**

<ParamField path="audio_obj_type" type="uint16_t" />

<ParamField path="pce_bits_size" type="uint16_t" />

### `pal_snd_dec_wma`

**Members**

<ParamField path="fmt_tag" type="uint32_t" />

<ParamField path="super_block_align" type="uint32_t" />

<ParamField path="bits_per_sample" type="uint32_t" />

<ParamField path="channelmask" type="uint32_t" />

<ParamField path="encodeopt" type="uint32_t" />

<ParamField path="encodeopt1" type="uint32_t" />

<ParamField path="encodeopt2" type="uint32_t" />

<ParamField path="avg_bit_rate" type="uint32_t" />

### `pal_snd_dec_alac`

**Members**

<ParamField path="frame_length" type="uint32_t" />

<ParamField path="compatible_version" type="uint8_t" />

<ParamField path="bit_depth" type="uint8_t" />

<ParamField path="pb" type="uint8_t" />

<ParamField path="mb" type="uint8_t" />

<ParamField path="kb" type="uint8_t" />

<ParamField path="num_channels" type="uint8_t" />

<ParamField path="max_run" type="uint16_t" />

<ParamField path="max_frame_bytes" type="uint32_t" />

<ParamField path="avg_bit_rate" type="uint32_t" />

<ParamField path="sample_rate" type="uint32_t" />

<ParamField path="channel_layout_tag" type="uint32_t" />

### `pal_snd_dec_ape`

**Members**

<ParamField path="compatible_version" type="uint16_t" />

<ParamField path="compression_level" type="uint16_t" />

<ParamField path="format_flags" type="uint32_t" />

<ParamField path="blocks_per_frame" type="uint32_t" />

<ParamField path="final_frame_blocks" type="uint32_t" />

<ParamField path="total_frames" type="uint32_t" />

<ParamField path="bits_per_sample" type="uint16_t" />

<ParamField path="num_channels" type="uint16_t" />

<ParamField path="sample_rate" type="uint32_t" />

<ParamField path="seek_table_present" type="uint32_t" />

### `pal_snd_dec_flac`

**Members**

<ParamField path="sample_size" type="uint16_t" />

<ParamField path="min_blk_size" type="uint16_t" />

<ParamField path="max_blk_size" type="uint16_t" />

<ParamField path="min_frame_size" type="uint16_t" />

<ParamField path="max_frame_size" type="uint16_t" />

### `pal_snd_dec_vorbis`

**Members**

<ParamField path="bit_stream_fmt" type="uint32_t" />

### `pal_snd_dec_opus`

**Members**

<ParamField path="bitstream_format" type="uint16_t" />

<ParamField path="payload_type" type="uint16_t" />

<ParamField path="version" type="uint8_t" />

<ParamField path="num_channels" type="uint8_t" />

<ParamField path="pre_skip" type="uint16_t" />

<ParamField path="sample_rate" type="uint32_t" />

<ParamField path="output_gain" type="uint16_t" />

<ParamField path="mapping_family" type="uint8_t" />

<ParamField path="stream_count" type="uint8_t" />

<ParamField path="coupled_count" type="uint8_t" />

<ParamField path="channel_map" type="uint8_t" />

### `pal_haptics_payload`

**Members**

<ParamField path="operationMode" type="pal_haptics_mode" />

### `pal_spkr_prot_payload`

**Members**

<ParamField path="spkrHeatupTime" type="uint32_t" />

<ParamField path="operationModeRunTime" type="uint32_t" />

<ParamField path="operationMode" type="pal_spkr_prot_mode" />

### `pal_snd_dec_t`

Audio parameter data.

**Members**

<ParamField path="aac_dec" type="struct pal_snd_dec_aac" />

<ParamField path="wma_dec" type="struct pal_snd_dec_wma" />

<ParamField path="alac_dec" type="struct pal_snd_dec_alac" />

<ParamField path="ape_dec" type="struct pal_snd_dec_ape" />

<ParamField path="flac_dec" type="struct pal_snd_dec_flac" />

<ParamField path="vorbis_dec" type="struct pal_snd_dec_vorbis" />

<ParamField path="opus_dec" type="struct pal_snd_dec_opus" />

### `pal_snd_enc_t`

Audio encoder parameter data.

**Members**

<ParamField path="aac_enc" type="struct pal_snd_enc_aac" />

### `pal_param_payload_s`

Audio parameter data.

**Members**

<ParamField path="payload_size" type="uint32_t" />

<ParamField path="payload" type="uint8_t" />

### `pal_channel_info`

Audio channel info data structure.

**Members**

<ParamField path="channels" type="uint16_t">
  number of channels
</ParamField>

<ParamField path="ch_map" type="uint8_t">
  ch\_map value per channel.
</ParamField>

### `pal_stream_info`

**Members**

<ParamField path="version" type="int64_t" />

<ParamField path="size" type="int64_t">
  version of structure
</ParamField>

<ParamField path="duration_us" type="int64_t">
  size of structure
</ParamField>

<ParamField path="has_video" type="bool">
  duration in microseconds, -1 if unknown
</ParamField>

<ParamField path="is_streaming" type="bool">
  optional, true if stream is tied to a video stream
</ParamField>

<ParamField path="loopback_type" type="int32_t">
  true if streaming, false if local playback
</ParamField>

<ParamField path="tx_proxy_type" type="int32_t">
  used only if stream\_type is LOOPBACK.
</ParamField>

<ParamField path="rx_proxy_type" type="int32_t">
  enums defined in enum pal\_stream\_proxy\_tx\_types
</ParamField>

<ParamField path="haptics_type" type="int32_t">
  enums defined in enum pal\_stream\_proxy\_rx\_types
</ParamField>

<ParamField path="isBitPerfect" type="bool">
  enums defined in enum pal\_sream\_haptics\_types
</ParamField>

### `pal_voice_record_info`

**Members**

<ParamField path="version" type="int64_t" />

<ParamField path="size" type="int64_t">
  version of structure
</ParamField>

<ParamField path="record_direction" type="pal_incall_record_direction">
  size of structure
</ParamField>

### `pal_voice_call_info`

**Members**

<ParamField path="VSID" type="uint32_t" />

<ParamField path="tty_mode" type="uint32_t" />

### `pal_incall_music_info`

**Members**

<ParamField path="local_playback" type="bool" />

<ParamField path="music_dir" type="pal_incall_music_direction" />

### `pal_hpcm_stream_info`

**Members**

<ParamField path="hpcm_stream_type" type="pal_hpcm_stream_type_t" />

### `pal_stream_info_t`

**Members**

<ParamField path="opt_stream_info" type="struct pal_stream_info" />

<ParamField path="voice_rec_info" type="struct pal_voice_record_info" />

<ParamField path="voice_call_info" type="struct pal_voice_call_info" />

<ParamField path="incall_music_info" type="struct pal_incall_music_info" />

<ParamField path="hpcm_stream_info" type="struct pal_hpcm_stream_info" />

### `pal_media_config`

Media configuraiton.

**Members**

<ParamField path="sample_rate" type="uint32_t">
  sample rate
</ParamField>

<ParamField path="bit_width" type="uint32_t">
  bit width
</ParamField>

<ParamField path="aud_fmt_id" type="pal_audio_fmt_t">
  audio format id
</ParamField>

<ParamField path="ch_info" type="struct pal_channel_info">
  channel info
</ParamField>

### `dynamic_media_config`

**Members**

<ParamField path="sample_rate" type="uint32_t">
  sample rate
</ParamField>

<ParamField path="format" type="uint32_t">
  format
</ParamField>

<ParamField path="mask" type="uint32_t">
  channel mask
</ParamField>

<ParamField path="jack_status" type="bool">
  input/output jack status
</ParamField>

### `pal_stream_attributes`

Key value pair to identify the topology of a usecase from default

**Members**

<ParamField path="type" type="pal_stream_type_t">
  stream type
</ParamField>

<ParamField path="info" type="pal_stream_info_t">
  stream info
</ParamField>

<ParamField path="flags" type="pal_stream_flags_t">
  stream flags
</ParamField>

<ParamField path="direction" type="pal_stream_direction_t">
  direction of the streams
</ParamField>

<ParamField path="in_media_config" type="struct pal_media_config">
  media config of the input audio samples
</ParamField>

<ParamField path="out_media_config" type="struct pal_media_config">
  media config of the output audio samples
</ParamField>

<ParamField path="address" type="char *">
  address
</ParamField>

### `modifier_kv`

**Members**

<ParamField path="key" type="uint32_t" />

<ParamField path="value" type="uint32_t" />

### `pal_extern_alloc_buff_info`

**Members**

<ParamField path="alloc_handle" type="int">
  unique memory handle identifying extern mem allocation
</ParamField>

<ParamField path="alloc_size" type="uint32_t">
  size of external allocation
</ParamField>

<ParamField path="offset" type="uint32_t">
  offset of buffer within extern allocation
</ParamField>

### `pal_buffer`

PAL buffer structure used for reading/writing buffers from/to the stream.

**Members**

<ParamField path="buffer" type="uint8_t *">
  buffer pointer
</ParamField>

<ParamField path="size" type="size_t">
  number of bytes
</ParamField>

<ParamField path="offset" type="size_t">
  offset in buffer from where valid byte starts
</ParamField>

<ParamField path="ts" type="struct timespec *">
  timestmap
</ParamField>

<ParamField path="flags" type="uint32_t">
  flags
</ParamField>

<ParamField path="metadata_size" type="size_t">
  size of metadata buffer in bytes
</ParamField>

<ParamField path="metadata" type="uint8_t *">
  metadata buffer.
</ParamField>

<ParamField path="alloc_info" type="pal_extern_alloc_buff_info_t">
  holds info for extern buff
</ParamField>

<ParamField path="frame_index" type="uint64_t">
  frame index of the buffer
</ParamField>

### `pal_clbk_buffer_info`

**Members**

<ParamField path="frame_index" type="uint64_t">
  frame index of the buffer
</ParamField>

<ParamField path="sample_rate" type="uint32_t">
  updated sample rate
</ParamField>

<ParamField path="bit_width" type="uint32_t">
  updated bit width
</ParamField>

<ParamField path="channel_count" type="uint16_t">
  updated channel count
</ParamField>

### `pal_callback_buffer`

**Members**

<ParamField path="buffer" type="uint8_t *">
  buffer pointer
</ParamField>

<ParamField path="size" type="size_t">
  filled length of the buffer
</ParamField>

<ParamField path="ts" type="struct timespec *">
  timestamp
</ParamField>

<ParamField path="status" type="uint32_t">
  status of callback payload
</ParamField>

<ParamField path="cb_buf_info" type="struct pal_clbk_buffer_info">
  callback buffer info
</ParamField>

### `pal_mmap_buffer`

PAL buffer structure used for reading/writing buffers from/to the stream.

**Members**

<ParamField path="buffer" type="void *">
  base address of mmap memory buffer, for use by local proces only
</ParamField>

<ParamField path="fd" type="int32_t">
  fd for mmap memory buffer
</ParamField>

<ParamField path="buffer_size_frames" type="uint32_t">
  total buffer size in frames
</ParamField>

<ParamField path="burst_size_frames" type="uint32_t">
  transfer size granularity in frames
</ParamField>

<ParamField path="flags" type="pal_mmap_buffer_flags_t">
  Attributes describing the buffer.
</ParamField>

### `pal_mmap_position`

Mmap buffer read/write position returned by GetMmapPosition.

**Members**

<ParamField path="time_nanoseconds" type="int64_t">
  timestamp in ns, CLOCK\_MONOTONIC
</ParamField>

<ParamField path="position_frames" type="int32_t">
  increasing 32 bit frame count reset when stop() is called
</ParamField>

### `pal_channel_vol_kv`

channel mask and volume pair

**Members**

<ParamField path="channel_mask" type="uint32_t">
  channel mask
</ParamField>

<ParamField path="vol" type="float">
  gain of the channel mask
</ParamField>

### `pal_volume_data`

Volume data strucutre defintion used as argument for volume command.

**Members**

<ParamField path="no_of_volpair" type="uint32_t">
  no of volume pairs
</ParamField>

<ParamField path="volume_pair" type="struct pal_channel_vol_kv">
  channel mask and volume pair
</ParamField>

### `pal_gain_data`

Gain data strucutre defintion used as argument for gain command.

**Members**

<ParamField path="gain" type="uint16_t" />

<ParamField path="reserved" type="uint16_t">
  Gain value in q13 format.
</ParamField>

### `pal_time_us`

**Members**

<ParamField path="value_lsw" type="uint32_t" />

<ParamField path="value_msw" type="uint32_t">
  Lower 32 bits of 64 bit time value in microseconds.
</ParamField>

### `pal_session_time`

Timestamp strucutre defintion used as argument for gettimestamp api.

**Members**

<ParamField path="session_time" type="struct pal_time_us" />

<ParamField path="absolute_time" type="struct pal_time_us">
  Value of the current session time in microseconds.
</ParamField>

<ParamField path="timestamp" type="struct pal_time_us">
  Value of the absolute time in microseconds.
</ParamField>

### `pal_param_proxy_channel_config`

Audio parameter data.

**Members**

<ParamField path="num_proxy_channels" type="uint32_t" />

### `pal_param_context_list`

**Members**

<ParamField path="num_contexts" type="uint32_t" />

<ParamField path="context_id" type="uint32_t" />

### `pal_param_disp_port_config_params`

**Members**

<ParamField path="controller" type="int" />

<ParamField path="stream" type="int" />

### `pal_usb_device_address`

**Members**

<ParamField path="card_id" type="int" />

<ParamField path="device_num" type="int" />

### `pal_device_config_t`

**Members**

<ParamField path="dp_config" type="struct pal_param_disp_port_config_params" />

<ParamField path="usb_addr" type="struct pal_usb_device_address" />

### `pal_amp_db_and_gain_table`

**Members**

<ParamField path="amp" type="float" />

<ParamField path="db" type="float" />

<ParamField path="level" type="uint32_t" />

### `pal_vol_ctrl_ramp_param`

**Members**

<ParamField path="ramp_period_ms" type="uint32_t" />

### `pal_device_custom_config`

**Members**

<ParamField path="custom_key" type="char" />

### `pal_address_type_t`

Structure to hold various types of device addresses.

**Members**

<ParamField path="id" type="char" />

<ParamField path="mac" type="uint8_t" />

<ParamField path="ipv4" type="uint8_t" />

<ParamField path="ipv6" type="uint32_t" />

<ParamField path="alsa" type="uint32_t" />

### `pal_device`

**Members**

<ParamField path="id" type="pal_device_id_t">
  device id
</ParamField>

<ParamField path="config" type="struct pal_media_config">
  media config of the device
</ParamField>

<ParamField path="address" type="struct pal_usb_device_address" />

<ParamField path="sndDevName" type="char" />

<ParamField path="custom_config" type="pal_device_custom_config_t">
  Optional.
</ParamField>

<ParamField path="addressV1" type="pal_address_type_t" />

### `pal_param_device_connection`

**Members**

<ParamField path="id" type="pal_device_id_t" />

<ParamField path="connection_state" type="bool" />

<ParamField path="device_config" type="pal_device_config_t" />

<ParamField path="device" type="struct pal_device" />

### `pal_param_gain_lvl_map`

**Members**

<ParamField path="mapping_tbl" type="struct pal_amp_db_and_gain_table *" />

<ParamField path="table_size" type="int" />

<ParamField path="filled_size" type="int" />

### `pal_param_gain_lvl_cal`

**Members**

<ParamField path="level" type="int" />

### `pal_param_mspp_linear_gain`

**Members**

<ParamField path="gain" type="int32_t" />

### `pal_param_playback_rate`

**Members**

<ParamField path="speed" type="float" />

<ParamField path="pitch" type="float" />

### `pal_param_device_capability`

**Members**

<ParamField path="id" type="pal_device_id_t" />

<ParamField path="addr" type="struct pal_usb_device_address" />

<ParamField path="is_playback" type="bool" />

<ParamField path="config" type="struct dynamic_media_config *" />

### `pal_param_screen_state`

**Members**

<ParamField path="screen_state" type="bool" />

### `pal_param_charging_state`

**Members**

<ParamField path="charging_state" type="bool" />

### `pal_param_charger_state`

**Members**

<ParamField path="is_charger_online" type="bool" />

<ParamField path="is_concurrent_boost_enable" type="bool" />

### `pal_param_st_capture_info`

**Members**

<ParamField path="capture_handle" type="int" />

<ParamField path="pal_handle" type="pal_stream_handle_t *" />

### `pal_param_resources_available`

**Members**

<ParamField path="callback" type="void *" />

<ParamField path="cookie" type="uint64_t" />

### `pal_param_device_rotation`

**Members**

<ParamField path="rotation_type" type="pal_speaker_rotation_type" />

### `pal_param_uhqa_state`

**Members**

<ParamField path="uhqa_state" type="bool" />

### `pal_param_haptics_cnfg_t`

**Members**

<ParamField path="mode" type="pal_stream_haptics_type_t" />

<ParamField path="effect_id" type="int16_t" />

<ParamField path="amplitude" type="float" />

<ParamField path="strength" type="int16_t" />

<ParamField path="time" type="int32_t" />

<ParamField path="ch_mask" type="int16_t" />

<ParamField path="isCompose" type="bool" />

<ParamField path="buffer_size" type="int32_t" />

<ParamField path="buffer_ptr" type="uint8_t *" />

### `btsco_lc3_cfg`

**Members**

<ParamField path="fields_map" type="uint32_t" />

<ParamField path="rxconfig_index" type="uint32_t" />

<ParamField path="txconfig_index" type="uint32_t" />

<ParamField path="api_version" type="uint32_t" />

<ParamField path="frame_duration" type="uint32_t" />

<ParamField path="num_blocks" type="uint32_t" />

<ParamField path="mode" type="uint32_t" />

<ParamField path="streamMap" type="char" />

<ParamField path="vendor" type="char" />

### `pal_param_btsco`

**Members**

<ParamField path="bt_sco_on" type="bool" />

<ParamField path="bt_wb_speech_enabled" type="bool" />

<ParamField path="bt_sco_nrec" type="bool" />

<ParamField path="bt_swb_speech_mode" type="int" />

<ParamField path="bt_lc3_speech_enabled" type="bool" />

<ParamField path="lc3_cfg" type="btsco_lc3_cfg_t" />

<ParamField path="is_bt_hfp" type="bool" />

### `pal_param_bta2dp`

**Members**

<ParamField path="reconfig_supported" type="int32_t" />

<ParamField path="reconfig" type="bool" />

<ParamField path="a2dp_suspended" type="bool" />

<ParamField path="a2dp_capture_suspended" type="bool" />

<ParamField path="is_tws_mono_mode_on" type="bool" />

<ParamField path="is_lc3_mono_mode_on" type="bool" />

<ParamField path="is_force_switch" type="bool" />

<ParamField path="latency" type="uint32_t" />

<ParamField path="dev_id" type="pal_device_id_t" />

<ParamField path="is_suspend_setparam" type="bool" />

<ParamField path="is_in_call" type="bool" />

### `pal_param_latency_mode`

**Members**

<ParamField path="dev_id" type="pal_device_id_t" />

<ParamField path="num_modes" type="size_t" />

<ParamField path="modes" type="uint32_t" />

### `pal_param_upd_event_detection`

**Members**

<ParamField path="register_status" type="bool" />

### `pal_bt_tws_payload_s`

**Members**

<ParamField path="isTwsMonoModeOn" type="bool" />

<ParamField path="codecFormat" type="uint32_t" />

### `pal_param_dtmf_detection_cfg`

**Members**

<ParamField path="enable" type="uint16_t" />

<ParamField path="dir" type="pal_stream_direction_t" />

### `pal_param_dtmf_gen_tone_cfg`

**Members**

<ParamField path="dir" type="pal_stream_direction_t" />

<ParamField path="high_freq" type="uint16_t" />

<ParamField path="low_freq" type="uint16_t" />

<ParamField path="gain" type="uint16_t" />

<ParamField path="duration_ms" type="int32_t" />

### `pal_bt_lc3_payload_s`

**Members**

<ParamField path="isLC3MonoModeOn" type="bool" />

### `pal_param_haptics_intensity`

**Members**

<ParamField path="intensity" type="int" />

### `pal_sound_dose_info`

payload for Sound Dose Info

**Members**

<ParamField path="device" type="struct pal_device" />

<ParamField path="is_momentary_exposure_warning" type="uint32_t" />

<ParamField path="num_mel_values" type="uint32_t" />

<ParamField path="mel_values" type="float" />

<ParamField path="timestamp" type="uint64_t" />

### `st_uuid`

**Members**

<ParamField path="timeLow" type="uint32_t" />

<ParamField path="timeMid" type="uint16_t" />

<ParamField path="timeHiAndVersion" type="uint16_t" />

<ParamField path="clockSeq" type="uint16_t" />

<ParamField path="node" type="uint8_t" />

### `pal_st_properties`

sound trigger implementation descriptor read by the framework via get\_properties().

**Members**

<ParamField path="implementor" type="int8_t" />

<ParamField path="description" type="int8_t" />

<ParamField path="version" type="uint32_t" />

<ParamField path="uuid" type="struct st_uuid" />

<ParamField path="max_sound_models" type="uint32_t" />

<ParamField path="max_key_phrases" type="uint32_t" />

<ParamField path="max_users" type="uint32_t" />

<ParamField path="recognition_modes" type="uint32_t" />

<ParamField path="capture_transition" type="bool" />

<ParamField path="max_buffer_ms" type="uint32_t" />

<ParamField path="concurrent_capture" type="bool" />

<ParamField path="trigger_in_event" type="bool" />

<ParamField path="power_consumption_mw" type="uint32_t" />

### `pal_st_phrase`

key phrase descriptor

**Members**

<ParamField path="id" type="uint32_t">
  keyphrase ID
</ParamField>

<ParamField path="recognition_mode" type="uint32_t">
  recognition modes supported by this key phrase
</ParamField>

<ParamField path="num_users" type="uint32_t">
  number of users in the key phrase
</ParamField>

<ParamField path="users" type="uint32_t">
  users ids: (not uid\_t but sound trigger specific IDs
</ParamField>

<ParamField path="locale" type="char">
  locale - JAVA Locale style (e.g.
</ParamField>

<ParamField path="text" type="char">
  phrase text in UTF-8 format.
</ParamField>

### `pal_st_confidence_level`

**Members**

<ParamField path="user_id" type="uint32_t" />

<ParamField path="level" type="uint32_t" />

### `pal_st_phrase_recognition_extra`

Specialized recognition event for key phrase detection.

**Members**

<ParamField path="id" type="uint32_t" />

<ParamField path="recognition_modes" type="uint32_t" />

<ParamField path="confidence_level" type="uint32_t" />

<ParamField path="num_levels" type="uint32_t" />

<ParamField path="levels" type="struct pal_st_confidence_level" />

### `pal_st_recognition_event`

**Members**

<ParamField path="status" type="int32_t">
  recognition status e.g.
</ParamField>

<ParamField path="type" type="pal_st_sound_model_type_t">
  event type, same as sound model type.
</ParamField>

<ParamField path="st_handle" type="pal_st_handle_t *">
  handle of sound trigger session
</ParamField>

<ParamField path="capture_available" type="bool">
  it is possible to capture audio from this utterance buffered by the implementation
</ParamField>

<ParamField path="capture_session" type="int32_t">
  audio session ID.
</ParamField>

<ParamField path="capture_delay_ms" type="int32_t">
  delay in ms between end of model detection and start of audio available for capture.
</ParamField>

<ParamField path="capture_preamble_ms" type="int32_t">
  duration in ms of audio captured before the start of the trigger.
</ParamField>

<ParamField path="trigger_in_data" type="bool">
  the opaque data is the capture of the trigger sound
</ParamField>

<ParamField path="media_config" type="struct pal_media_config">
  media format of either the trigger in event data or to use for capture of the rest of the utterance
</ParamField>

<ParamField path="data_size" type="uint32_t">
  size of opaque event data
</ParamField>

<ParamField path="data_offset" type="uint32_t">
  offset of opaque data start from start of this struct (e.g sizeof struct sound\_trigger\_phrase\_recognition\_event)
</ParamField>

### `pal_st_recognition_config`

**Members**

<ParamField path="capture_handle" type="int32_t">
  IO handle that will be used for capture.
</ParamField>

<ParamField path="capture_device" type="uint32_t">
  input device requested for detection capture
</ParamField>

<ParamField path="capture_requested" type="bool">
  capture and buffer audio for this recognition instance
</ParamField>

<ParamField path="num_phrases" type="uint32_t">
  number of key phrases recognition extras
</ParamField>

<ParamField path="phrases" type="struct pal_st_phrase_recognition_extra">
  configuration for each key phrase
</ParamField>

<ParamField path="callback" type="pal_st_recognition_callback_t">
  callback for recognition events
</ParamField>

<ParamField path="cookie" type="uint8_t *">
  cookie set from client
</ParamField>

<ParamField path="data_size" type="uint32_t">
  size of opaque capture configuration data
</ParamField>

<ParamField path="data_offset" type="uint32_t">
  offset of opaque data start from start of this struct (e.g sizeof struct sound\_trigger\_recognition\_config)
</ParamField>

### `pal_st_phrase_recognition_event`

**Members**

<ParamField path="common" type="struct pal_st_recognition_event" />

<ParamField path="num_phrases" type="uint32_t" />

<ParamField path="phrase_extras" type="struct pal_st_phrase_recognition_extra" />

### `pal_st_generic_recognition_event`

**Members**

<ParamField path="common" type="struct pal_st_recognition_event" />

### `detection_engine_config_voice_wakeup`

**Members**

<ParamField path="mode" type="uint16_t" />

<ParamField path="custom_payload_size" type="uint16_t" />

<ParamField path="num_active_models" type="uint8_t" />

<ParamField path="reserved" type="uint8_t" />

<ParamField path="confidence_levels" type="uint8_t" />

<ParamField path="keyword_user_enables" type="uint8_t" />

### `detection_engine_config_stage1_pdk`

**Members**

<ParamField path="mode" type="uint16_t" />

<ParamField path="custom_payload_size" type="uint16_t" />

<ParamField path="model_id" type="uint32_t" />

<ParamField path="num_keywords" type="uint32_t" />

<ParamField path="confidence_levels" type="uint32_t" />

### `detection_engine_multi_model_buffering_config`

**Members**

<ParamField path="model_id" type="uint32_t" />

<ParamField path="hist_buffer_duration_in_ms" type="uint32_t" />

<ParamField path="pre_roll_duration_in_ms" type="uint32_t" />

### `ffv_doa_tracking_monitor_t`

**Members**

<ParamField path="target_angle_L16" type="int16_t" />

<ParamField path="interf_angle_L16" type="int16_t" />

<ParamField path="polarActivityGUI" type="int8_t" />

### `pal_asr_model`

Payload for ID : PAL\_PARAM\_ID\_ASR\_MODEL.

**Members**

<ParamField path="vendor_uuid" type="struct st_uuid">
  Unique vendor ID.
</ParamField>

<ParamField path="fd" type="int32_t">
  ASR model.
</ParamField>

<ParamField path="size" type="uint32_t">
  ASR model size.
</ParamField>

### `pal_asr_config`

Payload for ID : PAL\_PARAM\_ID\_ASR\_CONFIG.

**Members**

<ParamField path="input_language_code" type="int32_t">
  input language code
</ParamField>

<ParamField path="output_language_code" type="int32_t">
  output language code
</ParamField>

<ParamField path="enable_language_detection" type="bool">
  language detection switch enable/disable flag
</ParamField>

<ParamField path="enable_translation" type="bool">
  translation switch enable/disable flag
</ParamField>

<ParamField path="enable_continuous_mode" type="bool">
  continuous mode enable/disable flag
</ParamField>

<ParamField path="enable_partial_transcription" type="bool">
  partial transcription switch enable/disable flag
</ParamField>

<ParamField path="enable_logger_mode" type="bool">
  Flag to enable/disable logger mode.
</ParamField>

<ParamField path="enable_timestamp" type="bool">
  Flag to enable/disable output with timestamp details.
</ParamField>

<ParamField path="enable_speaker_diarization" type="bool">
  Flag to enable/disable speaker diarization.
</ParamField>

<ParamField path="threshold" type="uint32_t">
  Confidence threshold for ASR transcription.
</ParamField>

<ParamField path="timeout_duration" type="uint32_t">
  ASR processing timeout, in milliseconds, if silence is not detected after the speech processing is started.
</ParamField>

<ParamField path="silence_detection_duration" type="uint32_t">
  "No speech" duration needed before determining speech has ended (in ms)
</ParamField>

<ParamField path="outputBufferMode" type="bool">
  Buffer mode enable/disable.
</ParamField>

<ParamField path="data_size" type="uint32_t">
  Additional Engine specific custom data size.
</ParamField>

<ParamField path="data" type="uint8_t">
  custom data offset from the start of this structure
</ParamField>

### `pal_tts_config`

**Members**

<ParamField path="language_code" type="uint32_t">
  consistente enum across ASR, Translation and TTS
</ParamField>

<ParamField path="speech_format" type="uint32_t">
  Speech output mode.
</ParamField>

<ParamField path="reserved" type="uint32_t" />

### `pal_nmt_config`

**Members**

<ParamField path="input_language_code" type="uint32_t" />

<ParamField path="output_language_code" type="uint32_t" />

### `call_translation_config`

**Members**

<ParamField path="enable" type="bool" />

<ParamField path="call_translation_dir" type="pal_call_translation_direction" />

<ParamField path="tts_module_config" type="struct pal_tts_config">
  Direction for the call\_translation usecase.
</ParamField>

<ParamField path="nmt_module_config" type="struct pal_nmt_config">
  TTS module config.
</ParamField>

<ParamField path="asr_module_config" type="struct pal_asr_config">
  NMT module config.
</ParamField>

### `pal_asr_engine_event`

**Members**

<ParamField path="is_final" type="bool">
  Final transcription after end of speech is detected.
</ParamField>

<ParamField path="confidence" type="uint32_t">
  Confidence for the entire transcription.
</ParamField>

<ParamField path="text_size" type="uint32_t">
  Size of text to sent to the client.
</ParamField>

<ParamField path="text" type="char">
  Text to be sent to the client.
</ParamField>

<ParamField path="json_size" type="uint32_t">
  size of JSON output, to be sent to client
</ParamField>

<ParamField path="result_json" type="char">
  JSON result.
</ParamField>

<ParamField path="data_size" type="uint32_t">
  event payload size
</ParamField>

<ParamField path="data" type="uint8_t">
  event payload offset from the start of this structure
</ParamField>

### `pal_asr_event`

Payload to be used for callback for ASR event through pal\_stream\_callback.

**Members**

<ParamField path="status" type="pal_asr_event_status_t" />

<ParamField path="num_events" type="uint32_t" />

<ParamField path="event" type="struct pal_asr_engine_event" />

### `asr_word`

Struct to store timestamp details of every word present in ASR's output text.

**Members**

<ParamField path="word_confidence" type="uint32_t">
  Confidence level for the word.
</ParamField>

<ParamField path="word" type="char">
  Word, whose timestamp details are within the strcut.
</ParamField>

<ParamField path="start_ts" type="uint64_t">
  Word's start timestamp.
</ParamField>

<ParamField path="end_ts" type="uint64_t">
  Word's end timestamp.
</ParamField>

### `pal_asr_engine_ts_event`

Payload to be used to generate callback data for ASR's timestamp based output.

**Members**

<ParamField path="is_final" type="bool">
  Final transcription after end of speech is detected.
</ParamField>

<ParamField path="confidence" type="uint32_t">
  Confidence for the entire transcription.
</ParamField>

<ParamField path="text_size" type="uint32_t">
  Size of text to sent to the client.
</ParamField>

<ParamField path="text" type="char">
  Text to be sent to the client.
</ParamField>

<ParamField path="start_ts" type="uint64_t">
  Text's start timestamp.
</ParamField>

<ParamField path="end_ts" type="uint64_t">
  Text's end timestamp.
</ParamField>

<ParamField path="num_words" type="uint32_t">
  Number of words present in word array.
</ParamField>

<ParamField path="word" type="struct asr_word">
  Store timestamp details of every word present in text.
</ParamField>

<ParamField path="json_size" type="uint32_t">
  size of JSON output, to be sent to client
</ParamField>

<ParamField path="result_json" type="char">
  JSON result.
</ParamField>

<ParamField path="data_size" type="uint32_t">
  event payload size
</ParamField>

<ParamField path="data" type="uint8_t">
  event payload offset from the start of this structure
</ParamField>

### `pal_asr_ts_event`

Payload to be used for callback for ASR's timestamp based event through pal\_stream\_callback.

**Members**

<ParamField path="status" type="pal_asr_event_status_t" />

<ParamField path="num_events" type="uint32_t" />

<ParamField path="event" type="struct pal_asr_engine_ts_event" />

### `sdz_speaker_info`

Payload containing speaker's information.

**Members**

<ParamField path="speaker_id" type="uint32_t" />

<ParamField path="start_ts" type="uint64_t" />

<ParamField path="end_ts" type="uint64_t" />

### `sdz_output`

Output payload for speaker diarization.

**Members**

<ParamField path="num_speakers" type="uint32_t" />

<ParamField path="overlap_detected" type="uint32_t" />

<ParamField path="speakers_list" type="struct sdz_speaker_info" />

### `pal_sdz_event`

Payload for speaker diarization event.

**Members**

<ParamField path="num_outputs" type="uint32_t" />

<ParamField path="output" type="struct sdz_output" />

### `pal_nmt_engine_event`

**Members**

<ParamField path="is_final" type="uint32_t">
  payload is partial output of NMT or complete
</ParamField>

<ParamField path="output_text_size" type="uint32_t">
  Output size of text to sent to the client.
</ParamField>

<ParamField path="output_text" type="char">
  Text to be sent to the client.
</ParamField>

<ParamField path="input_text_size" type="uint32_t">
  Input size of text to sent to the client.
</ParamField>

<ParamField path="input_text" type="char">
  Text to be sent to the client.
</ParamField>

<ParamField path="json_size" type="uint32_t">
  size of JSON output, to be sent to client
</ParamField>

<ParamField path="result_json" type="char">
  JSON result.
</ParamField>

<ParamField path="data_size" type="uint32_t">
  event payload size
</ParamField>

<ParamField path="data" type="uint8_t">
  event payload offset from the start of this structure
</ParamField>

### `pal_nmt_event`

**Members**

<ParamField path="status" type="int32_t" />

<ParamField path="input_language_code" type="int32_t" />

<ParamField path="output_language_code" type="int32_t" />

<ParamField path="direction" type="pal_stream_direction_t" />

<ParamField path="num_events" type="uint32_t" />

<ParamField path="event" type="struct pal_nmt_engine_event" />

### `pal_callback_config`

**Members**

<ParamField path="noOfPrevDevices" type="int32_t" />

<ParamField path="noOfCurrentDevices" type="int32_t" />

<ParamField path="prevDevices" type="pal_device_id_t *" />

<ParamField path="currentDevices" type="pal_device_id_t *" />

<ParamField path="streamAttributes" type="struct pal_stream_attributes" />

<ParamField path="event" type="uint32_t *" />

### `pal_compr_gapless_mdata`

**Members**

<ParamField path="encoderDelay" type="uint32_t" />

<ParamField path="encoderPadding" type="uint32_t" />

### `pal_device_mute_t`

**Members**

<ParamField path="dir" type="pal_stream_direction_t" />

<ParamField path="mute" type="bool" />

### `pal_event_read_write_done_payload`

Event payload passed to client with PAL\_STREAM\_CBK\_EVENT\_READ\_DONE and PAL\_STREAM\_CBK\_EVENT\_WRITE\_READY events.

**Members**

<ParamField path="tag" type="uint32_t">
  tag that was used to read/write this buffer
</ParamField>

<ParamField path="status" type="uint32_t">
  data buffer status as defined in ar\_osal\_error.h
</ParamField>

<ParamField path="md_status" type="uint32_t">
  meta-data status as defined in ar\_osal\_error.h
</ParamField>

<ParamField path="buff" type="struct pal_buffer">
  buffer that was passed to pal\_stream\_read/pal\_stream\_write
</ParamField>

### `pal_event_dtmf_detect_data`

Event payload passed to client with PAL\_STREAM\_CBK\_EVENT\_DTMF\_DETECTION events.

**Members**

<ParamField path="dir" type="pal_stream_direction_t" />

<ParamField path="dtmf_high_freq" type="uint32_t" />

<ParamField path="dtmf_low_freq" type="uint32_t" />

### `pal_buffer_config`

**Members**

<ParamField path="buf_count" type="size_t">
  number of buffers
</ParamField>

<ParamField path="buf_size" type="size_t">
  This would be the size of each buffer.
</ParamField>

<ParamField path="max_metadata_size" type="size_t" />

### `pal_cshm_info`

**Members**

<ParamField path="memID" type="pal_cshm_id_t" />

<ParamField path="type" type="pal_cshm_type" />

<ParamField path="fd" type="int64_t" />

<ParamField path="flags" type="uint32_t" />

### `pal_cshm_msg_payload`

**Members**

<ParamField path="memID" type="pal_cshm_id_t" />

<ParamField path="offset" type="uint32_t" />

<ParamField path="length" type="uint32_t" />

<ParamField path="destID" type="uint32_t" />

<ParamField path="flags" type="uint32_t" />

### `custom_payload_uc_info_s`

**Members**

<ParamField path="pal_stream_type" type="pal_stream_type_t">
  type of stream to apply the payload param
</ParamField>

<ParamField path="pal_device_id" type="pal_device_id_t">
  type of device to apply the payload param
</ParamField>

<ParamField path="sample_rate" type="uint32_t">
  sample rate of the stream to apply the payload param
</ParamField>

<ParamField path="instance_id" type="uint32_t">
  instance id of the stream
</ParamField>

<ParamField path="streamless" type="bool">
  set to true to create a dummy stream to send command directly to framework
</ParamField>

<ParamField path="address" type="char *">
  address
</ParamField>

<ParamField path="direction" type="pal_stream_direction_t">
  direction of stream, used in case of sharedmemory
</ParamField>

## Functions

### `__attribute__`

sound model structure passed in by ST Client during pal\_st\_load\_sound\_model()

Specialized sound model for key phrase detection.

Proprietary representation of key phrases in binary data must match information indicated by phrases field use this when not sending

```cpp theme={null}
struct __attribute__((aligned(8))) pal_st_sound_model
```

### `__attribute__`

```cpp theme={null}
struct __attribute__((__packed__)) version_arch_payload
```

## Type Definitions

### `pal_cshm_id_t`

Client Shared memory ID.

```cpp theme={null}
typedef uint32_t pal_cshm_id_t
```

### `pal_stream_handle_t`

Audio stream handle.

```cpp theme={null}
typedef uint64_t pal_stream_handle_t
```

### `pal_st_handle_t`

Sound Trigger handle.

```cpp theme={null}
typedef uint64_t pal_st_handle_t
```

### `pal_haptics_payload`

```cpp theme={null}
typedef struct pal_haptics_payload pal_haptics_payload
```

### `pal_spkr_prot_payload`

```cpp theme={null}
typedef struct pal_spkr_prot_payload pal_spkr_prot_payload
```

### `pal_param_payload`

Audio parameter data.

```cpp theme={null}
typedef struct pal_param_payload_s pal_param_payload
```

### `dynamic_media_config_t`

```cpp theme={null}
typedef struct dynamic_media_config dynamic_media_config_t
```

### `pal_meta_data_flags_t`

metadata flags, can be OR'able

```cpp theme={null}
typedef uint32_t pal_meta_data_flags_t
```

### `pal_extern_alloc_buff_info_t`

```cpp theme={null}
typedef struct pal_extern_alloc_buff_info pal_extern_alloc_buff_info_t
```

### `pal_mmap_buffer_flags_t`

pal\_mmap\_buffer flags, can be OR'able

```cpp theme={null}
typedef uint32_t pal_mmap_buffer_flags_t
```

### `pal_event_id`

EVENT configurations data strucutre defintion used as argument for mute command.

```cpp theme={null}
typedef uint32_t pal_event_id
```

### `pal_param_proxy_channel_config_t`

Audio parameter data.

```cpp theme={null}
typedef struct pal_param_proxy_channel_config pal_param_proxy_channel_config_t
```

### `pal_device_custom_config_t`

```cpp theme={null}
typedef struct pal_device_custom_config pal_device_custom_config_t
```

### `pal_param_device_connection_t`

```cpp theme={null}
typedef struct pal_param_device_connection pal_param_device_connection_t
```

### `pal_param_gain_lvl_map_t`

```cpp theme={null}
typedef struct pal_param_gain_lvl_map pal_param_gain_lvl_map_t
```

### `pal_param_gain_lvl_cal_t`

```cpp theme={null}
typedef struct pal_param_gain_lvl_cal pal_param_gain_lvl_cal_t
```

### `pal_param_mspp_linear_gain_t`

```cpp theme={null}
typedef struct pal_param_mspp_linear_gain pal_param_mspp_linear_gain_t
```

### `pal_param_playback_rate_t`

```cpp theme={null}
typedef struct pal_param_playback_rate pal_param_playback_rate_t
```

### `pal_param_device_capability_t`

```cpp theme={null}
typedef struct pal_param_device_capability pal_param_device_capability_t
```

### `pal_param_screen_state_t`

```cpp theme={null}
typedef struct pal_param_screen_state pal_param_screen_state_t
```

### `pal_param_charging_state_t`

```cpp theme={null}
typedef struct pal_param_charging_state pal_param_charging_state_t
```

### `pal_param_charger_state_t`

```cpp theme={null}
typedef struct pal_param_charger_state pal_param_charger_state_t
```

### `pal_param_st_capture_info_t`

```cpp theme={null}
typedef struct pal_param_st_capture_info pal_param_st_capture_info_t
```

### `pal_param_resources_available_t`

```cpp theme={null}
typedef struct pal_param_resources_available pal_param_resources_available_t
```

### `pal_param_device_rotation_t`

```cpp theme={null}
typedef struct pal_param_device_rotation pal_param_device_rotation_t
```

### `pal_param_uhqa_t`

```cpp theme={null}
typedef struct pal_param_uhqa_state pal_param_uhqa_t
```

### `pal_param_haptics_cnfg_t`

```cpp theme={null}
typedef struct pal_param_haptics_cnfg_t pal_param_haptics_cnfg_t
```

### `btsco_lc3_cfg_t`

```cpp theme={null}
typedef struct btsco_lc3_cfg btsco_lc3_cfg_t
```

### `pal_param_btsco_t`

```cpp theme={null}
typedef struct pal_param_btsco pal_param_btsco_t
```

### `pal_param_bta2dp_t`

```cpp theme={null}
typedef struct pal_param_bta2dp pal_param_bta2dp_t
```

### `pal_param_latency_mode_t`

```cpp theme={null}
typedef struct pal_param_latency_mode pal_param_latency_mode_t
```

### `pal_param_upd_event_detection_t`

```cpp theme={null}
typedef struct pal_param_upd_event_detection pal_param_upd_event_detection_t
```

### `pal_bt_tws_payload`

```cpp theme={null}
typedef struct pal_bt_tws_payload_s pal_bt_tws_payload
```

### `pal_param_dtmf_detection_cfg_t`

```cpp theme={null}
typedef struct pal_param_dtmf_detection_cfg pal_param_dtmf_detection_cfg_t
```

### `pal_param_dtmf_gen_tone_cfg_t`

```cpp theme={null}
typedef struct pal_param_dtmf_gen_tone_cfg pal_param_dtmf_gen_tone_cfg_t
```

### `pal_bt_lc3_payload`

```cpp theme={null}
typedef struct pal_bt_lc3_payload_s pal_bt_lc3_payload
```

### `pal_param_haptics_intensity_t`

```cpp theme={null}
typedef struct pal_param_haptics_intensity pal_param_haptics_intensity_t
```

### `pal_sound_dose_info_t`

payload for Sound Dose Info

```cpp theme={null}
typedef struct pal_sound_dose_info pal_sound_dose_info_t
```

### `pal_st_recognition_callback_t`

```cpp theme={null}
typedef void(* pal_st_recognition_callback_t
```

### `pal_callback_config_t`

```cpp theme={null}
typedef struct pal_callback_config pal_callback_config_t
```

### `pal_device_mute_t`

```cpp theme={null}
typedef struct pal_device_mute_t pal_device_mute_t
```

### `pal_stream_callback`

Callback function prototype to be given for pal\_open\_stream.

```cpp theme={null}
typedef int32_t(* pal_stream_callback
```

### `pal_audio_event_callback`

Callback function prototype to be given for pal\_audio\_event\_callback.

```cpp theme={null}
typedef int32_t(* pal_audio_event_callback
```

### `pal_global_callback`

Callback function prototype to be given for pal\_register\_callback.

```cpp theme={null}
typedef int32_t(* pal_global_callback
```

### `card_status_t`

Sound card state.

```cpp theme={null}
typedef enum card_status_t card_status_t
```

### `pal_buffer_config_t`

```cpp theme={null}
typedef struct pal_buffer_config pal_buffer_config_t
```

### `pal_cshm_info_t`

```cpp theme={null}
typedef struct pal_cshm_info pal_cshm_info_t
```

### `pal_cshm_msg_payload_t`

```cpp theme={null}
typedef struct pal_cshm_msg_payload pal_cshm_msg_payload_t
```

### `custom_payload_uc_info_t`

```cpp theme={null}
typedef struct custom_payload_uc_info_s custom_payload_uc_info_t
```

## Enumerations

### `pal_cshm_type`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_CSHM_CACHED` | = 1 | |
| `PAL_CSHM_UNCACHED` | | |

### `pal_audio_fmt_t`

PAL Audio format enumeration.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_AUDIO_FMT_DEFAULT_PCM` | = 0x1 | PCM. |
| `PAL_AUDIO_FMT_PCM_S16_LE` | = PAL\_AUDIO\_FMT\_DEFAULT\_PCM | 16 bit little endian PCM |
| `PAL_AUDIO_FMT_DEFAULT_COMPRESSED` | = 0x2 | Default Compressed. |
| `PAL_AUDIO_FMT_MP3` | = PAL\_AUDIO\_FMT\_DEFAULT\_COMPRESSED | |
| `PAL_AUDIO_FMT_AAC` | = 0x3 | |
| `PAL_AUDIO_FMT_AAC_ADTS` | = 0x4 | |
| `PAL_AUDIO_FMT_AAC_ADIF` | = 0x5 | |
| `PAL_AUDIO_FMT_AAC_LATM` | = 0x6 | |
| `PAL_AUDIO_FMT_WMA_STD` | = 0x7 | |
| `PAL_AUDIO_FMT_ALAC` | = 0x8 | |
| `PAL_AUDIO_FMT_APE` | = 0x9 | |
| `PAL_AUDIO_FMT_WMA_PRO` | = 0xA | |
| `PAL_AUDIO_FMT_FLAC` | = 0xB | |
| `PAL_AUDIO_FMT_FLAC_OGG` | = 0xC | |
| `PAL_AUDIO_FMT_VORBIS` | = 0xD | |
| `PAL_AUDIO_FMT_AMR_NB` | = 0xE | |
| `PAL_AUDIO_FMT_AMR_WB` | = 0xF | |
| `PAL_AUDIO_FMT_AMR_WB_PLUS` | = 0x10 | |
| `PAL_AUDIO_FMT_EVRC` | = 0x11 | |
| `PAL_AUDIO_FMT_G711` | = 0x12 | |
| `PAL_AUDIO_FMT_QCELP` | = 0x13 | |
| `PAL_AUDIO_FMT_PCM_S8` | = 0x14 | 8 Bit PCM |
| `PAL_AUDIO_FMT_PCM_S24_3LE` | = 0x15 | 24 bit packed little endian PCM |
| `PAL_AUDIO_FMT_PCM_S24_LE` | = 0x16 | 24bit in 32bit word (LSB aligned) little endian PCM |
| `PAL_AUDIO_FMT_PCM_S32_LE` | = 0x17 | 32bit little endian PCM |
| `PAL_AUDIO_FMT_OPUS` | = 0x18 | |
| `PAL_AUDIO_FMT_NON_PCM` | = 0xE0000000 | |
| `PAL_AUDIO_FMT_COMPRESSED_RANGE_BEGIN` | = 0xF0000000 | |
| `PAL_AUDIO_FMT_COMPRESSED_EXTENDED_RANGE_BEGIN` | = 0xF0000F00 | |
| `PAL_AUDIO_FMT_COMPRESSED_EXTENDED_RANGE_END` | = 0xF0000FFF | |
| `PAL_AUDIO_FMT_COMPRESSED_RANGE_END` | = PAL\_AUDIO\_FMT\_COMPRESSED\_EXTENDED\_RANGE\_END | |

### `pal_notification_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_NOTIFY_CALL_TRANSLATION_TEXT` | = 0 | |
| `PAL_NOTIFY_START` | | |
| `PAL_NOTIFY_STOP` | | |
| `PAL_NOTIFY_DEVICESWITCH` | | |

### `pal_haptics_mode`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_HAP_MODE_DYNAMIC_CAL` | = 1 | |
| `PAL_HAP_MODE_FACTORY_TEST` | | |

### `pal_spkr_prot_mode`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_SP_MODE_DYNAMIC_CAL` | = 1 | |
| `PAL_SP_MODE_FACTORY_TEST` | | |
| `PAL_SP_MODE_V_VALIDATION` | | |

### *(anonymous)*

#### Values

| Name | Value | Description |
| - | - | - |
| `SPKR_RIGHT` | | |
| `SPKR_LEFT` | | |

### `vote_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `LPI_VOTE` | | |
| `NLPI_VOTE` | | |
| `AVOID_VOTE` | | |

### `pal_channel_map`

Audio channel map enumeration.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_CHMAP_CHANNEL_FL` | = 1 | Front right channel. |
| `PAL_CHMAP_CHANNEL_FR` | = 2 | Front center channel. |
| `PAL_CHMAP_CHANNEL_C` | = 3 | Left surround channel. |
| `PAL_CHMAP_CHANNEL_LS` | = 4 | |
| `PAL_CHMAP_CHANNEL_RS` | = 5 | Right surround channel. |
| `PAL_CHMAP_CHANNEL_LFE` | = 6 | Low frequency effect channel. |
| `PAL_CHMAP_CHANNEL_RC` | = 7 | Center surround channel;. |
| `PAL_CHMAP_CHANNEL_CB` | = PAL\_CHMAP\_CHANNEL\_RC | center back channel. |
| `PAL_CHMAP_CHANNEL_LB` | = 8 | rear left channel. |
| `PAL_CHMAP_CHANNEL_RB` | = 9 | rear right channel. |
| `PAL_CHMAP_CHANNEL_TS` | = 10 | Top surround channel. |
| `PAL_CHMAP_CHANNEL_CVH` | = 11 | Center vertical height channel. |
| `PAL_CHMAP_CHANNEL_TFC` | = PAL\_CHMAP\_CHANNEL\_CVH | Top front center channel. |
| `PAL_CHMAP_CHANNEL_MS` | = 12 | Mono surround channel. |
| `PAL_CHMAP_CHANNEL_FLC` | = 13 | Front left of center channel. |
| `PAL_CHMAP_CHANNEL_FRC` | = 14 | Front right of center channel. |
| `PAL_CHMAP_CHANNEL_RLC` | = 15 | Rear left of center channel. |
| `PAL_CHMAP_CHANNEL_RRC` | = 16 | Rear right of center channel. |
| `PAL_CHMAP_CHANNEL_LFE2` | = 17 | Secondary low frequency effect channel. |
| `PAL_CHMAP_CHANNEL_SL` | = 18 | Side left channel. |
| `PAL_CHMAP_CHANNEL_SR` | = 19 | Side right channel. |
| `PAL_CHMAP_CHANNEL_TFL` | = 20 | Top front left channel. |
| `PAL_CHMAP_CHANNEL_LVH` | = PAL\_CHMAP\_CHANNEL\_TFL | Right vertical height channel. |
| `PAL_CHMAP_CHANNEL_TFR` | = 21 | Top front right channel. |
| `PAL_CHMAP_CHANNEL_RVH` | = PAL\_CHMAP\_CHANNEL\_TFR | Right vertical height channel. |
| `PAL_CHMAP_CHANNEL_TC` | = 22 | Top center channel. |
| `PAL_CHMAP_CHANNEL_TBL` | = 23 | Top back left channel. |
| `PAL_CHMAP_CHANNEL_TBR` | = 24 | Top back right channel. |
| `PAL_CHMAP_CHANNEL_TSL` | = 25 | Top side left channel. |
| `PAL_CHMAP_CHANNEL_TSR` | = 26 | Top side right channel. |
| `PAL_CHMAP_CHANNEL_TBC` | = 27 | Top back center channel. |
| `PAL_CHMAP_CHANNEL_BFC` | = 28 | Bottom front center channel. |
| `PAL_CHMAP_CHANNEL_BFL` | = 29 | Bottom front left channel. |
| `PAL_CHMAP_CHANNEL_BFR` | = 30 | Bottom front right channel. |
| `PAL_CHMAP_CHANNEL_LW` | = 31 | Left wide channel. |
| `PAL_CHMAP_CHANNEL_RW` | = 32 | Right wide channel. |
| `PAL_CHMAP_CHANNEL_LSD` | = 33 | Left side direct channel. |
| `PAL_CHMAP_CHANNEL_RSD` | = 34 | Left side direct channel. |

### `pal_stream_direction_t`

Audio stream direction enumeration.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_AUDIO_OUTPUT` | = 0x1 | playback usecases |
| `PAL_AUDIO_INPUT` | = 0x2 | capture/voice activation usecases |
| `PAL_AUDIO_INPUT_OUTPUT` | = 0x3 | transcode usecases |

### `pal_audio_effect_t`

Audio Voip TX Effect enumeration.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_AUDIO_EFFECT_NONE` | = 0x0 | No audio effect ie., EC\_OFF\_NS\_OFF. |
| `PAL_AUDIO_EFFECT_EC` | = 0x1 | Echo Cancellation ie., EC\_ON\_NS\_OFF. |
| `PAL_AUDIO_EFFECT_NS` | = 0x2 | Noise Suppression ie., NS\_ON\_EC\_OFF. |
| `PAL_AUDIO_EFFECT_ECNS` | = 0x3 | EC + NS. |

### `pal_stream_type_t`

Audio stream types.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_LOW_LATENCY` | = 1 | :low latency, higher power |
| `PAL_STREAM_DEEP_BUFFER` | = 2 | :low power, higher latency |
| `PAL_STREAM_COMPRESSED` | = 3 | :compresssed audio |
| `PAL_STREAM_VOIP` | = 4 | :pcm voip audio |
| `PAL_STREAM_VOIP_RX` | = 5 | :pcm voip audio downlink |
| `PAL_STREAM_VOIP_TX` | = 6 | :pcm voip audio uplink |
| `PAL_STREAM_VOICE_CALL_MUSIC` | = 7 | :incall music |
| `PAL_STREAM_GENERIC` | = 8 | :generic playback audio |
| `PAL_STREAM_RAW` | = 9 | pcm no post processing |
| `PAL_STREAM_VOICE_RECOGNITION` | = 10 | voice recognition |
| `PAL_STREAM_VOICE_CALL_RECORD` | = 11 | incall record |
| `PAL_STREAM_VOICE_CALL_TX` | = 12 | incall record, uplink |
| `PAL_STREAM_VOICE_CALL_RX_TX` | = 13 | incall record, uplink & Downlink |
| `PAL_STREAM_VOICE_CALL` | = 14 | voice call |
| `PAL_STREAM_LOOPBACK` | = 15 | loopback |
| `PAL_STREAM_TRANSCODE` | = 16 | audio transcode |
| `PAL_STREAM_VOICE_UI` | = 17 | voice ui |
| `PAL_STREAM_PCM_OFFLOAD` | = 18 | pcm offload audio |
| `PAL_STREAM_ULTRA_LOW_LATENCY` | = 19 | pcm ULL audio |
| `PAL_STREAM_PROXY` | = 20 | pcm proxy audio |
| `PAL_STREAM_NON_TUNNEL` | = 21 | NT Mode session. |
| `PAL_STREAM_HAPTICS` | = 22 | Haptics Stream. |
| `PAL_STREAM_ACD` | = 23 | ACD Stream. |
| `PAL_STREAM_CONTEXT_PROXY` | = 24 | Context Proxy Stream. |
| `PAL_STREAM_SENSOR_PCM_DATA` | = 25 | Sensor Pcm Data Stream. |
| `PAL_STREAM_ULTRASOUND` | = 26 | Ultrasound Proximity detection. |
| `PAL_STREAM_SPATIAL_AUDIO` | = 27 | Spatial audio playback. |
| `PAL_STREAM_COMMON_PROXY` | = 28 | AFS's WakeUp Algo library detection. |
| `PAL_STREAM_SENSOR_PCM_RENDERER` | = 29 | Sensor Pcm Rendering Stream. |
| `PAL_STREAM_ASR` | = 30 | ASR Stream. |
| `PAL_STREAM_HPCM` | = 31 | hpcm usecase |
| `PAL_STREAM_DUMMY` | = 32 | Dummy stream used to directly push configurations without a stream instance. |
| `PAL_STREAM_CALL_TRANSLATION` | = 33 | Translation usecase for Voice & Voip Calls. |
| `PAL_STREAM_PLAYBACK_BUS` | = 34 | Playback bus type pal streams. |
| `PAL_STREAM_CAPTURE_BUS` | = 35 | Capture bus type pal streams. |
| `PAL_STREAM_MAX` | | max stream types - add new ones above |

### `pal_device_id_t`

Audio devices available for enabling streams.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_DEVICE_OUT_MIN` | = 0 | |
| `PAL_DEVICE_NONE` | = 1 | for transcode usecases |
| `PAL_DEVICE_OUT_HANDSET` | = 2 | |
| `PAL_DEVICE_OUT_SPEAKER` | = 3 | Default out speaker device. |
| `PAL_DEVICE_OUT_WIRED_HEADSET` | = 4 | |
| `PAL_DEVICE_OUT_WIRED_HEADPHONE` | = 5 | Wired headphones without mic. |
| `PAL_DEVICE_OUT_LINE` | = 6 | |
| `PAL_DEVICE_OUT_BLUETOOTH_SCO` | = 7 | |
| `PAL_DEVICE_OUT_BLUETOOTH_A2DP` | = 8 | |
| `PAL_DEVICE_OUT_AUX_DIGITAL` | = 9 | |
| `PAL_DEVICE_OUT_HDMI` | = 10 | |
| `PAL_DEVICE_OUT_USB_DEVICE` | = 11 | |
| `PAL_DEVICE_OUT_USB_HEADSET` | = 12 | |
| `PAL_DEVICE_OUT_SPDIF` | = 13 | |
| `PAL_DEVICE_OUT_FM` | = 14 | |
| `PAL_DEVICE_OUT_AUX_LINE` | = 15 | |
| `PAL_DEVICE_OUT_PROXY` | = 16 | |
| `PAL_DEVICE_OUT_AUX_DIGITAL_1` | = 17 | |
| `PAL_DEVICE_OUT_HEARING_AID` | = 18 | |
| `PAL_DEVICE_OUT_HAPTICS_DEVICE` | = 19 | |
| `PAL_DEVICE_OUT_ULTRASOUND` | = 20 | |
| `PAL_DEVICE_OUT_ULTRASOUND_DEDICATED` | = 21 | |
| `PAL_DEVICE_OUT_BLUETOOTH_BLE` | = 22 | |
| `PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST` | = 23 | |
| `PAL_DEVICE_OUT_DUMMY` | = 24 | |
| `PAL_DEVICE_OUT_RECORD_PROXY` | = 25 | |
| `PAL_DEVICE_OUT_SOUND_DOSE` | = 26 | |
| `PAL_DEVICE_OUT_BLUETOOTH_HFP` | = 27 | |
| `PAL_DEVICE_OUT_SPEAKER2` | = 28 | Secondary zone speaker device. |
| `PAL_DEVICE_OUT_SPEAKER3` | = 29 | Tertiary zone speaker device. |
| `PAL_DEVICE_OUT_MAX` | = 30 | |
| `PAL_DEVICE_IN_MIN` | = PAL\_DEVICE\_OUT\_MAX | |
| `PAL_DEVICE_IN_HANDSET_MIC` | = PAL\_DEVICE\_IN\_MIN +1 | |
| `PAL_DEVICE_IN_SPEAKER_MIC` | = PAL\_DEVICE\_IN\_MIN + 2 | |
| `PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET` | = PAL\_DEVICE\_IN\_MIN + 3 | |
| `PAL_DEVICE_IN_WIRED_HEADSET` | = PAL\_DEVICE\_IN\_MIN + 4 | |
| `PAL_DEVICE_IN_AUX_DIGITAL` | = PAL\_DEVICE\_IN\_MIN + 5 | |
| `PAL_DEVICE_IN_HDMI` | = PAL\_DEVICE\_IN\_MIN + 6 | |
| `PAL_DEVICE_IN_USB_ACCESSORY` | = PAL\_DEVICE\_IN\_MIN + 7 | |
| `PAL_DEVICE_IN_USB_DEVICE` | = PAL\_DEVICE\_IN\_MIN + 8 | |
| `PAL_DEVICE_IN_USB_HEADSET` | = PAL\_DEVICE\_IN\_MIN + 9 | |
| `PAL_DEVICE_IN_FM_TUNER` | = PAL\_DEVICE\_IN\_MIN + 10 | |
| `PAL_DEVICE_IN_LINE` | = PAL\_DEVICE\_IN\_MIN + 11 | |
| `PAL_DEVICE_IN_SPDIF` | = PAL\_DEVICE\_IN\_MIN + 12 | |
| `PAL_DEVICE_IN_PROXY` | = PAL\_DEVICE\_IN\_MIN + 13 | |
| `PAL_DEVICE_IN_HANDSET_VA_MIC` | = PAL\_DEVICE\_IN\_MIN + 14 | |
| `PAL_DEVICE_IN_BLUETOOTH_A2DP` | = PAL\_DEVICE\_IN\_MIN + 15 | |
| `PAL_DEVICE_IN_HEADSET_VA_MIC` | = PAL\_DEVICE\_IN\_MIN + 16 | |
| `PAL_DEVICE_IN_VI_FEEDBACK` | = PAL\_DEVICE\_IN\_MIN + 17 | |
| `PAL_DEVICE_IN_TELEPHONY_RX` | = PAL\_DEVICE\_IN\_MIN + 18 | |
| `PAL_DEVICE_IN_ULTRASOUND_MIC` | = PAL\_DEVICE\_IN\_MIN +19 | |
| `PAL_DEVICE_IN_EXT_EC_REF` | = PAL\_DEVICE\_IN\_MIN + 20 | |
| `PAL_DEVICE_IN_ECHO_REF` | = PAL\_DEVICE\_IN\_MIN + 21 | |
| `PAL_DEVICE_IN_HAPTICS_VI_FEEDBACK` | = PAL\_DEVICE\_IN\_MIN + 22 | |
| `PAL_DEVICE_IN_BLUETOOTH_BLE` | = PAL\_DEVICE\_IN\_MIN + 23 | |
| `PAL_DEVICE_IN_CPS_FEEDBACK` | = PAL\_DEVICE\_IN\_MIN + 24 | |
| `PAL_DEVICE_IN_DUMMY` | = PAL\_DEVICE\_IN\_MIN + 25 | |
| `PAL_DEVICE_IN_CPS2_FEEDBACK` | = PAL\_DEVICE\_IN\_MIN + 26 | |
| `PAL_DEVICE_IN_RECORD_PROXY` | = PAL\_DEVICE\_IN\_MIN + 27 | |
| `PAL_DEVICE_IN_BLUETOOTH_HFP` | = PAL\_DEVICE\_IN\_MIN + 28 | |
| `PAL_DEVICE_IN_SPEAKER_MIC2` | = PAL\_DEVICE\_IN\_MIN + 29 | Secondary zone speaker mic device. |
| `PAL_DEVICE_IN_SPEAKER_MIC3` | = PAL\_DEVICE\_IN\_MIN + 30 | Tertiary zone speaker mic device. |
| `PAL_DEVICE_IN_MAX` | = PAL\_DEVICE\_IN\_MIN + 31 | |

### `A2DP_STATE`

#### Values

| Name | Value | Description |
| - | - | - |
| `A2DP_STATE_CONNECTED` | | |
| `A2DP_STATE_STARTED` | | |
| `A2DP_STATE_STOPPED` | | |
| `A2DP_STATE_DISCONNECTED` | | |

### `pal_VSID_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `VOICEMMODE1` | = 0x11C05000 | |
| `VOICEMMODE2` | = 0x11DC5000 | |
| `VOICELBMMODE1` | = 0x12006000 | |
| `VOICELBMMODE2` | = 0x121C6000 | |

### `pal_stream_loopback_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_LOOPBACK_PCM` | | |
| `PAL_STREAM_LOOPBACK_HFP_RX` | | |
| `PAL_STREAM_LOOPBACK_HFP_TX` | | |
| `PAL_STREAM_LOOPBACK_COMPRESS` | | |
| `PAL_STREAM_LOOPBACK_FM` | | |
| `PAL_STREAM_LOOPBACK_KARAOKE` | | |
| `PAL_STREAM_LOOPBACK_PLAYBACK_ONLY` | | |
| `PAL_STREAM_LOOPBACK_CAPTURE_ONLY` | | |
| `PAL_STREAM_LOOPBACK_ICC` | | In Car Communication loopback. |

### `pal_stream_proxy_tx_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_PROXY_TX_VISUALIZER` | | |
| `PAL_STREAM_PROXY_TX_WFD` | | |
| `PAL_STREAM_PROXY_TX_TELEPHONY_RX` | | |

### `pal_stream_proxy_rx_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_PROXY_RX_WFD` | = 1 | |

### `pal_stream_haptics_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_HAPTICS_RINGTONE` | | |
| `PAL_STREAM_HAPTICS_TOUCH` | = 1 | |
| `PAL_STREAM_HAPTICS_PCM` | = 2 | |

### `pal_stream_callback_event_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_CBK_EVENT_WRITE_READY` | | |
| `PAL_STREAM_CBK_EVENT_DRAIN_READY` | | |
| `PAL_STREAM_CBK_EVENT_PARTIAL_DRAIN_READY` | | |
| `PAL_STREAM_CBK_EVENT_READ_DONE` | | |
| `PAL_STREAM_CBK_EVENT_ERROR` | | |
| `PAL_STREAM_CBK_EVENT_DTMF_DETECTION` | | |
| `PAL_STREAM_CBK_MAX` | = 0xFFFF | |

### `pal_global_callback_event_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_SND_CARD_STATE` | | |
| `PAL_SOUND_DOSE_INFO` | | |

### `pal_call_translation_direction`

#### Values

| Name | Value | Description |
| - | - | - |
| `CALL_TRANSLATION_DEFAULT` | = 0 | |
| `CALL_TRANSLATION_DIR_TX` | = 1 | |
| `CALL_TRANSLATION_DIR_RX` | = 2 | |

### `pal_incall_record_direction`

#### Values

| Name | Value | Description |
| - | - | - |
| `INCALL_RECORD_VOICE_UPLINK` | = 1 | |
| `INCALL_RECORD_VOICE_DOWNLINK` | | |
| `INCALL_RECORD_VOICE_UPLINK_DOWNLINK` | | |

### `pal_tty_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_TTY_OFF` | = 0 | |
| `PAL_TTY_HCO` | = 1 | |
| `PAL_TTY_VCO` | = 2 | |
| `PAL_TTY_FULL` | = 3 | |

### `pal_incall_music_direction`

#### Values

| Name | Value | Description |
| - | - | - |
| `INCALL_MUSIC_UPLINK` | = 1 | |
| `INCALL_MUSIC_DOWNLINK` | | |

### `pal_hpcm_stream_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_HPCM_RX_PLAYBACK` | = 0 | |
| `PAL_HPCM_RX_CAPTURE` | = 1 | |
| `PAL_HPCM_TX_PLAYBACK` | = 2 | |
| `PAL_HPCM_TX_CAPTURE` | = 3 | |

### `pal_stream_flags_t`

Available stream flags of an audio session.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_STREAM_FLAG_TIMESTAMP` | = 0x1 | Enable time stamps associated to audio buffers |
| `PAL_STREAM_FLAG_NON_BLOCKING` | = 0x2 | Stream IO operations are non blocking. |
| `PAL_STREAM_FLAG_MMAP` | = 0x4 | Stream Mode should be in MMAP. |
| `PAL_STREAM_FLAG_MMAP_NO_IRQ` | = 0x8 | Stream Mode should be No IRQ. |
| `PAL_STREAM_FLAG_EXTERN_MEM` | = 0x10 | Shared memory buffers allocated by client. |
| `PAL_STREAM_FLAG_SRCM_INBAND` | = 0x20 | MediaFormat change event inband with data buffers. |
| `PAL_STREAM_FLAG_EOF` | = 0x40 | MediaFormat change event inband with data buffers. |

### *(anonymous)*

Metadata flags.

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_META_DATA_FLAGS_NONE` | = 0 | |

### *(anonymous)*

pal\_mmap\_buffer flags

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_MMMAP_BUFF_FLAGS_NONE` | = 0 | |
| `PAL_MMMAP_BUFF_FLAGS_APP_SHAREABLE` | = 1 | Only set this flag if applications can access the audio buffer memory shared with the backend (usually DSP) without security issue. |

### `pal_drain_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_DRAIN` | | request notification when all accumlated data has be drained. |
| `PAL_DRAIN_PARTIAL` | | request notification when drain completes shortly before all accumlated data of the current track has been played out |

### `pal_param_id_type_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_PARAM_ID_LOAD_SOUND_MODEL` | = 0 | |
| `PAL_PARAM_ID_RECOGNITION_CONFIG` | = 1 | |
| `PAL_PARAM_ID_ECNS_ON_OFF` | = 2 | |
| `PAL_PARAM_ID_DIRECTION_OF_ARRIVAL` | = 3 | |
| `PAL_PARAM_ID_UIEFFECT` | = 4 | |
| `PAL_PARAM_ID_STOP_BUFFERING` | = 5 | |
| `PAL_PARAM_ID_CODEC_CONFIGURATION` | = 6 | |
| `PAL_PARAM_ID_DEVICE_CONNECTION` | = 7 | |
| `PAL_PARAM_ID_SCREEN_STATE` | = 8 | |
| `PAL_PARAM_ID_CHARGING_STATE` | = 9 | |
| `PAL_PARAM_ID_DEVICE_ROTATION` | = 10 | |
| `PAL_PARAM_ID_BT_SCO` | = 11 | |
| `PAL_PARAM_ID_BT_SCO_WB` | = 12 | |
| `PAL_PARAM_ID_BT_SCO_SWB` | = 13 | |
| `PAL_PARAM_ID_BT_A2DP_RECONFIG` | = 14 | |
| `PAL_PARAM_ID_BT_A2DP_RECONFIG_SUPPORTED` | = 15 | |
| `PAL_PARAM_ID_BT_A2DP_SUSPENDED` | = 16 | |
| `PAL_PARAM_ID_BT_A2DP_TWS_CONFIG` | = 17 | |
| `PAL_PARAM_ID_BT_A2DP_ENCODER_LATENCY` | = 18 | |
| `PAL_PARAM_ID_DEVICE_CAPABILITY` | = 19 | |
| `PAL_PARAM_ID_GET_SOUND_TRIGGER_PROPERTIES` | = 20 | |
| `PAL_PARAM_ID_TTY_MODE` | = 21 | |
| `PAL_PARAM_ID_VOLUME_BOOST` | = 22 | |
| `PAL_PARAM_ID_SLOW_TALK` | = 23 | |
| `PAL_PARAM_ID_SPEAKER_RAS` | = 24 | |
| `PAL_PARAM_ID_SP_MODE` | = 25 | |
| `PAL_PARAM_ID_GAIN_LVL_MAP` | = 26 | |
| `PAL_PARAM_ID_GAIN_LVL_CAL` | = 27 | |
| `PAL_PARAM_ID_GAPLESS_MDATA` | = 28 | |
| `PAL_PARAM_ID_HD_VOICE` | = 29 | |
| `PAL_PARAM_ID_WAKEUP_ENGINE_CONFIG` | = 30 | |
| `PAL_PARAM_ID_WAKEUP_BUFFERING_CONFIG` | = 31 | |
| `PAL_PARAM_ID_WAKEUP_ENGINE_RESET` | = 32 | |
| `PAL_PARAM_ID_WAKEUP_MODULE_VERSION` | = 33 | |
| `PAL_PARAM_ID_WAKEUP_CUSTOM_CONFIG` | = 34 | |
| `PAL_PARAM_ID_UNLOAD_SOUND_MODEL` | = 35 | |
| `PAL_PARAM_ID_MODULE_CONFIG` | = 36 | |
| `PAL_PARAM_ID_BT_A2DP_LC3_CONFIG` | = 37 | |
| `PAL_PARAM_ID_PROXY_CHANNEL_CONFIG` | = 38 | |
| `PAL_PARAM_ID_CONTEXT_LIST` | = 39 | |
| `PAL_PARAM_ID_HAPTICS_INTENSITY` | = 40 | |
| `PAL_PARAM_ID_HAPTICS_VOLUME` | = 41 | |
| `PAL_PARAM_ID_BT_A2DP_DECODER_LATENCY` | = 42 | |
| `PAL_PARAM_ID_CUSTOM_CONFIGURATION` | = 43 | |
| `PAL_PARAM_ID_KW_TRANSFER_LATENCY` | = 44 | |
| `PAL_PARAM_ID_BT_A2DP_FORCE_SWITCH` | = 45 | |
| `PAL_PARAM_ID_BT_SCO_LC3` | = 46 | |
| `PAL_PARAM_ID_DEVICE_MUTE` | = 47 | |
| `PAL_PARAM_ID_UPD_REGISTER_FOR_EVENTS` | = 48 | |
| `PAL_PARAM_ID_SP_GET_CAL` | = 49 | |
| `PAL_PARAM_ID_BT_A2DP_CAPTURE_SUSPENDED` | = 50 | |
| `PAL_PARAM_ID_SNDCARD_STATE` | = 51 | |
| `PAL_PARAM_ID_HIFI_PCM_FILTER` | = 52 | |
| `PAL_PARAM_ID_CHARGER_STATE` | = 53 | |
| `PAL_PARAM_ID_BT_SCO_NREC` | = 54 | |
| `PAL_PARAM_ID_VOLUME_USING_SET_PARAM` | = 55 | |
| `PAL_PARAM_ID_UHQA_FLAG` | = 56 | |
| `PAL_PARAM_ID_STREAM_ATTRIBUTES` | = 57 | |
| `PAL_PARAM_ID_SET_UPD_DUTY_CYCLE` | = 58 | |
| `PAL_PARAM_ID_MSPP_LINEAR_GAIN` | = 59 | |
| `PAL_PARAM_ID_SET_SOURCE_METADATA` | = 60 | |
| `PAL_PARAM_ID_SET_SINK_METADATA` | = 61 | |
| `PAL_PARAM_ID_ULTRASOUND_RAMPDOWN` | = 62 | |
| `PAL_PARAM_ID_VOLUME_CTRL_RAMP` | = 63 | |
| `PAL_PARAM_ID_SVA_WAKEUP_MODULE_VERSION` | = 64 | |
| `PAL_PARAM_ID_GAIN_USING_SET_PARAM` | = 65 | |
| `PAL_PARAM_ID_HAPTICS_CNFG` | = 66 | |
| `PAL_PARAM_ID_WAKEUP_ENGINE_PER_MODEL_RESET` | = 67 | |
| `PAL_PARAM_ID_RECONFIG_ENCODER` | = 68 | |
| `PAL_PARAM_ID_VUI_SET_META_DATA` | = 69 | |
| `PAL_PARAM_ID_VUI_GET_META_DATA` | = 70 | |
| `PAL_PARAM_ID_VUI_CAPTURE_META_DATA` | = 71 | |
| `PAL_PARAM_ID_TIMESTRETCH_PARAMS` | = 72 | |
| `PAL_PARAM_ID_LATENCY_MODE` | = 73 | |
| `PAL_PARAM_ID_ST_CAPTURE_INFO` | = 74 | |
| `PAL_PARAM_ID_RESOURCES_AVAILABLE` | = 75 | |
| `PAL_PARAM_ID_PROXY_RECORD_SESSION` | = 76 | |
| `PAL_PARAM_ID_ASR_MODEL` | = 77 | |
| `PAL_PARAM_ID_ASR_CONFIG` | = 78 | |
| `PAL_PARAM_ID_ASR_CUSTOM` | = 79 | |
| `PAL_PARAM_ID_ASR_FORCE_OUTPUT` | = 80 | |
| `PAL_PARAM_ID_ASR_OUTPUT` | = 81 | |
| `PAL_PARAM_ID_ASR_SET_PARAM` | = 82 | |
| `PAL_PARAM_ID_ORIENTATION` | = 83 | |
| `PAL_PARAM_ID_VENDOR_UUID` | = 84 | For PAL Refactor. |
| `PAL_PARAM_ID_IS_DEVICE_CONNECTED` | = 85 | |
| `PAL_PARAM_ID_DTMF_DETECTION_CFG` | = 86 | |
| `PAL_PARAM_ID_DTMF_GEN_TONE_CFG` | = 87 | |
| `PAL_PARAM_ID_HAPTICS_MODE` | = 88 | |
| `PAL_PARAM_ID_MMA_MODE_BIT_CONFIG` | = 89 | |
| `PAL_PARAM_ID_WNR_MODE` | = 90 | |
| `PAL_PARAM_ID_ULTRASOUND_SET_GAIN` | = 91 | |
| `PAL_PARAM_ID_SDZ_MODEL` | = 92 | |
| `PAL_PARAM_ID_SDZ_CONFIG` | = 93 | |
| `PAL_PARAM_ID_SDZ_CUSTOM` | = 94 | |
| `PAL_PARAM_ID_SDZ_FORCE_OUTPUT` | = 95 | |
| `PAL_PARAM_ID_SDZ_OUTPUT` | = 96 | |
| `PAL_PARAM_ID_SDZ_SET_PARAM` | = 97 | |
| `PAL_PARAM_ID_SDZ_ENABLE` | = 98 | |
| `PAL_PARAM_ID_CALL_TRANSLATION_CONFIG` | = 99 | |
| `PAL_PARAM_ID_FORCE_RECOGNITION` | = 100 | |
| `PAL_PARAM_ID_BUFFERING_MODE` | = 101 | |
| `PAL_PARAM_ID_NMT_OUTPUT` | = 102 | |
| `PAL_PARAM_NMT_GET_NUM_EVENT` | = 103 | |
| `PAL_PARAM_NMT_GET_OUTPUT_TOKEN` | = 104 | |
| `PAL_PARAM_NMT_GET_PAYLOAD_SIZE` | = 105 | |
| `PAL_PARAM_ID_DISABLE_HFP_SYNC` | = 106 | |
| `PAL_PARAM_ID_MULTI_CLIENT_ASR_OUTPUT` | = 107 | |
| `PAL_PARAM_ID_MULTI_CLIENT_SDZ_OUTPUT` | = 108 | |
| `PAL_PARAM_ID_VOICE_NS_RX_CFG` | = 109 | |

### `pal_speaker_rotation_type`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_SPEAKER_ROTATION_LR` | | |
| `PAL_SPEAKER_ROTATION_RL` | | |

### *(anonymous)*

#### Values

| Name | Value | Description |
| - | - | - |
| `LC3_STREAM_MAP_BIT` | = 0x1 | |
| `LC3_CODEC_BIT` | = 0x1 \<\< 1 | |
| `LC3_FRAME_DURATION_BIT` | = 0x1 \<\< 2 | |
| `LC3_RXCFG_IDX_BIT` | = 0x1 \<\< 3 | |
| `LC3_TXCFG_IDX_BIT` | = 0x1 \<\< 4 | |
| `LC3_VERSION_BIT` | = 0x1 \<\< 5 | |
| `LC3_BLOCKS_FORSDU_BIT` | = 0x1 \<\< 6 | |
| `LC3_VENDOR_BIT` | = 0x1 \<\< 7 | |
| `LC3_BIT_ALL` | = LC3\_STREAM\_MAP\_BIT \| | |
| LC3\_CODEC\_BIT \| | | |
| LC3\_FRAME\_DURATION\_BIT \| | | |
| LC3\_RXCFG\_IDX\_BIT \| | | |
| LC3\_TXCFG\_IDX\_BIT \| | | |
| LC3\_VERSION\_BIT \| | | |
| LC3\_BLOCKS\_FORSDU\_BIT \| | | |
| LC3\_VENDOR\_BIT | | |
| `LC3_BIT_MASK` | = LC3\_BIT\_ALL & \~LC3\_FRAME\_DURATION\_BIT | |
| `LC3_BIT_VALID` | = LC3\_BIT\_MASK | |

### `pal_ultrasound_gain_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_ULTRASOUND_GAIN_MUTE` | = 0 | |
| `PAL_ULTRASOUND_GAIN_LOW` | | |
| `PAL_ULTRASOUND_GAIN_HIGH` | | |

### `BeCtrlsIndex`

#### Values

| Name | Value | Description |
| - | - | - |
| `BE_METADATA` | | |
| `BE_MEDIAFMT` | | |
| `BE_SETPARAM` | | |
| `BE_GROUP_ATTR` | | |
| `BE_MAX_NUM_MIXER_CONTROLS` | | |

### `pal_st_sound_model_type_t`

used to identify the sound model type for the session

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_SOUND_MODEL_TYPE_UNKNOWN` | = -1 | |
| `PAL_SOUND_MODEL_TYPE_KEYPHRASE` | = 0 | |
| `PAL_SOUND_MODEL_TYPE_GENERIC` | = 1 | |

### `pal_asr_event_status_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_ASR_EVENT_STATUS_SUCCESS` | = 0 | |
| `PAL_ASR_EVENT_STATUS_ABORTED` | = 1 | |
| `PAL_ASR_EVENT_STATUS_TIMEOUT` | = 2 | |

### `pal_asr_status_t`

#### Values

| Name | Value | Description |
| - | - | - |
| `PAL_ASR_STATUS_SUCCESS` | = 0 | |
| `PAL_ASR_STATUS_INVALID` | = -1 | |
| `PAL_ASR_STATUS_RESOURCE_CONTENTION` | = -2 | |
| `PAL_ASR_STATUS_OPERATION_NOT_SUPPORTED` | = -3 | |
| `PAL_ASR_STATUS_FAILURE` | = -4 | |

### `eventType`

#### Values

| Name | Value | Description |
| - | - | - |
| `PLAIN_TEXT` | = 0 | |
| `TIMESTAMP_BASED_TEXT` | | |
| `SPEAKER_DIARIZATION` | | |
| `CALL_TRANSLATION_TEXT` | | |
| `CALL_TRANSLATION_OUT_TEXT` | = CALL\_TRANSLATION\_TEXT | |
| `CALL_TRANSLATION_IN_TEXT` | = CALL\_TRANSLATION\_TEXT + 1 | |
| `CALL_TRANSLATION_INOUT_TEXT` | = CALL\_TRANSLATION\_TEXT + 2 | |

### `card_status_t`

Sound card state.

#### Values

| Name | Value | Description |
| - | - | - |
| `CARD_STATUS_OFFLINE` | = 0 | |
| `CARD_STATUS_ONLINE` | | |
| `CARD_STATUS_STANDBY` | | |
| `CARD_STATUS_NONE` | | |

## Macros

### `MIXER_PATH_MAX_LENGTH`

```c theme={null}
#define MIXER_PATH_MAX_LENGTH 100
```

### `PAL_MAX_CHANNELS_SUPPORTED`

```c theme={null}
#define PAL_MAX_CHANNELS_SUPPORTED 64
```

### `MAX_KEYWORD_SUPPORTED`

```c theme={null}
#define MAX_KEYWORD_SUPPORTED 8
```

### `PAL_MAX_LATENCY_MODES`

```c theme={null}
#define PAL_MAX_LATENCY_MODES 8
```

### `PAL_CUSTOM_PARAM_MAX_STRING_LENGTH`

```c theme={null}
#define PAL_CUSTOM_PARAM_MAX_STRING_LENGTH 64
```

### `PAL_VERSION`

```c theme={null}
#define PAL_VERSION "2.1"
```

### `PAL_MAX_SOUND_DOSE_VALUES`

```c theme={null}
#define PAL_MAX_SOUND_DOSE_VALUES 10
```

### `SEND_MSG_PARAM`

```c theme={null}
#define SEND_MSG_PARAM "sendMsg"
```

### `PCM_24_BIT_PACKED`

```c theme={null}
#define PCM_24_BIT_PACKED (0x6u)
```

### `PCM_32_BIT`

```c theme={null}
#define PCM_32_BIT (0x3u)
```

### `PCM_16_BIT`

```c theme={null}
#define PCM_16_BIT (0x1u)
```

### `SAMPLE_RATE_192000`

```c theme={null}
#define SAMPLE_RATE_192000 192000
```

### `MAX_SUPPORTED_CHANNEL_MASKS`

Android Media configuraiton

```c theme={null}
#define MAX_SUPPORTED_CHANNEL_MASKS (2 * 8)
```

### `MAX_SUPPORTED_FORMATS`

```c theme={null}
#define MAX_SUPPORTED_FORMATS 15
```

### `MAX_SUPPORTED_SAMPLE_RATES`

```c theme={null}
#define MAX_SUPPORTED_SAMPLE_RATES 7
```

### `PAL_STREAM_FLAG_NON_BLOCKING_MASK`

```c theme={null}
#define PAL_STREAM_FLAG_NON_BLOCKING_MASK 0x2
```

### `PAL_STREAM_FLAG_MMAP_MASK`

```c theme={null}
#define PAL_STREAM_FLAG_MMAP_MASK 0x4
```

### `PAL_STREAM_FLAG_MMAP_NO_IRQ_MASK`

PAL stream attributes to be specified, used in pal\_stream\_open cmd.

```c theme={null}
#define PAL_STREAM_FLAG_MMAP_NO_IRQ_MASK 0x8
```

### `MAX_CONTROLLERS`

HDMI/DP.

```c theme={null}
#define MAX_CONTROLLERS 1
```

### `MAX_STREAMS_PER_CONTROLLER`

```c theme={null}
#define MAX_STREAMS_PER_CONTROLLER 2
```

### `PAL_MAX_CUSTOM_KEY_SIZE`

```c theme={null}
#define PAL_MAX_CUSTOM_KEY_SIZE 128
```

### `DEVICE_NAME_MAX_SIZE`

```c theme={null}
#define DEVICE_NAME_MAX_SIZE 128
```

### `PAL_LC3_MAX_STRING_LEN`

```c theme={null}
#define PAL_LC3_MAX_STRING_LEN 200
```

### `PAL_SOUND_TRIGGER_MAX_STRING_LEN`

```c theme={null}
#define PAL_SOUND_TRIGGER_MAX_STRING_LEN 64 /* max length of strings in properties or descriptor structs */
```

### `PAL_SOUND_TRIGGER_MAX_LOCALE_LEN`

```c theme={null}
#define PAL_SOUND_TRIGGER_MAX_LOCALE_LEN 6  /* max length of locale string. e.g en_US */
```

### `PAL_SOUND_TRIGGER_MAX_USERS`

```c theme={null}
#define PAL_SOUND_TRIGGER_MAX_USERS 10      /* max number of concurrent users */
```

### `PAL_SOUND_TRIGGER_MAX_PHRASES`

```c theme={null}
#define PAL_SOUND_TRIGGER_MAX_PHRASES 10    /* max number of concurrent phrases */
```

### `PAL_RECOGNITION_MODE_VOICE_TRIGGER`

```c theme={null}
#define PAL_RECOGNITION_MODE_VOICE_TRIGGER 0x1       /* simple voice trigger */
```

### `PAL_RECOGNITION_MODE_USER_IDENTIFICATION`

```c theme={null}
#define PAL_RECOGNITION_MODE_USER_IDENTIFICATION 0x2 /* trigger only if one user in model identified */
```

### `PAL_RECOGNITION_MODE_USER_AUTHENTICATION`

```c theme={null}
#define PAL_RECOGNITION_MODE_USER_AUTHENTICATION 0x4 /* trigger only if one user in mode authenticated */
```

### `PAL_RECOGNITION_MODE_GENERIC_TRIGGER`

```c theme={null}
#define PAL_RECOGNITION_MODE_GENERIC_TRIGGER 0x8     /* generic sound trigger */
```

### `PAL_RECOGNITION_STATUS_SUCCESS`

```c theme={null}
#define PAL_RECOGNITION_STATUS_SUCCESS 0
```

### `PAL_RECOGNITION_STATUS_ABORT`

```c theme={null}
#define PAL_RECOGNITION_STATUS_ABORT 1
```

### `PAL_RECOGNITION_STATUS_FAILURE`

```c theme={null}
#define PAL_RECOGNITION_STATUS_FAILURE 2
```

### `PAL_RECOGNITION_STATUS_GET_STATE_RESPONSE`

```c theme={null}
#define PAL_RECOGNITION_STATUS_GET_STATE_RESPONSE 3  /* Indicates that the recognition event is in
                                                        response to a state request and was not
                                                        triggered by a real DSP recognition */
```

### `MAX_TRANSCRIPTION_CHAR_SIZE`

```c theme={null}
#define MAX_TRANSCRIPTION_CHAR_SIZE 1024
```

### `MAX_JSON_CHAR_SIZE`

```c theme={null}
#define MAX_JSON_CHAR_SIZE 4096
```

### `MAX_NUM_WORDS`

```c theme={null}
#define MAX_NUM_WORDS 200
```

### `MAX_WORD_LENGTH`

```c theme={null}
#define MAX_WORD_LENGTH 28
```

### `PAL_CARD_STATUS_DOWN`

```c theme={null}
#define PAL_CARD_STATUS_DOWN (n == CARD_STATUS_OFFLINE || n == CARD_STATUS_STANDBY)
```

### `PAL_CARD_STATUS_UP`

```c theme={null}
#define PAL_CARD_STATUS_UP (n == CARD_STATUS_ONLINE)
```

### `PAL_GENERIC_PLATFORM_DELAY`

```c theme={null}
#define PAL_GENERIC_PLATFORM_DELAY (29*1000LL)
```

### `PAL_DEEP_BUFFER_PLATFORM_DELAY`

```c theme={null}
#define PAL_DEEP_BUFFER_PLATFORM_DELAY (29*1000LL)
```

### `PAL_SPATIAL_AUDIO_PLATFORM_DELAY`

```c theme={null}
#define PAL_SPATIAL_AUDIO_PLATFORM_DELAY (13*1000LL)
```

### `PAL_PCM_OFFLOAD_PLATFORM_DELAY`

```c theme={null}
#define PAL_PCM_OFFLOAD_PLATFORM_DELAY (30*1000LL)
```

### `PAL_LOW_LATENCY_PLATFORM_DELAY`

```c theme={null}
#define PAL_LOW_LATENCY_PLATFORM_DELAY (13*1000LL)
```

### `PAL_MMAP_PLATFORM_DELAY`

```c theme={null}
#define PAL_MMAP_PLATFORM_DELAY (3*1000LL)
```

### `PAL_ULL_PLATFORM_DELAY`

```c theme={null}
#define PAL_ULL_PLATFORM_DELAY (4*1000LL)
```

### `PAL_VOIP_PLATFORM_DELAY`

```c theme={null}
#define PAL_VOIP_PLATFORM_DELAY (29*1000LL)
```

### `PAL_GENERIC_OUTPUT_PERIOD_DURATION`

```c theme={null}
#define PAL_GENERIC_OUTPUT_PERIOD_DURATION 40
```

### `PAL_DEEP_BUFFER_OUTPUT_PERIOD_DURATION`

```c theme={null}
#define PAL_DEEP_BUFFER_OUTPUT_PERIOD_DURATION 40
```

### `PAL_PCM_OFFLOAD_OUTPUT_PERIOD_DURATION`

```c theme={null}
#define PAL_PCM_OFFLOAD_OUTPUT_PERIOD_DURATION 80
```

### `PAL_LOW_LATENCY_OUTPUT_PERIOD_DURATION`

```c theme={null}
#define PAL_LOW_LATENCY_OUTPUT_PERIOD_DURATION 5
```

### `PAL_SPATIAL_AUDIO_PERIOD_DURATION`

```c theme={null}
#define PAL_SPATIAL_AUDIO_PERIOD_DURATION 10
```

### `PAL_VOIP_OUTPUT_PERIOD_DURATION`

```c theme={null}
#define PAL_VOIP_OUTPUT_PERIOD_DURATION 20
```

### `PAL_ULL_OUTPUT_PERIOD_DURATION`

```c theme={null}
#define PAL_ULL_OUTPUT_PERIOD_DURATION 10
```

### `PAL_GENERIC_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_GENERIC_PLAYBACK_PERIOD_COUNT 2
```

### `PAL_DEEP_BUFFER_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_DEEP_BUFFER_PLAYBACK_PERIOD_COUNT 2
```

### `PAL_PCM_OFFLOAD_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_PCM_OFFLOAD_PLAYBACK_PERIOD_COUNT 2
```

### `PAL_LOW_LATENCY_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_LOW_LATENCY_PLAYBACK_PERIOD_COUNT 2
```

### `PAL_SPATIAL_AUDIO_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_SPATIAL_AUDIO_PLAYBACK_PERIOD_COUNT 2
```

### `PAL_VOIP_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_VOIP_PLAYBACK_PERIOD_COUNT 2
```

### `PAL_ULL_PLAYBACK_PERIOD_COUNT`

```c theme={null}
#define PAL_ULL_PLAYBACK_PERIOD_COUNT 2
```

## Variables

### `lc3_reserved_params`

```cpp theme={null}
const char * lc3_reserved_params
```

### `beCtrlNames`

```cpp theme={null}
const char * beCtrlNames
```
