blob: 126603533d00d0b1e2e2b248e63f3e38e124993f [file] [log] [blame]
/*
* Copyright (c) 2019, 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.
*/
typedef enum {
PLATFORM_LA = 1, /**< @h2xmle_name {LA} */
PLATFORM_LE = 2, /**< @h2xmle_name {LE} */
}platforms;
/**
@h2xml_platforms{PLATFORM_LA,PLATFORM_LE}
*/
enum AllKeyIds{
STREAMRX = 0xA1000000, /**< @h2xmle_name{StreamRX} */
DEVICERX = 0xA2000000, /**< @h2xmle_name{DeviceRX} */
DEVICETX = 0xA3000000, /**< @h2xmle_name{DeviceTX} */
VOLUME = 0xA4000000, /**< @h2xmle_name{Volume} */
SAMPLINGRATE = 0xA5000000, /**< @h2xmle_name{SamplingRate} */
BITWIDTH = 0xA6000000, /**< @h2xmle_name{BitWidth} */
PAUSE = 0xA7000000, /**< @h2xmle_name{Pause} */
MUTE = 0xA8000000, /**< @h2xmle_name{Mute} */
CHANNELS = 0xA9000000, /**< @h2xmle_name{Channels} */
ECNS = 0xAA000000, /**< @h2xmle_name{ECNS} */
INSTANCE = 0xAB000000, /**< @h2xmle_name{Instance} */
DEVICEPP_RX = 0xAC000000, /**< @h2xmle_name{DevicePP_Rx} */
DEVICEPP_TX = 0xAD000000, /**< @h2xmle_name{DevicePP_Tx} */
MEDIAFMTID = 0xae000000,
STREAMTX = 0xb1000000,
EQUALIZER_SWITCH = 0xb2000000,
VIRTUALIZER_SWITCH = 0xb9000000,
REVERB_SWITCH = 0xb8000000,
PBE_SWITCH = 0xb6000000,
BASS_BOOST_SWITCH = 0xb7000000,
STREAM_SLOWTALK = 0xbb000000,
STREAM_CONFIG = 0xbc000000,
STREAM_MUXDEMUX = 0xbd000000,
TAG_KEY_SLOT_MASK = 0xe0000000
};
/**
@h2xmlk_key {STREAMRX}
@h2xmlk_description {Type of Rx Stream}
*/
enum Key_StreamRX {
PCM_LL_PLAYBACK = 0xA1000001, /**< @h2xmle_name {PCM_LL_Playback}*/
PCM_RECORD = 0xA1000002, /**< @h2xmle_name {PCM_Record}*/
PCM_LOOPBACK = 0xA1000003, /**< @h2xmle_name {PCM_Loopback}*/
VOICE_UI = 0xA1000004, /**< @h2xmle_name {Voice_UI}*/
VOIP_RX_PLAYBACK = 0xA1000005,/**< @h2xmle_name {Voip_Rx}*/
VOIP_TX_RECORD = 0xA1000006, /**< @h2xmle_name {Voip_Tx}*/
VOICE_UI_EC_REF_PATH = 0xA1000007,/**< @h2xmle_name {Voice_UI_EC_Ref_Path}*/
VOIP_TX_EC_REF_PATH = 0xA1000008, /**< @h2xmle_name {Voip_Tx_EC_Ref_Path}*/
PCM_RECORD_EC_REF_PATH = 0xA1000009,/**< @h2xmle_name {PCM_Record_EC_Ref_Path}*/
COMPRESSED_OFFLOAD_PLAYBACK = 0xa100000a,
HAPTICS_PLAYBACK = 0xa1000015,
};
/**
@h2xmlk_key {INSTANCE}
@h2xmlk_description {Stream Instance Id}
*/
enum Key_Instance {
INSTANCE_1 = 1, /**< @h2xmle_name {Instance_1}*/
INSTANCE_2 = 2, /**< @h2xmle_name {Instance_2}*/
INSTANCE_3 = 3, /**< @h2xmle_name {Instance_3}*/
};
/**
@h2xmlk_key {DEVICERX}
@h2xmlk_description {Rx Device}
*/
enum Key_DeviceRX {
SPEAKER = 0xA2000001, /**< @h2xmle_name {Speaker}*/
HANDSET = 0xa2000004,
HAPTICS_DEVICE = 0xa2000009,
};
/**
@h2xmlk_key {DEVICETX}
@h2xmlk_description {Tx Device}
*/
enum Key_DeviceTX {
HANDSETMIC = 0xA3000004, /**< @h2xmle_name {HandsetMic}*/
HANDSETMIC_VA = 0xa3000006
};
/**
@h2xmlk_key {DEVICEPP_RX}
@h2xmlk_description {Rx Device Post/Pre Processing Chain}
*/
enum Key_DevicePP_RX {
DEVICEPP_RX_DEFAULT = 0xAC000001, /**< @h2xmle_name {Audio_LL_Default_PP} @h2xmlk_description {Low Latency Default Playback}*/
DEVICEPP_RX_AUDIO_MBDRC = 0xac000002,
};
/**
@h2xmlk_key {DEVICEPP_TX}
@h2xmlk_description {Tx Device Post/Pre Processing Chain}
*/
enum Key_DevicePP_TX {
DEVICEPP_TX_FLUENCE_FFECNS = 0xAD000001, /**< @h2xmle_name {Voice_Fluence_FFECNS} @h2xmlk_description {Used in Voice UI use-cases}*/
DEVICEPP_TX_AUDIO_FLUENCE_SMECNS = 0xAD000002, /**< @h2xmle_name {Audio_Fluence_SMECNS} @h2xmlk_description {Single Mic ECNS }*/
DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE = 0xAD000003, /**< @h2xmle_name {Audio_Fluence_Endfire} @h2xmlk_description {EndFire_ECNS - Typically used for dual mic capture scenarios}*/
DEVICEPP_TX_AUDIO_FLUENCE_PRO = 0xAD000004, /**< @h2xmle_name {Audio_Fluence_Pro} @h2xmlk_description {Multi MIC scenarios ; at least 3 or more Micss}*/
};
enum Key_StreamConfig {
STREAM_CFG_VUI_SVA = 0xbc000001,
};
/**
@h2xmlk_key {VOLUME}
@h2xmlk_description {Volume}
*/
enum Key_Volume {
LEVEL_0 = 0, /**< @h2xmle_name {Level_0}*/
LEVEL_1 = 1, /**< @h2xmle_name {Level_1}*/
LEVEL_2 = 2, /**< @h2xmle_name {Level_2}*/
LEVEL_3 = 3, /**< @h2xmle_name {Level_3}*/
LEVEL_4 = 4, /**< @h2xmle_name {Level_4}*/
LEVEL_5 = 5, /**< @h2xmle_name {Level_5}*/
LEVEL_6 = 6, /**< @h2xmle_name {Level_6}*/
LEVEL_7 = 7, /**< @h2xmle_name {Level_7}*/
LEVEL_8 = 8, /**< @h2xmle_name {Level_8}*/
LEVEL_9 = 9, /**< @h2xmle_name {Level_9}*/
LEVEL_10 = 10, /**< @h2xmle_name {Level_10}*/
LEVEL_11 = 11, /**< @h2xmle_name {Level_11}*/
LEVEL_12 = 12, /**< @h2xmle_name {Level_12}*/
LEVEL_13 = 13, /**< @h2xmle_name {Level_13}*/
LEVEL_14 = 14, /**< @h2xmle_name {Level_14}*/
LEVEL_15 = 15, /**< @h2xmle_name {Level_15}*/
};
/**
@h2xmlk_key {SAMPLINGRATE}
@h2xmlk_sampleRate
@h2xmlk_description {Sampling Rate}
*/
enum Key_SamplingRate {
SAMPLINGRATE_8K = 8000, /**< @h2xmle_sampleRate{8000} @h2xmle_name {SR_8K}*/
SAMPLINGRATE_16K = 16000, /**< @h2xmle_sampleRate{16000} @h2xmle_name {SR_16K}*/
SAMPLINGRATE_32K = 32000, /**< @h2xmle_sampleRate{32000} @h2xmle_name {SR_32K}*/
SAMPLINGRATE_44K = 44100, /**< @h2xmle_sampleRate{44100} @h2xmle_name {SR_44.1K}*/
SAMPLINGRATE_48K = 48000, /**< @h2xmle_sampleRate{48000} @h2xmle_name {SR_48K}*/
SAMPLINGRATE_96K = 96000, /**< @h2xmle_sampleRate{96000} @h2xmle_name {SR_96K}*/
SAMPLINGRATE_192K = 192000, /**< @h2xmle_sampleRate{192000} @h2xmle_name {SR_192K}*/
SAMPLINGRATE_384K = 384000, /**< @h2xmle_sampleRate{384000} @h2xmle_name {SR_384K}*/
};
/**
@h2xmlk_key {BITWIDTH}
@h2xmlk_description {Bit Width}
*/
enum Key_BitWidth {
BITWIDTH_16 = 16, /**< @h2xmle_name {BW_16}*/
BITWIDTH_24 = 24, /**< @h2xmle_name {BW_24}*/
BITWIDTH_32 = 32, /**< @h2xmle_name {BW_32}*/
};
/**
@h2xmlk_key {PAUSE}
@h2xmlk_description {Pause}
*/
enum Key_Pause {
OFF = 0, /**< @h2xmle_name {Off}*/
ON = 1, /**< @h2xmle_name {On}*/
};
/**
@h2xmlk_key {MUTE}
@h2xmlk_description {Mute}
*/
enum Key_Mute {
MUTE_OFF = 0, /**< @h2xmle_name {Off}*/
MUTE_ON = 1, /**< @h2xmle_name {On}*/
};
/**
@h2xmlk_key {CHANNELS}
@h2xmlk_description {Channels}
*/
enum Key_Channels {
CHANNELS_1 = 1, /**< @h2xmle_name {CHS_1}*/
CHANNELS_2 = 2, /**< @h2xmle_name {CHS_2}*/
CHANNELS_3 = 3, /**< @h2xmle_name {CHS_3}*/
CHANNELS_4 = 4, /**< @h2xmle_name {CHS_4}*/
CHANNELS_5 = 5, /**< @h2xmle_name {CHS_5}*/
CHANNELS_5_1 = 6, /**< @h2xmle_name {CHS_6}*/
CHANNELS_7 = 7, /**< @h2xmle_name {CHS_7}*/
CHANNELS_8 = 8, /**< @h2xmle_name {CHS_8}*/
};
/**
@h2xmlk_key {ECNS}
@h2xmlk_description {ECNS}
*/
enum Key_ECNS {
ECNS_OFF = 0, /**< @h2xmle_name {ECNS_Off}*/
ECNS_ON = 1, /**< @h2xmle_name {ECNS_On}*/
EC_ON = 2,
NS_ON = 3,
};
/**
@h2xmlk_gkeys
@h2xmlk_description {Graph Keys}
*/
enum Graph_Keys {
gk_StreamRX = STREAMRX,
gk_DeviceRX = DEVICERX,
gk_DeviceTX = DEVICETX,
gk_DevicePP_RX = DEVICEPP_RX,
gk_DevicePP_TX = DEVICEPP_TX,
gk_Instance = INSTANCE,
gk_StreamTX = STREAMTX,
};
/**
@h2xmlk_ckeys
@h2xmlk_description {Calibration Keys}
*/
enum Cal_Keys {
ck_volume = VOLUME,
};
#define DEVICE_HW_ENDPOINT_RX 0xC0000004
/**
@h2xmlk_modTag {"device_hw_ep_rx",DEVICE_HW_ENDPOINT_RX}
@h2xmlk_description {Hw EP Rx}
*/
enum HW_ENDPOINT_RX_Keys {
tk1_hweprx = DEVICERX,
tk2_hweprx = SAMPLINGRATE,
tk3_hweprx = BITWIDTH,
tk4_hweprx = CHANNELS,
};
#define DEVICE_HW_ENDPOINT_TX 0xC0000005
/**
@h2xmlk_modTag {"device_hw_ep_tx",DEVICE_HW_ENDPOINT_TX}
@h2xmlk_description {Hw EP Tx}
*/
enum HW_ENDPOINT_TX_Keys {
tk1_hweptx = DEVICETX,
tk2_hweptx = SAMPLINGRATE,
tk3_hweptx = BITWIDTH,
tk4_hweptx = CHANNELS,
};
#define TAG_PAUSE 0xC0000006
/**
@h2xmlk_modTag {"stream_pause", TAG_PAUSE}
@h2xmlk_description {Stream Pause}
*/
enum TAG_PAUSE_Keys {
tk1_Pause = PAUSE,
};
#define TAG_MUTE 0xC0000007
/**
@h2xmlk_modTag {"stream_mute", TAG_MUTE}
@h2xmlk_description {Stream Mute}
*/
enum TAG_MUTE_Keys {
tk1_Mute = MUTE,
};
#define TAG_ECNS 0xC000000A
/**
@h2xmlk_modTag {"device_ecns", TAG_ECNS}
@h2xmlk_description {Ecns On/Off}
*/
enum TAG_ECNS_Keys {
tk1_Ecns = ECNS,
};
#define TAG_STREAM_VOLUME 0xC000000D
/**
@h2xmlk_modTag {"stream_volume", TAG_STREAM_VOLUME}
@h2xmlk_description {Stream Volume}
*/
enum TAG_STREAM_VOLUME_Keys {
tk1_Volume = VOLUME,
};
#define TAG_DEVICE_PP_MFC 0xC0000011
/**
@h2xmlk_modTag {"device_pp_mfc", TAG_DEVICE_PP_MFC}
@h2xmlk_description {Device PP MFC}
*/
enum TAG_DEVICE_PP_MFC_Keys {
tk1_SamplingRate = SAMPLINGRATE,
tk2_BitWidth = BITWIDTH,
tk3_Channels = CHANNELS,
};
#define TAG_STREAM_MFC 0xc000000b
// Same enum names as TAG_DEVICE_PP_MFC_Keys
/*enum TAG_STREAM_MFC_Keys {
tk1_SamplingRate = SAMPLINGRATE,
tk2_BitWidth = BITWIDTH,
tk3_Channels = CHANNELS,
};*/
#define TAG_STREAM_PLACEHOLDER_DECODER 0xc0000012
enum TAG_STREAM_PLACEHOLDER_DECODER_Keys {
tk1_MediaFmtID = MEDIAFMTID,
};
#define TAG_STREAM_EQUALIZER 0xc0000014
enum TAG_STREAM_EQUALIZER_Keys {
tk1_Equalizer = EQUALIZER_SWITCH,
};
#define TAG_STREAM_VIRTUALIZER 0xc0000015
enum TAG_STREAM_VIRTUALIZER_Keys {
tk1_Virtualizer_Switch = VIRTUALIZER_SWITCH,
};
#define TAG_STREAM_REVERB 0xc0000016
enum TAG_STREAM_REVERB_Keys {
tk1_Reverb_Switch = REVERB_SWITCH,
};
#define TAG_STREAM_PBE 0xc0000017
enum TAG_STREAM_PBE_Keys {
tk1_PBE_Switch = PBE_SWITCH,
};
#define TAG_STREAM_BASS_BOOST 0xc0000018
enum TAG_STREAM_BASS_BOOST_Keys {
tk1_BASS_BOOST_Switch = BASS_BOOST_SWITCH,
};
#define PER_STREAM_PER_DEVICE_MFC 0xc0000019
// Same enum names as TAG_DEVICE_PP_MFC_Keys
/*enum TAG_PSPD_MFC_Keys {
tk1_SamplingRate = SAMPLINGRATE,
tk2_BitWidth = BITWIDTH,
tk3_Channels = CHANNELS,
};*/
#define TAG_STREAM_SLOWTALK 0xc0000025
enum TAG_STREAM_SLOWTALK_Keys {
tk1_Stream_SlowTalk = STREAM_SLOWTALK,
};
#define TAG_MODULE_CHANNELS 0xc0000026
enum TAG_MODULE_CHANNELS_Keys {
tk1_Channels = CHANNELS,
};
#define TAG_STREAM_MUXDEMUX 0xc0000027
enum TAG_STREAM_MUXDEMUX_Keys {
tk1_Stream_MuxDemux= STREAM_MUXDEMUX,
};
#define TAG_DEVICE_MUX 0xc0000040
enum TAG_DEVICE_MUX_Keys {
tk1_SlotMask= TAG_KEY_SLOT_MASK,
};
/**
@h2xmlk_modTagList
*/
enum TAGS_DEFINITIONS {
SHMEM_ENDPOINT = 0xC0000001, /**< @h2xmle_name {"sh_ep"} */
STREAM_INPUT_MEDIA_FORMAT = 0xC0000002, /**< @h2xmle_name {"stream_input_media_format" } */
STREAM_OUTPUT_MEDIA_FORMAT = 0xC0000003, /**< @h2xmle_name {"stream_output_media_format" } */
DEVICE_SVA = 0xC0000008, /**< @h2xmle_name {"device_sva"} */
DEVICE_ADAM = 0xC0000009, /**< @h2xmle_name {"device_adam"} */
STREAM_MFC = 0xC000000B, /**< @h2xmle_name {"stream_mfc"} */
DEVICE_MFC = 0xC000000C, /**< @h2xmle_name {"device_mfc"} */
STREAM_PCM_DECODER = 0xC000000E, /**< @h2xmle_name {"stream_pcm_decoder"} */
STREAM_PCM_ENCODER = 0xC000000F, /**< @h2xmle_name {"stream_pcm_encoder"} */
STREAM_PCM_CONVERTER = 0xC0000010, /**< @h2xmle_name {"stream_pcm_converter"} */
};
typedef enum TAGS_DEFINITIONS TAGS_DEFINITIONS;