/**
 * @file hv_drv_DpuCommon.h
 * @brief Header file of dpu module.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 *
 * @endverbatim
 *
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2022-08-22
 */
#ifndef __HV_DRV_DPU_MAIN_SCALER_H__
#define __HV_DRV_DPU_MAIN_SCALER_H__

#include "hv_comm_DataType.h"
#include "hv_comm_Define.h"

/*******************************************/

VOID Hv_Drv_DpuScaler_MainWindowConfig(VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_CapVgsfSettingsMain(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_DpcCapMainDataModeSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_DpcSrpMainSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_DpuVdmMainSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_SrpTopMainSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_SubLdgTopMainSettings(const VideoConfigParams* pstVideoConfigParams);

Status Hv_Drv_DpuScaler_SetMainPathInterlaceMode(const VideoConfigParams* pstVideoConfigParams, UCHAR8 ucFieldPolar);

Status Hv_Drv_DpuScaler_CapVgsfMainHdrSetting(const VideoConfigParams* pstVideoConfigParams);
/***********************************************/ 

VOID Hv_Drv_DpuScaler_DpuDataPath_Reset(BOOL bEn);
Status Hv_Drv_DpuScaler_LDGMainInsertBlackCableDetect();
VOID Hv_Drv_DpuMainScaler_CapVgsfMainCapInSize(UINT32 uiRxInHact, UINT32 uiRxInVact);
Status Hv_Drv_DpuMainScaler_Config(const VideoConfigParams* pstVideoConfigParams);
VOID Hv_Drv_DpuScaler_InitFrcModeMain(BOOL bStart);
VOID Hv_Drv_DpuScaler_PQ_Debug(VOID);
VOID Hv_Drv_DpuScaler_SetLineInt(UCHAR8 ucIndex, USHORT16 usLine);
VOID Hv_Drv_DpuScaler_SetLineIntEn(UINT32 uiEn);
VOID Hv_Drv_DpuScaler_SetDpuIntEn(UCHAR8 ucEn);
VOID Hv_Drv_DpuScaler_SetMainCapInCutParam(const VideoConfigParams* pstVideoConfigParams);
#if (HV_CONFIG_ON == HV_PROJECT_CONFIG_MAIN_MONTAGE)
Status Hv_Drv_DpuScaler_SetMainCapOutCutParam(VOID);
#endif
BOOL Hv_Drv_DpuScaler_IsDtcVtotalInPanlSpec(USHORT16 usVtotalMax, USHORT16 usVtotalMin);
VOID Hv_Drv_DpuScaler_MainSetPicPos(const VideoConfigParams* pstVideoConfigParams, USHORT16 usHoffset, USHORT16 usVoffset);
#endif
