/**
 * @file hv_drv_OsdLogo.h
 * @brief Osd driver layer logo showing interface.
 * @verbatim
 * ==============================================================================
 *                        ##### How to use this driver #####
 * ==============================================================================
 * (+) Use Hv_Drv_OsdLogo_ShowLogo(...) to parse and show logo bin file
 * @endverbatim
 *
 * @author HiView SoC Software Team
 * @version 0.0.1
 * @date 2022-08-22
 */

#ifndef _HV_DRV_LOGO_H
#define _HV_DRV_LOGO_H

/**
 * @brief show BMP/ICON logo
 * @param[in] pstLogoHead logo header
 * @return VOID without return
 */
VOID Hv_Drv_OsdLogo_ShowLogoIconBmp(OsdLogoHead *pstLogoHead);

/**
 * @brief parse Logo.bin and show logo
 * @param[in] bAdjustBgArea if adjust background size
 * @return HV_SUCCESS for success, HV_FAILURE for failure
 */
Status Hv_Drv_OsdLogo_ShowLogo(BOOL bAdjustBgArea);

/**
 * @brief check if logo has background
 * @param[in] None
 * @return HV_TRUE if has bg, HV_FALSE if no bg
 */
BOOL Hv_Drv_OsdLogo_HasBackground(VOID);

/**
 * @brief show only backgrond of logo
 * @param[in] None
 * @return HV_SUCCESS for success, HV_FAILURE if no bg
 */
Status Hv_Drv_OsdLogo_ShowLogoOnlyBg(VOID);
/**
 * @brief hide logo
 * @param[in] None
 * @return VOID without return
 */
VOID Hv_Drv_OsdLogo_HideLogo(VOID);

UCHAR8 Hv_Drv_OsdLogo_GetDrawingAreas(OsdBox **pstBoxList);

VOID Hv_Drv_OsdLogoTest_ShowLogo(VOID);


#endif
