// SPDX-License-Identifier: MediaTekProprietary
typedef enum
{
    IDX_ALGO_MASK,
    IDX_ALGO_DM,
    IDX_ALGO_TREE,
    IDX_ALGO_HASH,
    IDX_ALGO_NUM
} IDX_ALGO_TYPE;

typedef enum
{
    EIspLV_IDX_00,
    EIspLV_IDX_01,
    EIspLV_IDX_02,
    EIspLV_IDX_03,
    EIspLV_IDX_04,
    EIspLV_IDX_05,
    EIspLV_IDX_06,
    EIspLV_IDX_07,
    EIspLV_IDX_08,
    EIspLV_IDX_09,
    EIspLV_NUM,
} EIspLV_T;

typedef enum
{
    EDim_IspProfile,
    EDim_dummy_SensorMode,
    EDim_FrontBin,
    EDim_dummy_Size,
    EDim_dummy_Flash,
    EDim_dummy_App,
    EDim_dummy_FaceDetection,
    EDim_dummy_Custom_00,
    EDim_dummy_Custom_01,
    EDim_dummy_Zoom,
    // EDim_IspLV,
    EDim_dummy_LV,
    EDim_dummy_CT,
    EDim_dummy_ISO,
    EDim_dummy_NUM
} EDim_dummy_T;

typedef enum
{
    EIspProfile_Preview,
    EIspProfile_Video,
    EIspProfile_Capture,
    EIspProfile_Capture_DCE,
    EIspProfile_MFNR_Before_Blend,
    EIspProfile_MFNR_After_Blend,
    EIspProfile_MFNR_MSF_0,
    EIspProfile_MFNR_MSF_1,
    EIspProfile_MFNR_MSF_2,
    EIspProfile_MFNR_MSF_3,
    EIspProfile_MFNR_MSF_4,
    EIspProfile_MFNR_MSF_5,
    EIspProfile_Capture_Before_Blend,
    EIspProfile_Capture_MSF_0,
    EIspProfile_Capture_MSF_1,
    EIspProfile_Capture_MSF_2,
    EIspProfile_Capture_MSF_3,
    EIspProfile_Capture_MSF_4,
    EIspProfile_Capture_MSF_5,
    EIspProfile_Capture_MSF_6,
    EIspProfile_Capture_MSF_YUV_0,
    EIspProfile_DSDN_MSF_0,
    EIspProfile_DSDN_MSF_1,
    EIspProfile_DSDN_MSF_2,
    EIspProfile_DSDN_MSF_3,
    EIspProfile_DSDN_MSF_4,
    EIspProfile_VSDOF_PV_Main,
    EIspProfile_VSDOF_PV_Main_toW,
    EIspProfile_VSDOF_Video_Main,
    EIspProfile_VSDOF_Video_Main_toW,
    EIspProfile_VSDOF_PV_Aux,
    EIspProfile_VSDOF_Video_Aux,
    EIspProfile_VSDOF_FE_Main,
    EIspProfile_VSDOF_FE_Aux,
    EIspProfile_VSDOF_FM,
    EIspProfile_VSDOF_BOK,
    EIspProfile_zHDR_Capture,
    EIspProfile_zHDR_Capture_DCE,
    EIspProfile_mHDR_Capture,
    EIspProfile_mHDR_Capture_DCE,
    EIspProfile_Auto_zHDR_Capture,
    EIspProfile_Auto_zHDR_Capture_DCE,
    EIspProfile_Auto_mHDR_Capture,
    EIspProfile_Auto_mHDR_Capture_DCE,
    EIspProfile_mHDR_Preview,
    EIspProfile_ms2HDR_Preview,
    EIspProfile_stg2HDR_Preview,
    EIspProfile_stg3HDR_Preview,
    EIspProfile_fc2HDR_Preview,
    EIspProfile_fc3HDR_Preview,
    EIspProfile_fmtfc2HDR_Preview,
    EIspProfile_fmtfc3HDR_Preview,
    EIspProfile_mHDR_Video,
    EIspProfile_ms2HDR_Video,
    EIspProfile_stg2HDR_Video,
    EIspProfile_stg3HDR_Video,
    EIspProfile_fc2HDR_Video,
    EIspProfile_fc3HDR_Video,
    EIspProfile_fmtfc2HDR_Video,
    EIspProfile_fmtfc3HDR_Video,
    EIspProfile_E2EHDR_Preview,
    EIspProfile_E2EHDR_Video,
    EIspProfile_mHDR_E2EHDR_Preview,
    EIspProfile_ms2HDR_E2EHDR_Preview,
    EIspProfile_stg2HDR_E2EHDR_Preview,
    EIspProfile_stg3HDR_E2EHDR_Preview,
    EIspProfile_fc2HDR_E2EHDR_Preview,
    EIspProfile_fc3HDR_E2EHDR_Preview,
    EIspProfile_fmtfc2HDR_E2EHDR_Preview,
    EIspProfile_fmtfc3HDR_E2EHDR_Preview,
    EIspProfile_mHDR_E2EHDR_Video,
    EIspProfile_ms2HDR_E2EHDR_Video,
    EIspProfile_stg2HDR_E2EHDR_Video,
    EIspProfile_stg3HDR_E2EHDR_Video,
    EIspProfile_fc2HDR_E2EHDR_Video,
    EIspProfile_fc3HDR_E2EHDR_Video,
    EIspProfile_fmtfc2HDR_E2EHDR_Video,
    EIspProfile_fmtfc3HDR_E2EHDR_Video,
    EIspProfile_EIS_Preview,
    EIspProfile_EIS_Video,
    EIspProfile_AIISP_MainYUV,
    EIspProfile_AIISP_MainBPC,
    EIspProfile_AIISP_NR_Capture_Before_Blend_12b_NNOut,
    EIspProfile_AIISP_Capture_MSF_0,
    EIspProfile_AIISP_Capture_MSF_1,
    EIspProfile_AIISP_Capture_MSF_2,
    EIspProfile_AIISP_Capture_MSF_3,
    EIspProfile_AIISP_Capture_MSF_4,
    EIspProfile_AIISP_Capture_MSF_5,
    EIspProfile_AIISP_Capture_MSF_6,
    EIspProfile_AINR_Preview_MSF_0,
    EIspProfile_AINR_Preview_MSF_1,
    EIspProfile_AINR_Preview_MSF_2,
    EIspProfile_AINR_Preview_MSF_3,
    EIspProfile_AINR_Preview_MSF_4,
    EIspProfile_AINR_Video_MSF_0,
    EIspProfile_AINR_Video_MSF_1,
    EIspProfile_AINR_Video_MSF_2,
    EIspProfile_AINR_Video_MSF_3,
    EIspProfile_AINR_Video_MSF_4,
    EIspProfile_AIISP_NR_Capture_Before_Blend_16b_DRCOut,
    EIspProfile_AIISP_DRC,
    EIspProfile_P1_YUV_FD,
    EIspProfile_SWHDR_RAW_DOMAIN,
    EIspProfile_SWHDR_YUV_DOMAIN,
    EIspProfile_YUV_Reprocess,
    EIspProfile_Thumbnail,
    EIspProfile_AIISP_HDR_Capture_DCE,
    EIspProfile_AIISP_HDR_MainYUV,
    EIspProfile_AIISP_HDR_MainBPC,
    EIspProfile_AIISP_HDR_Capture_MSF_0,
    EIspProfile_AIISP_HDR_Capture_MSF_1,
    EIspProfile_AIISP_HDR_Capture_MSF_2,
    EIspProfile_AIISP_HDR_Capture_MSF_3,
    EIspProfile_AIISP_HDR_Capture_MSF_4,
    EIspProfile_AIISP_HDR_Capture_MSF_5,
    EIspProfile_AIISP_HDR_Capture_MSF_6,
    EIspProfile_AIISP_HDR_Capture_Before_Blend_12b_NNOut,
    EIspProfile_AIISP_HDR_Capture_Before_Blend_16b_DRCOut,
    EIspProfile_AIISP_HDR_DRC,
    EIspProfile_AIISP_NR_Capture_Before_Blend_16b_NNOut,
    EIspProfile_AIISP_HDR_Capture_Before_Blend_16b_NNOut,
    EIspProfile_VHDR_DSDN_MSF_0,
    EIspProfile_VHDR_DSDN_MSF_1,
    EIspProfile_VHDR_DSDN_MSF_2,
    EIspProfile_VHDR_DSDN_MSF_3,
    EIspProfile_VHDR_DSDN_MSF_4,
    EIspProfile_VHDR_Reconfig_Preview,
    EIspProfile_VHDR_Reconfig_Video,
    EIspProfile_VHDR_Reconfig_E2EHDR_Preview,
    EIspProfile_VHDR_Reconfig_E2EHDR_Video,
    EIspProfile_NUM,
    EIspProfile_Flash_Capture,
    EIspProfile_Preview_Capture_ZOOM1,
    EIspProfile_Preview_Capture_ZOOM2,
    EIspProfile_Video_Preview_ZOOM1,
    EIspProfile_Video_Preview_ZOOM2,
    EIspProfile_Video_Video_ZOOM1,
    EIspProfile_Video_Video_ZOOM2,
    EIspProfile_Capture_Capture_ZOOM1,
    EIspProfile_Capture_Capture_ZOOM2,
    EIspProfile_MFNR_Before_ZOOM0,
    EIspProfile_MFNR_Before_ZOOM1,
    EIspProfile_MFNR_Before_ZOOM2,
    EIspProfile_MFNR_Single_ZOOM0,
    EIspProfile_MFNR_Single_ZOOM1,
    EIspProfile_MFNR_Single_ZOOM2,
    EIspProfile_MFNR_MFB_ZOOM0,
    EIspProfile_MFNR_MFB_ZOOM1,
    EIspProfile_MFNR_MFB_ZOOM2,
    EIspProfile_MFNR_After_ZOOM0,
    EIspProfile_MFNR_After_ZOOM1,
    EIspProfile_MFNR_After_ZOOM2,
    EIspProfile_Flash_Capture_ZOOM1,
    EIspProfile_Flash_Capture_ZOOM2,
    EIspProfile_iHDR_Preview_LINE,
    EIspProfile_zHDR_Preview_LINE,
    EIspProfile_mHDR_Preview_LINE,
    EIspProfile_Preview_Capture_Facebook,
    EIspProfile_Preview_Video_Facebook,
    EIspProfile_Video_Video_Facebook,
    EIspProfile_iHDR_Video_Messenger,
    EIspProfile_zHDR_Video_Messenger,
    EIspProfile_mHDR_Video_Messenger,
    EIspProfile_iHDR_Video_WhatsApp,
    EIspProfile_zHDR_Video_WhatsApp,
    EIspProfile_mHDR_Video_WhatsApp,
    EIspProfile_Capture_Capture_WhatsApp,
    EIspProfile_N3D_Video_WhatsApp,
    EIspProfile_N3D_Preview_QQ,
    EIspProfile_Capture_Capture_QQ,
    EIspProfile_iHDR_Preview,
    EIspProfile_iHDR_Video,
    EIspProfile_iHDR_Preview_VSS,
    EIspProfile_EIS_iHDR_Preview,
    EIspProfile_EIS_zHDR_Preview,
    EIspProfile_EIS_mHDR_Preview,
    EIspProfile_EIS_iHDR_Video,
    EIspProfile_EIS_zHDR_Video,
    EIspProfile_EIS_mHDR_Video,
    EIspProfile_EIS_Auto_iHDR_Preview,
    EIspProfile_EIS_Auto_zHDR_Preview,
    EIspProfile_EIS_Auto_mHDR_Preview,
    EIspProfile_EIS_Auto_iHDR_Video,
    EIspProfile_Auto_iHDR_Video,
    EIspProfile_EIS_Auto_zHDR_Video,
    EIspProfile_Auto_iHDR_Preview,
    EIspProfile_Auto_iHDR_Preview_VSS,
    EIspProfile_Auto_iHDR_Video_VSS,
    EIspProfile_iHDR_Video_VSS,
    EIspProfile_Capture_MultiPass_HWNR,
    EIspProfile_EIS_Auto_mHDR_Video,
    EIspProfile_N3D_Capture_toW,
    // added for build pass,
    EIspProfile_Capture_DSDN,
    EIspProfile_zHDR_Preview,
    EIspProfile_zHDR_Video,
    EIspProfile_zHDR_Preview_VSS,
    EIspProfile_mHDR_Preview_VSS,
    EIspProfile_zHDR_Video_VSS,
    EIspProfile_mHDR_Video_VSS,
    EIspProfile_zHDR_Capture_DSDN,
    EIspProfile_mHDR_Capture_DSDN,
    EIspProfile_zHDR_Capture_MFNR_Before_Blend,
    EIspProfile_zHDR_Capture_MFNR_Single,
    EIspProfile_zHDR_Capture_MFNR_MFB,
    EIspProfile_zHDR_Capture_MFNR_After_Blend,
    EIspProfile_Auto_zHDR_Preview,
    EIspProfile_Auto_mHDR_Preview,
    EIspProfile_Auto_zHDR_Video,
    EIspProfile_Auto_mHDR_Video,
    EIspProfile_Auto_zHDR_Preview_VSS,
    EIspProfile_Auto_mHDR_Preview_VSS,
    EIspProfile_Auto_zHDR_Video_VSS,
    EIspProfile_Auto_mHDR_Video_VSS,
    EIspProfile_Auto_zHDR_Capture_DSDN,
    EIspProfile_Auto_mHDR_Capture_DSDN,
    EIspProfile_N3D_Capture_Depth_toW,
    EIspProfile_N3D_Preview_toW,
    EIspProfile_Bokeh,
    EIspProfile_N3D_Capture,
    EIspProfile_N3D_Capture_Full,
    EIspProfile_N3D_Capture_Depth,
    EIspProfile_N3D_Preview,
    EIspProfile_N3D_Video_toW,
} EIspProfile_T;

typedef enum
{
    EISO_GROUP_00,
    EISO_GROUP_01,
    EISO_GROUP_02,
    EISO_GROUP_03,
    EISO_GROUP_04,
    EISO_GROUP_05,
    EISO_GROUP_06,
    EISO_GROUP_07,
    EISO_GROUP_08,
    EISO_GROUP_09,
    EISO_GROUP_NUM
} EISO_GROUP_T;


typedef enum
{
    EFrontBin_No,
    EFrontBin_Yes,
    EFrontBin_NUM,
} EFrontBin_T;

typedef enum
{
    ECustom_00_00,
    ECustom_00_NUM,
} ECustom_00_T;

typedef enum
{
    ECustom_01_00,
    ECustom_01_01,
    ECustom_01_02,
    ECustom_01_NUM,
} ECustom_01_T;

typedef enum
{
    EModule_AE,
    EModule_AF,
    EModule_AWB,
    EModule_Flash_AE,
    EModule_Flash_AWB,
    EModule_Flash_Calibration,
    EModule_DM,
    EModule_CNR_CNR,
    EModule_EE,
    EModule_BPC_BPC,
    EModule_BPC_CT,
    EModule_BPC_PDC,
    EModule_CNR_CCR,
    EModule_CNR_ABF,
    EModule_BSS,
    EModule_CCM,
    EModule_COLOR_PARAM,
    EModule_COLOR,
    EModule_AKS,
    EModule_FRZ,
    EModule_BPC_BPC_R3,
    EModule_BPC_CT_R3,
    EModule_BPC_PDC_R3,
    EModule_BPC_BPC_R2,
    EModule_AIAWB_MA,
    EModule_AIAWB_SA,
    EModule_BPC_CT_R2,
    EModule_BPC_PDC_R2,
    EModule_SNR,
    EModule_SNRS,
    EModule_REC,
    EModule_TDSHP,
    EModule_TDSHP_HFG,
    EModule_SW_TNR,
    EModule_OBC_GRAY,
    EModule_OBC_OFST,
    EModule_OBC_OFST_R2,
    EModule_OBC_OFST_R3,
    EModule_QBPC,
    EModule_QRM,
    EModule_FW_FUS,
    EModule_FW_FUS_CFG,
    EModule_FW_FUS_NM,
    EModule_FW_FUS_NR,
    EModule_DRZS4N,
    EModule_DRZS8T,
    EModule_DRZS8T_R2,
    EModule_RZH4N6T,
    EModule_SW_DRZH2N,
    EModule_FW_ME,
    EModule_FW_ME_CFG_BI,
    EModule_FW_ME_CFG_BS,
    EModule_FW_ME_TCY,
    EModule_WPE_E1A,
    EModule_WPE_E1B,
    EModule_MSYUV_MSABF,
    EModule_MSYUV_MSCCR,
    EModule_MSYUV_MSCNR,
    EModule_MSYUV_MSEE,
    EModule_MSYUV_MSSNR,
    EModule_MSYUV_MSSNRS,
    EModule_SNR_TBL,
    EModule_SNRS_TBL,
    EModule_MSYUV_CTRL,
    EModule_SW_VHDR,
    EModule_SW_MCNR,
    EModule_LPNR_THRES,
    EModule_FW_MM,
    EModule_MFNR,
    EModule_MFNR_THRES,
    EModule_SW_ME,
    EModule_FW_SNR,
    EModule_TONE,
    EModule_P1GGM,
    EModule_NUM
} EModule_T;

typedef enum
{
    ESize_SIZE_00,
    ESize_SIZE_01,
    ESize_SIZE_02,
    ESize_SIZE_03,
    ESize_NUM,
} ESize_T;