/*
 * @file hv_app_DdcciPQ.h
 * @brief Header file of ddcci for TPV PQ factory.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 * (+) Use 
 *
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2024-05-06
 */



#ifndef _HV_APP_DDCCI_PQ_FACTORY_H
#define _HV_APP_DDCCI_PQ_FACTORY_H

#include "hv_comm_DataType.h"
#include "hv_vos_Comm.h"
#include "hv_comm_Define.h"
#if 0
typedef struct _PQCecPara
{
    USHORT16 usCurrentBrightness;
    USHORT16 usMaxBrightness;
    UCHAR8 CecMinLum;
    UCHAR8 CecMaxLum;
}CecPara;

typedef struct _PQPanelPara
{
    USHORT16 usPanelTypicalBright;
    USHORT16 usPanelMaxBrightness;
}PQPanelPara;

/**
 * @brief Get max value of RGB gain
 * @param[in] None
 * @return max value of RGB gain 
 */
USHORT16 Hv_App_Ddcci_PQ_GetRGBGainMaxVal(VOID);
/**
 * @brief set R gain
 * @param[in] usRed value of R gain
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetRGain(USHORT16 usRed);
/**
 * @brief get R gain
 * @param[in] None
 * @return value of R gain 
 */
USHORT16 Hv_App_Ddcci_PQ_GetRGain(VOID);
/**
 * @brief set G gain
 * @param[in] usGreen value of G gain
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetGGain(USHORT16 usGreen);
/**
 * @brief get G gain
 * @param[in] None
 * @return value of G gain 
 */
USHORT16 Hv_App_Ddcci_PQ_GetGGain(VOID);
/**
 * @brief set B gain
 * @param[in] usBlue value of B gain
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetBGain(USHORT16 usBlue);
/**
 * @brief get B gain
 * @param[in] None
 * @return value of B gain 
 */
USHORT16 Hv_App_Ddcci_PQ_GetBGain(VOID);
/**
 * @brief set R offset
 * @param[in] usRed value of R offset
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetROffset(USHORT16 usRed);
/**
 * @brief get R offset
 * @param[in] None
 * @return value of R offset 
 */
USHORT16 Hv_App_Ddcci_PQ_GetROffset(VOID);
/**
 * @brief set G offset
 * @param[in] ucGreen value of G offset
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetGOffset(USHORT16 usGreen);
/**
 * @brief get G offset
 * @param[in] None
 * @return value of G offset 
 */
USHORT16 Hv_App_Ddcci_PQ_GetGOffset(VOID);
/**
 * @brief set B offset
 * @param[in] usBlue value of B offset
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetBOffset(USHORT16 usBlue);
/**
 * @brief get B offset
 * @param[in] None
 * @return value of B offset 
 */
USHORT16 Hv_App_Ddcci_PQ_GetBOffset(VOID);
/**
 * @brief set contrast
 * @param[in] ucVal value of contrast
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetContrast(UCHAR8 ucVal);
/**
 * @brief get value of contrast
 * @param[in] None
 * @return value of contrast 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetContrast(VOID);
/**
 * @brief set brightness
 * @param[in] ucVal value of brightness
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetBrightness(UCHAR8 ucVal);
/**
 * @brief get value of brightness
 * @param[in] None
 * @return value of brightness 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetBrightness(VOID);
/**
 * @brief set osd brightness
 * @param[in] ucVal value of brightness
 * @param[in] ucAct flag of brightness
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetDefaultBrightness(UCHAR8 ucVal, UCHAR8 ucAct);
/**
 * @brief get value of osd default brightness
 * @param[in] None
 * @return value of brightness 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetDefaultBrightness(VOID);

/**
 * @brief set sub brightness
 * @param[in] ucVal value of sub brightness
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetSubBrightness(UCHAR8 ucVal, UCHAR8 ucFlag);
/**
 * @brief get value of sub brightness
 * @param[in] None
 * @return value of sub brightness 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetSubBrightness(VOID);
/**
 * @brief set text mode brightness
 * @param[in] ucVal value of text mode brightness
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetTextModeBrightness(UCHAR8 ucVal, UCHAR8 ucFlag);
/**
 * @brief get value of text mode brightness
 * @param[in] None
 * @return value of text mode brightness 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetTextModeBrightness(VOID);
/**
 * @brief set read mode brightness
 * @param[in] ucVal value of read mode brightness
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetReadModeBrightness(UCHAR8 ucVal, UCHAR8 ucFlag);
/**
 * @brief get value of read mode brightness
 * @param[in] None
 * @return value of read mode brightness 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetReadModeBrightness(VOID);
/**
 * @brief set CEC mode brightness
 * @param[in] ucVal value of CEC mode brightness
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetCECModeBrightness(USHORT16 usVal, UCHAR8 ucFlag);
/**
 * @brief set max brightness duty
 * @param[in] ucVal value max brightness duty
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetMaxBrightnessDuty(USHORT16 usVal, UCHAR8 ucFlag);
/**
 * @brief set SRGB brightness
 * @param[in] ucVal value of SRGB brightness
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetSRGBBrightness(UCHAR8 ucVal, UCHAR8 ucFlag);
/**
 * @brief get value of SRGB brightness
 * @param[in] None
 * @return value of SRGB brightness 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetSRGBBrightness(VOID);
/**
 * @brief save color parameters to SRGB
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorSRGB(UCHAR8 ucFlag);
/**
 * @brief save color parameters to native
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorNative(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 4000K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor4000K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 5000K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor5000K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 6500K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor6500K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 7500K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor7500K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 8200K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor8200K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 9300K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor9300K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 10000K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor10000K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to 11500K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColor11500K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to user temp
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorUser(UCHAR8 ucFlag);
/**
 * @brief save color parameters to text mode
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorTextMode(UCHAR8 ucFlag);
/**
 * @brief save color parameters to standard mode
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorStandMode(UCHAR8 ucFlag);
/**
 * @brief save color parameters to custom mode
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorCustomMode(UCHAR8 ucFlag);
/**
 * @brief save color parameters to XX00K
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveColorXX00K(UCHAR8 ucFlag);
/**
 * @brief save color parameters to cinema
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveCinema(UCHAR8 ucFlag);
/**
 * @brief save color parameters to gaming
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveGaming(UCHAR8 ucFlag);
/**
 * @brief save color parameters to native
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveNative(UCHAR8 ucFlag);
/**
 * @brief  set HDR
 * @param[in] ucFlag status of HDR
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetHDR(UCHAR8 ucFlag);
/**
 * @brief  set HDR duty
 * @param[in] usVal value of HDR duty
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetHDRDuty(USHORT16 usVal);
/**
 * @brief save color parameters to movie HDR mode 
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveMovieHDRMode(UCHAR8 ucFlag);
/**
 * @brief save color parameters to game HDR mode 
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveGameHDRMode(UCHAR8 ucFlag);
/**
 * @brief save color parameters to picture mode 
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SavePictureMode(UCHAR8 ucFlag);
/**
 * @brief save color parameters to AdobeRGB
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveAdobeRGB(UCHAR8 ucFlag);
/**
 * @brief save color parameters to BT709
 * @param[in] ucFlag flag of saving
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveBT709(UCHAR8 ucFlag);
/**
 * @brief save all temp parameters
 * @param[in] none
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SaveAllTemp(VOID);
/**
 * @brief set gamma
 * @param[in] ucVal id of gamma
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SelectGamma(UCHAR8 ucVal);
/**
 * @brief get gamma id
 * @param[in] None 
 * @return id of gamma 
 */
UCHAR8 Hv_App_Ddcci_PQ_GetGamma(VOID);
/**
 * @brief set DCR
 * @param[in] ucVal status of DCR
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_SetDCR(UCHAR8 ucVal);
/**
 * @brief enter CEC mode 
 * @param[in] ucVal enable of CEC
 * @param[in] pstCecPara parameters of CEC
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_EnterCECMode(UCHAR8 ucVal, CecPara *pstCecPara);
/**
 * @brief exit CEC mode 
 * @param[in] ucVal parameters of CEC
 * @return None 
 */
VOID Hv_App_Ddcci_PQ_ExitCECMode(UCHAR8 ucVal);
/**
 * @brief get brightness of panel
 * @param[in] None 
 * @return None
 */
VOID Hv_App_Ddcci_PQ_GetPanelBrightness(PQPanelPara *pstPQPanelPara);
#endif
#endif

