/**
 * @file hv_drv_Dither.h
 * @brief Header file of TX-dither module.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 *
 * @endverbatim
 *
 * @author HiView SoC Software Team
 * @version 0.0.0
 * @date 2022-04-17
 */

#ifndef _HV_DRV_DITHER_H_
#define _HV_DRV_DITHER_H_

#include "hv_comm_DataType.h"


typedef struct _DitherInitParams
{
    
} DitherInitParams;


typedef enum _DitherMode
{
    DITHER_MODE_12_10  = 0,
    DITHER_MODE_12_8   = 2,
    DITHER_MODE_12_6   = 3,
    DITHER_MODE_MAX
} DitherMode;


typedef enum _DitherComMode
{
    DITHER_COM_MODE_0  = 0,
    DITHER_COM_MODE_1,
    DITHER_COM_MODE_2,
    DITHER_COM_MODE_3,
    DITHER_COM_MODE_4,
    DITHER_COM_MODE_5,
    DITHER_COM_MODE_MAX
} DitherComMode;


/**
 * @brief Dither 初始化
 * @param[in] pstDitherParam point to TX-dither init params structure
 * @return None
 */
VOID Hv_Drv_Dither_Init(DitherInitParams *pstDitherParam);

/**
 * @brief Dither使能控制
 * @param[in] bEnable 控制标志：HV_TRUE-Enable, HV_FALSE-Disable
 * @return None
 */
VOID Hv_Drv_Dither_Enable(BOOL bEn);

/**
 * @brief 设置Dither的抖动模式
 * @param[in] enDitherMode 枚举参数表面工作模式
 * @return None
 */
VOID Hv_Drv_Dither_SetMode(DitherMode enDitherMode);

VOID Hv_Drv_Dither_SetCursorEnable(BOOL bEn);
VOID Hv_Drv_Dither_SetCursorWidth(UCHAR8 ucHwidth, UCHAR8 ucVwidth);
VOID Hv_Drv_Dither_SetCursorPos(USHORT16 usHcnt, USHORT16 usVcnt);
VOID Hv_Drv_Dither_GetCursorBdColor(UCHAR8 *pucR, UCHAR8 *pucG, UCHAR8 *pucB);

#endif
