/** * @file hv_drv_OsdWindow.h * @brief Osd driver layer window drawing interface. * @verbatim * ============================================================================== * ##### How to use this driver ##### * ============================================================================== * (+) Use Hv_Drv_OsdWindow_(Draw/Update/Erase)Rect(...) to handle rect. * (+) Use Hv_Drv_OsdWindow_(Draw/Update/Erase)RectGrid(...) to handle rectgrid. * (+) Use Hv_Drv_OsdWindow_(Draw/Update/Erase)Line(...) to handle line. * (+) Use Hv_Drv_OsdWindow_(Draw/Update/Erase)LineGrid(...) to handle linegrid. * (+) Use Hv_Drv_OsdWindow_(Draw/Update/Erase)Window(...) to handle window. * @endverbatim * * @author HiView SoC Software Team * @version 0.0.1 * @date 2022-08-22 */ #ifndef __HV_DRV_OSDWINDOW_H #define __HV_DRV_OSDWINDOW_H #include "hv_comm_DataType.h" #include "hv_mw_OsdComm.h" #include "hv_drv_OsdTypes.h" /** * @brief convert pixel format * @param[in] enSrcFormat source pixel format * @param[in] enDstFormat destination pixel format * @param[in] uiColor color value * @return color value of required format */ UINT32 Hv_Drv_OsdWindow_PixelFormatConvert(OsdPixelFormat enSrcFormat, OsdPixelFormat enDstFormat, UINT32 uiColor); /** * @brief draw rect * @param[in] pstRect rect structure * @param[in] pstRectStyle rect style * @return VOID without return */ VOID Hv_Drv_OsdWindow_DrawRect(OsdRect *pstRect, const OsdRectStyle *pstRectStyle); /** * @brief update rect * @param[in] pstRect rect structure * @param[in] pstRectStyle rect style * @return VOID without return */ VOID Hv_Drv_OsdWindow_UpdateRect(OsdRect *pstRect, const OsdRectStyle *pstRectStyle); /** * @brief hide rect * @param[in] pstRect rect structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_EraseRect(OsdRect *pstRect); /** * @brief draw rectgrid * @param[in] pstGrid rectgrid structure * @param[in] pstNonHlRectStyle non-highlight rect style * @param[in] pstRectHighlight highlight options * @param[in] pstHlRectStyle highlight rect style * @return VOID without return */ VOID Hv_Drv_OsdWindow_DrawRectGrid(OsdRectGrid* pstGrid, const OsdRectStyle *pstNonHlRectStyle, const OsdRectHighlight *pstRectHighlight, const OsdRectStyle *pstHlRectStyle); /** * @brief update rectgrid * @param[in] pstGrid rectgrid structure * @param[in] pstNonHlRectStyle non-highlight rect style * @param[in] pstRectHighlight highlight options * @param[in] pstHlRectStyle highlight rect style * @return VOID without return */ VOID Hv_Drv_OsdWindow_UpdateRectGrid(OsdRectGrid* pstGrid, const OsdRectStyle *pstNonHlRectStyle, const OsdRectHighlight *pstRectHighlight, const OsdRectStyle *pstHlRectStyle); /** * @brief hide rectgrid * @param[in] pstGrid rectgrid structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_EraseRectGrid(OsdRectGrid* pstGrid); /** * @brief draw linegrid * @param[in] pstLineGrid linegrid structure * @param[in] pstLineHighlight highlight options * @return VOID without return */ VOID Hv_Drv_OsdWindow_DrawLineGrid(OsdLineGrid* pstLineGrid, const OsdLineHighlight *pstLineHighlight); /** * @brief update linegrid * @param[in] pstLineGrid linegrid structure * @param[in] pstLineHighlight highlight options * @return VOID without return */ VOID Hv_Drv_OsdWindow_UpdateLineGrid(OsdLineGrid* pstLineGrid, const OsdLineHighlight *pstLineHighlight); /** * @brief hide line grid * @param[in] pstLineGrid linegrid structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_EraseLineGrid(OsdLineGrid* pstLineGrid); /** * @brief draw line * @param[in] pstLine line structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_DrawLine(OsdLine* pstLine); /** * @brief update line * @param[in] pstLine line structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_UpdateLine(OsdLine* pstLine); /** * @brief hide line * @param[in] pstLine line structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_EraseLine(OsdLine* pstLine); /** * @brief get current window index * @param[in] None * @return current window index */ OsdWindowPhyId Hv_Drv_OsdWindow_GetCurrentWindow(VOID); /** * @brief set current window index * @param[in] enIndex window index * @return VOID without return */ VOID Hv_Drv_OsdWindow_SetCurrentWindow(OsdWindowPhyId enIndex); /** * @brief set all window font en * @param[in] bEnable enable */ VOID Hv_Drv_OsdWindow_SetAllFontEnable(BOOL bEnable); /** * @brief disable rect/grid/line/font of all windows * @param[in] None * @return VOID without return */ VOID Hv_Drv_OsdWindow_DisableAll(VOID); /** * @brief draw window * @param[in] pstWindowProp window property structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_DrawWindow(OsdWindowProp *pstWindowProp); /** * @brief update window property * @param[in] pstWindowProp window property structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_UpdateWindow(OsdWindowProp *pstWindowProp); /** * @brief hide window * @param[in] pstWindowProp window property structure * @return VOID without return */ VOID Hv_Drv_OsdWindow_EraseWindow(OsdWindowProp *pstWindowProp); #endif