//-------------------------------------------------------------------------
// Copyright (c) 2022 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//------------------------------------------------------------------------

//------------------------------------------------------------------------
// @file  iqsettings_v6.h
// @brief SPECTRA_740 data type definitions
//------------------------------------------------------------------------

#ifndef _IQSETTINGS_V6_H_
#define _IQSETTINGS_V6_H_

#include "ipdefs.h"

//------------------------------------------------------------------------
// Constant Definitions
//------------------------------------------------------------------------

//------------------------------------------------------------------------
// Type Declarations
//------------------------------------------------------------------------

#pragma pack(push)
#pragma pack(1)

// SPECTRA_740  OPE Additions
/* Bayer LTM */
typedef struct _BAYER_LTM_MODULE_CFG_v12
{
    uint32_t  EN;              /* 0:0 */
    uint32_t  GAMMA_EN;        /* 8:8 */
    uint32_t  LA_EN;           /* 12:12 */
    uint32_t  TABLE_SEL;       /* 23:21 */
} BAYER_LTM_MODULE_CFG_v12;

typedef struct _BayerLtmParameters_v12 // Local tone mapping
{
    BAYER_LTM_MODULE_CFG_v12 moduleCfg;

    uint32_t dcBinInitCnt;

    uint32_t downscaleMNHorTermination;
    uint32_t downscaleMNVerTermination;

    uint32_t dataCollectionEnabled;

    uint32_t ltmImgProcessEn;
} BayerLtmParameters_v12;

/* HDRC */
typedef struct _HDRC_MODULE_CFG_V5
{
    uint32_t EN;                         /* 0:0 */
    uint32_t KERNEL_SIZE;                /* 9:9 */
    uint32_t RNR_EN;                     /* 10:10 */
    uint32_t HLM_CROP_EN;                /* 11:11 */
    uint32_t MAC2_MOTION_EN;             /* 22:22 */
    uint32_t MAC2_GRAD_MOTION_EN;        /* 23:23 */
    uint32_t MAC2_HIGHLIGHT_BLENDING_EN; /* 24:24 */
    uint32_t MAC2_LOWLIGHT_BLENDING_EN;  /* 25:25 */
    uint32_t MAC2_HIGHLIGHT_MOTION_EN;   /* 26:26 */
    uint32_t MAC2_BPC_SCREENING_EN;      /* 27:27 */
    uint32_t MAC2_ABF_CROSS_PROCESS_EN;  /* 29:29 */
    uint32_t MAC2_ABF_SINGLE_BPC_EN;     /* 30:30 */
    uint32_t MAC2_ABF_EN;                /* 31:31 */
} HDRC_MODULE_CFG_V5;

typedef struct _HDRC_MOTION_CFG // CFG_9
{
    uint32_t MAC2_DILATION;                      /* 2:0 */
    uint32_t MAC2_MOTION_STRENGTH;               /* 11:8 */
    uint32_t MAC2_MOTION_GRAD_MATCHING_WEIGHT;   /* 27:24 */
} HDRC_MOTION_CFG;

typedef struct _HDRC_HLM_CFG
{
    // CFG_6
    uint32_t HDR_HLM_COUNT_X_START;      /* 13:0 */
    uint32_t HDR_HLM_COUNT_X_END;        /* 29:16 */
    // CFG_1
    uint32_t HDR_HLM_OUTPUT_CHOICE;      /* 8:8  1:Mask 0:Count*/
    uint32_t HDR_MAC2_HLM_EN;            /* 4:4 */
} HDRC_HLM_CFG;

typedef struct _HdrcParameters_v5
{
    HDRC_MODULE_CFG_V5 moduleCfg;
    HDRC_MOTION_CFG motionCfg;
    HDRC_HLM_CFG hlmCfg;
}HdrcParameters_v5;

typedef struct _ShdrParameters
{
    HdrcParameters_v5               hdrcParameters_v5;
    GicParameters_680               gicParameters;
    AbfParameters_680               abfParameters;
} ShdrParameters;

#pragma pack(pop)

#endif // _IQSETTINGS_V6_H_
