/* * @file hv_mw_OsdOperation.h * @brief Header file of osd MiddleWare operation. * * @verbatim * ============================================================================== * ##### How to use ##### * ============================================================================== * (+) Use Hv_Mw_OsdOpsIsRedraw() to get current frame is need redraw * (+) Use Hv_Mw_OsdOpsClearRedrawFlag() to clear redraw flag * (+) Use Hv_Mw_OsdOpsForceRedraw() to set current frame be need redraw forcely * (+) Use Hv_Mw_OsdOpsInit() to init osd operations's data * (+) Use Hv_Mw_OsdComponentGetDynamicProp() to get a component's dynamic data * (+) Use Hv_Mw_OsdComponentUpdateByUserdata() to update&show a dynamic component by userdata * (+) Use Hv_Mw_OsdComponentShow() to show a component * (+) Use Hv_Mw_OsdComponentHide() to hide a component * (+) Use Hv_Mw_OsdItemShow() to show a item * (+) Use Hv_Mw_OsdItemHide() to hide a item * (+) Use Hv_Mw_OsdItemGetEnable() to get item's enable state * (+) Use Hv_Mw_OsdItemSetEnable() to set item's enable state * (+) Use Hv_Mw_OsdItemEnableList() to set item list's enable state * (+) Use Hv_Mw_OsdSetItemNumInPage() to set item's max num in page * (+) Use Hv_Mw_OsdGetItemNumInPage() to get item's max num in page * (+) Use Hv_Mw_OsdItemGetLevel() to get item's menu level * (+) Use Hv_Mw_OsdItemGetStartIdInPage() to get first item in item's list page * (+) Use Hv_Mw_OsdItemGetBias() to get a item's bias in its list * (+) Use Hv_Mw_OsdItemGetPage() to get a item's page info * (+) Use Hv_Mw_OsdItemShowList() to update&show a item list * (+) Use Hv_Mw_OsdItemShowListWithSingleChild() to update&show a item list with child * (+) Use Hv_Mw_OsdItemShowListWithSingleValue() to update&show a item list with value * (+) Use Hv_Mw_OsdItemShowValueList() to update&show a item's value list * (+) Use Hv_Mw_OsdItemRefreshList() to refresh a item list (already visable) * (+) Use Hv_Mw_OsdItemHideList() to hide a item list * (+) Use Hv_Mw_OsdItemHideListWithSingleChild() to hide a item list with child * (+) Use Hv_Mw_OsdItemHideListWithSingleValue() to hide a item list with value * (+) Use Hv_Mw_OsdItemHideValueList() to hide a item's value list * (+) Use Hv_Mw_OsdItemUnSelect() to unselect a item * (+) Use Hv_Mw_OsdItemSelect() to select a item * (+) Use Hv_Mw_OsdItemUpdateSelectList() to update a select list * (+) Use Hv_Mw_OsdItemGetFocusing() to get current focusing item * (+) Use Hv_Mw_OsdItemFocusClear() to clear currennt focusing item * (+) Use Hv_Mw_OsdItemFocus() to set focusing on a item * (+) Use Hv_Mw_OsdItemFocusChild() to move focusing to child item * (+) Use Hv_Mw_OsdItemFocusChildSelect() to move focusing to child item which is selected * (+) Use Hv_Mw_OsdItemFocusValue() to move focusing to value item * (+) Use Hv_Mw_OsdItemFocusParent() to move focusing to parent item * (+) Use Hv_Mw_OsdItemFocusNext() to move focusing to next item * (+) Use Hv_Mw_OsdItemFocusPrev() to move focusing to previous item * (+) Use Hv_Mw_OsdWindowClearShowList() to clear a window's ShowList * (+) Use Hv_Mw_OsdWindowClearDeleteList() to clear a window's DeleteList * (+) Use Hv_Mw_OsdWindowClearUpdateInfo() to clear a window's UpdateInfo * (+) Use Hv_Mw_OsdWindowCheckIsEmpty() to check a window is empty. * (+) Use Hv_Mw_OsdSceneInit() to init a scene before show * (+) Use Hv_Mw_OsdSceneShow() to show a scene. * (+) Use Hv_Mw_OsdSceneHide() to hide a scene. * (+) Use Hv_Mw_OsdSceneRefresh() to refresh a scene's data * (+) Use Hv_Mw_OsdSceneRefreshAll() to refresh all scenes's data * (+) Use Hv_Mw_OsdSceneClear() to clear a scene's data * (+) Use Hv_Mw_OsdSceneClearAll() to hide & clear all scenes's data * (+) Use Hv_Mw_OsdSceneIsShowing() to check a scene is showing * * @endverbatim * @author HiView SoC Software Team * @version 1.0.0 * @date 2022-09-01 */ #ifndef _HV_MW_OSD_OPS_H #define _HV_MW_OSD_OPS_H #include "hv_mw_OsdComm.h" #include "hv_app_Function.h" typedef enum { FOCUSING_NEXT, FOCUSING_PREV, FOCUSING_CHILD, FOCUSING_CHILD_SELECT, FOCUSING_VALUE, FOCUSING_PARENT, FOCUSING_CHOSEN, FOCUSING_CLEAR, } OsdMoveFocusingItem; /** * @brief 判断当前帧是否需要重画 * @return HV_TRUE-需要重画, HV_FALSE-不需要重画(更新) */ BOOL Hv_Mw_OsdOpsIsRedraw(VOID); /** * @brief 清除重画flag */ VOID Hv_Mw_OsdOpsClearRedrawFlag(VOID); /** * @brief 强制设置当前帧是否重画 * @param[in] bRedraw HV_TRUE-重画, HV_FALSE-仅更新画 */ VOID Hv_Mw_OsdOpsForceRedraw(BOOL bRedraw); #if (HV_PROJECT_CONFIG_OSD_FORCE_REDRAW_ALL == HV_CONFIG_OFF) /** * @brief 重置所有window的font记录信息 */ VOID Hv_Mw_OsdResetFontResList(VOID); #ifdef HV_SCALER_DEBUG_VERSION /** * @brief FOR DEBUG,打印所有window的font记录信息 */ VOID Hv_Mw_OsdPrintFontResList(VOID); #endif #endif /** * @brief 判断当前界面是否需要多帧画 * @return HV_TRUE-需要多帧画, HV_FALSE-不需要多帧画 */ BOOL Hv_Mw_OsdOpsIsMultiFrameDraw(VOID); /** * @brief 清除多帧画flag */ VOID Hv_Mw_OsdOpsClearMultiFrameDrawFlag(VOID); /** * @brief Osd operations模块数据初始化 */ VOID Hv_Mw_OsdOpsInit(VOID); #ifdef HV_SCALER_DEBUG_VERSION /** * @brief 输出OSD界面统计数据信息 */ VOID Hv_Mw_OsdSceneDebugStat(VOID); #endif /** * @brief 获取组件所在window * @return OsdWindow window结构体指针 */ OsdWindow *Hv_Mw_OsdComponentGetWindow(OsdComponent stCp); /** * @brief 获取组件的绝对位置 * @param[in] usItemId Item的Id,若组件属于scene需将usItemId设置为ITEM_NONE_ID * @param[in] stCp 组件类型及Id * @param[out] usX 获取的组件X位置 * @param[out] usY 获取的组件Y位置 */ VOID Hv_Mw_OsdComponentGetPosition(USHORT16 usItemId, OsdComponent stCp, USHORT16 usX, USHORT16 usY); /** * @brief 获取组件的动态数据指针 * @param[in] stCp 组件类型及Id * @param[in] usX bIsOffset==true为组件X位置,bIsOffset==false为Item的X位置 * @param[in] usY bIsOffset==true为组件Y位置,bIsOffset==false为Item的Y位置 * @param[in] bIsOffset 区分直接设置组件位置和通过Item偏移设置组件位置 */ VOID Hv_Mw_OsdComponentSetPosition(OsdComponent stCp, USHORT16 usX, USHORT16 usY, BOOL bIsOffset); /** * @brief 获取组件的动态数据指针 * @param[in] stCp 组件类型及Id * @return 对应的动态数据指针 */ VOID *Hv_Mw_OsdComponentGetDynamicProp(OsdComponent stCp); /** * @brief 获取组件Node * @param[in] stCp 组件类型及Id * @return OsdComponentNode 对应的Node指针 */ OsdComponentNode *Hv_Mw_OsdComponentGetNode(OsdComponent stCp); /** * @brief 更新AsciiString组件的字符串内容 * @param[in] enIndex 组件Id * @param[in] pucString 字符串 * @param[in] ucStringLength 字符串长度 */ VOID Hv_Mw_OsdDynamicAsciiStringUpdate(OsdAsciiStringId enIndex, UCHAR8* pucString, UCHAR8 ucStringLength); /** * @brief 更新显示AsciiString组件的字符串内容 * @param[in] usId 组件Id * @param[in] fmt 格式化字符串 */ VOID Hv_Mw_OsdAsciiStringComponentShow(USHORT16 usId, const CHAR8 *fmt, ...); /** * @brief 根据指定userdata的值,更新并显示组件 * @param[in] stCp 组件类型及Id * @param[in] enUserdata userdata枚举类型 */ VOID Hv_Mw_OsdComponentUpdateByUserdata(OsdComponent stCp, UserdataId enUserdata); /** * @brief 显示一个组件 * @param[in] stCp 组件类型及Id */ VOID Hv_Mw_OsdComponentShow(OsdComponent stCp); /** * @brief 隐藏一个组件 * @param[in] stCp 组件类型及Id */ VOID Hv_Mw_OsdComponentHide(OsdComponent stCp); /** * @brief 显示指定item的当前状态下的cursor * @param[in] usItemId 指定item的Id */ VOID Hv_Mw_OsdCursorShowByItem(USHORT16 usItemId); /** * @brief 隐藏指定item的当前状态下的cursor * @param[in] usItemId 指定item的Id */ VOID Hv_Mw_OsdCursorHideByItem(USHORT16 usItemId); /** * @brief 设置一个item的位置 * @param[in] usItemId item的Id * @param[in] usX x坐标值 * @param[in] usY y坐标值 */ VOID Hv_Mw_OsdItemSetPosition(USHORT16 usItemId, USHORT16 usX, USHORT16 usY); /** * @brief 设置一个item的位置 * @param[in] ucCursorId cursor的Id * @param[in] usItemX x坐标值 * @param[in] usItemY y坐标值 * @param[in] ucItemState cursor 所在item的状态 */ VOID Hv_Mw_OsdCursorSetPositon(UCHAR8 ucCursorId, USHORT16 usItemX, USHORT16 usItemY, UCHAR8 ucItemState); /** * @brief 判断一个item是否正在显示 * @param[in] usItemId item的Id */ BOOL Hv_Mw_OsdItemIsShowing(USHORT16 usItemId); /** * @brief 显示一个item * @param[in] usItemId item的Id */ VOID Hv_Mw_OsdItemShow(USHORT16 usItemId); /** * @brief 隐藏一个item * @param[in] usItemId item的Id */ VOID Hv_Mw_OsdItemHide(USHORT16 usItemId); /** * @brief 刷新一个item * @param[in] usItemId item的Id */ VOID Hv_Mw_OsdItemRefresh(USHORT16 usItemId); /** * @brief 更新一个item的状态并显示(强制更新状态,不会进行disable/disable hide检查) * @param[in] usItemId item的Id * @param[in] enState item的状态 */ VOID Hv_Mw_OsdItemShowWithState(USHORT16 usItemId, OsdItemState enState); /** * @brief 更新一个item的状态 * @param[in] usItemId item的Id * @param[in] enState item的状态 */ VOID Hv_Mw_OsdItemSetState(USHORT16 usItemId, OsdItemState enState); /** * @brief 获取一个item的状态 * @param[in] usItemId item的Id * @return OsdItemState item的状态 */ OsdItemState Hv_Mw_OsdItemGetState(USHORT16 usItemId); /** * @brief 获取一个item是否enable * @param[in] usItemId item的Id * @return BOOL 正常-HV_TRUE, 禁用-HV_FALSE */ BOOL Hv_Mw_OsdItemGetEnable(USHORT16 usItemId); /** * @brief 设置一个item是否enable * @param[in] usItemId item的Id * @param[in] bEnable 正常-HV_TRUE, 禁用-HV_FALSE */ VOID Hv_Mw_OsdItemSetEnable(USHORT16 usItemId, BOOL bEnable); /** * @brief 更新item列表中的所有item的禁用状态 * @param[in] usItem list中的ItemId * @param[in] bIncludeSelf 是否包含当前item * @param[in] bEnable 正常-HV_TRUE, 禁用-HV_FALSE */ VOID Hv_Mw_OsdItemEnableList(USHORT16 usItem, BOOL bIncludeSelf, BOOL bEnable); /** * @brief 设置当前页的item最大显示个数 * @param[in] usNum 最大显示个数 */ VOID Hv_Mw_OsdSetItemNumInPage(USHORT16 usNum); /** * @brief 获取当前页的item最大显示个数 * @return USHORT16 最大显示个数 */ USHORT16 Hv_Mw_OsdGetItemNumInPage(VOID); /** * @brief 获取item所在的list的item总数 * @return USHORT16 item数量 */ USHORT16 Hv_Mw_OsdItemGetListNum(USHORT16 usItemId); /** * @brief 获取item的child item总数 * @return USHORT16 child item数量 */ USHORT16 Hv_Mw_OsdItemGetChildNum(USHORT16 usItemId); /** * @brief 获取item所在的菜单等级 * @return USHORT16 菜单等级 */ USHORT16 Hv_Mw_OsdItemGetLevel(USHORT16 usItem); /** * @brief 获取一个item在显示页中的首个Item * @param[in] usItem item的Id * @return 首个Itemitem的Id */ USHORT16 Hv_Mw_OsdItemGetStartIdInPage(USHORT16 usItem); /** * @brief 获取一个item在显示页中的最后一个Item * @param[in] usItem item的Id * @return 最后一个Itemitem的Id */ USHORT16 Hv_Mw_OsdItemGetEndIdInPage(USHORT16 usItem); /** * @brief 获取一个item在显示列表中的偏移 * @param[in] usItem item的Id * @return item的偏移 */ USHORT16 Hv_Mw_OsdItemGetBias(USHORT16 usItem); /** * @brief 获取一个item所绑定的userdata id * @param[in] usItem item的Id * @return userdata id */ USHORT16 Hv_Mw_OsdItemGetUserdata(USHORT16 usItemId); #define OSD_GET_USERDATA Hv_Mw_OsdItemGetUserdata /** * @brief 获取一个item所绑定的userdata id的值 * @param[in] usItem item的Id * @return userdata的值 */ USHORT16 Hv_Mw_OsdItemGetUserdataValue(USHORT16 usItemId); #define OSD_GET_USERDATA_VALUE Hv_Mw_OsdItemGetUserdataValue /** * @brief 获取一个item在显示列表中的页信息 * @param[in] usItem item的Id * @param[in] ucCurPage item所在的页数 * @param[in] ucTotalPageNum item所在的列表的总页数 */ VOID Hv_Mw_OsdItemGetPage(USHORT16 usItem, UCHAR8 *pucCurPage, UCHAR8 *pucTotalPageNum); /** * @brief 获取一个item在显示列表中的页信息(若页面全部disable,则不计入该页) * @param[in] usItem item的Id * @param[in] ucCurPage item所在的页数 * @param[in] ucTotalPageNum item所在的列表的总页数 */ VOID Hv_Mw_OsdItemGetPageCheckEnable(USHORT16 usItem, UCHAR8 *pucCurPage, UCHAR8 *pucTotalPageNum); /** * @brief 判断两个item是否在同一页 * @param[in] usItem1 item1的Id * @param[in] usItem2 item2的Id * @return HV_TRUE-在同一页, HV_FALSE-不在同一页 */ BOOL Hv_Mw_OsdItemIsAtSamePage(USHORT16 usItem1, USHORT16 usItem2); /** * @brief 更新并显示一个item列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemShowList(USHORT16 usItem); /** * @brief 更新并显示一个item列表(若当前页面全部disable,则显示下一页) * @param[in] usItem item列表中任意一个item的Id * @return USHORT16 首个未被禁用的item id */ USHORT16 Hv_Mw_OsdItemShowListCheckEnable(USHORT16 usItem); /** * @brief 隐藏一个item列表(若当前页面全部disable,则隐藏下一页) * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideListCheckEnable(USHORT16 usItem); /** * @brief 更新并显示一个item列表及每个item的child * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemShowListWithSingleChild(USHORT16 usItem); /** * @brief 更新并显示一个item列表及每个item的value * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemShowListWithSingleValue(USHORT16 usItem); /** * @brief 更新并显示一个item value的列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemShowValueList(USHORT16 usItem); /** * @brief 刷新item所在的整个item列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemRefreshList(USHORT16 usItem); /** * @brief 隐藏一个item列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideList(USHORT16 usItem); /** * @brief 隐藏item所在的整个item列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideListAll(USHORT16 usItem); /** * @brief 隐藏一个item列表及每个item的child * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideListWithSingleChild(USHORT16 usItem); /** * @brief 隐藏一个item列表及每个item的value * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideListWithSingleValue(USHORT16 usItem); /** * @brief 隐藏一个item value的列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideValueList(USHORT16 usItem); #ifdef OSD_CHECK_DISABLE_HIDE_AND_ITEMLIST_AUTO_ALIGN /** * @brief 获取一个item自动对齐后在显示列表中的页信息 * @param[in] usItem item的Id * @param[in] ucCurPage item所在的页数 * @param[in] ucTotalPageNum item所在的列表的总页数 */ VOID Hv_Mw_OsdItemGetPageAlign(USHORT16 usItemId, UCHAR8 *pucCurPage, UCHAR8 *pucTotalPageNum); /** * @brief 自动对齐并显示一个item 列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemShowListAlign(USHORT16 usItemId); /** * @brief 自动对齐并隐藏一个item 列表 * @param[in] usItem item列表中任意一个item的Id */ VOID Hv_Mw_OsdItemHideListAlign(USHORT16 usItemId); #endif #ifndef OSD_CHECK_DISABLE_BY_EACH_ITEM /** * @brief 根据条件禁用item列表 * @param[in] bCondition 判断条件 * @param[in] pusItemArray item列表 * @param[in] usItemNum item数量 */ VOID Hv_Mw_ItemDisableByCondition(BOOL bCondition, const USHORT16 *pusItemArray, USHORT16 usItemNum); /** * @brief 恢复所有禁用Item的状态 */ VOID Hv_Mw_ItemRecoverDisableArray(VOID); #endif /** * @brief 检查item是否被选中 * @param[in] usItemId item list中的任意一个的item的Id * @param[in] bCheckState HV_TRUE-根据item当前状态寻找,HV_FALSE-根据当前对应userdata值寻找 * @return item是否被选中 */ BOOL Hv_Mw_OsdItemCheckSelect(USHORT16 usItemId, BOOL bCheckState); /** * @brief 查找item list中被选中的item * @param[in] usItemId item list中的任意一个的item的Id * @param[in] bCheckState HV_TRUE-根据item当前状态寻找,HV_FALSE-根据当前对应userdata值寻找 * @return 当前选择的item的Id */ USHORT16 Hv_Mw_OsdItemFindSelected(USHORT16 usItemId, BOOL bCheckState); /** * @brief 取消选择一个item为当前设置项,将item状态更新为NORMAL/FOCUSING * @param[in] usItemId 要取消选择的item的Id */ VOID Hv_Mw_OsdItemUnSelect(USHORT16 usItemId); /** * @brief 选择一个item为当前设置项,将item状态更新为SELECT/SELECT_FOCUS * @param[in] usItemId 要选择的item的Id * @return 对应的userdata值 */ SHORT16 Hv_Mw_OsdItemSelect(USHORT16 usItemId); /** * @brief 根据当前userdata值,更新select列表的选中状态 * @param[in] usItemListStartId select列表的任意item的Id * @return select的itemid */ USHORT16 Hv_Mw_OsdItemUpdateSelectList(USHORT16 usItemId); /** * @brief 根据当前userdata值,显示select item所在的页 * @param[in] usItem select列表中的任意item的Id * @return select的itemid */ USHORT16 Hv_Mw_OsdItemShowSelectedList(USHORT16 usItem); /** * @brief 隐藏select item所在的页 * @param[in] usItem select列表中的任意item的Id */ VOID Hv_Mw_OsdItemHideSelectedList(USHORT16 usItem); /** * @brief 获取当前正在聚焦的item的id * @return 正在聚焦的item的id */ USHORT16 Hv_Mw_OsdItemGetFocusing(VOID); #define OSD_GET_FOCUSING Hv_Mw_OsdItemGetFocusing /** * @brief 清除当前正在聚焦的item */ VOID Hv_Mw_OsdItemFocusClear(VOID); /** * @brief 根据当前item查找指定的item * @param[in] usCurItemId 当前item的id * @param[in] eWhichItem 查找item与当前item的关系 * @return 查找到的item的数据结构 */ OsdItem *Hv_Mw_OsdItemSearchMoveFocus(USHORT16 usCurItemId, OsdMoveFocusingItem eWhichItem); /** * @brief 聚焦到指定的item * @param[in] usItemId 指定聚焦的item的id * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocus(USHORT16 usItemId); /** * @brief 移动聚焦到子item * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusChild(VOID); /** * @brief 移动聚焦到被选中的子item,没有被选中的则聚焦到首个 * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusChildSelect(VOID); /** * @brief 移动聚焦到被选中的value item * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusValue(VOID); /** * @brief 移动聚焦到父item * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusParent(VOID); /** * @brief 移动聚焦到下一个item * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusNext(VOID); /** * @brief 移动聚焦到上一个item * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusPrev(VOID); /** * @brief 移动聚焦到下一个item,并且自动翻页 * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusNextAutoFlip(VOID); /** * @brief 移动聚焦到上一个item,并且自动翻页 * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusPrevAutoFlip(VOID); /** * @brief 移动聚焦到下一个item,并且自动翻页(包括child item list) * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusNextAutoFlipWithSingleChild(VOID); /** * @brief 移动聚焦到上一个item,并且自动翻页(包括child item list) * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusPrevAutoFlipWithSingleChild(VOID); /** * @brief 移动聚焦到下一个item,并且自动翻页(包括value item list) * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusNextAutoFlipWithSingleValue(VOID); /** * @brief 移动聚焦到上一个item,并且自动翻页(包括value item list) * @return 当前聚焦的item id */ USHORT16 Hv_Mw_OsdItemFocusPrevAutoFlipWithSingleValue(VOID); /** * @brief 清除当前window的显示绘制链表 * @param[in] pstWindow window结构体指针 */ VOID Hv_Mw_OsdWindowClearShowList(OsdWindow* pstWindow); /** * @brief 清除当前window的删除绘制链表 * @param[in] pstWindow window结构体指针 */ VOID Hv_Mw_OsdWindowClearDeleteList(OsdWindow* pstWindow); /** * @brief 清除当前window的update绘制信息 * @param[in] pstWindow window结构体指针 */ VOID Hv_Mw_OsdWindowClearUpdateInfo(OsdWindow* pstWindow); /** * @brief 判断Window是否为空 * @return HV_TRUE-为空, HV_FALSE-非空 */ BOOL Hv_Mw_OsdWindowCheckIsEmpty(UCHAR8 ucWindowId); /** * @brief 初始化一个scene,绘制之前调用 * @param[in] ucSceneId scene的id */ VOID Hv_Mw_OsdSceneInit(UCHAR8 ucSceneId); /** * @brief 显示一个scene,绘制完成最后调用 * @param[in] ucSceneId scene的id */ VOID Hv_Mw_OsdSceneShow(UCHAR8 ucSceneId); /** * @brief 隐藏一个scene * @param[in] ucSceneId scene的id */ VOID Hv_Mw_OsdSceneHide(UCHAR8 ucSceneId); /** * @brief 刷新一个scene * @param[in] ucSceneId scene的id */ VOID Hv_Mw_OsdSceneRefresh(UCHAR8 ucSceneId); /** * @brief 刷新所有显示的scene */ VOID Hv_Mw_OsdRefreshAll(VOID); /** * @brief 清除一个scene的信息及数据 * @param[in] ucSceneId scene的id */ VOID Hv_Mw_OsdSceneClear(UCHAR8 ucSceneId); /** * @brief 隐藏清除所有scene的信息及数据 */ VOID Hv_Mw_OsdSceneClearAll(VOID); /** * @brief 获取Scene是否正在显示 * @param[in] ucSceneId scene的id * @return HV_TRUE-显示中, HV_FALSE-未显示 */ BOOL Hv_Mw_OsdSceneIsShowing(UCHAR8 ucSceneId); /** * @brief 获取正在显示的scene id * @param[in] ucSceneIdStart 起始检查的Scene id * @return UCHAR8 正在显示的首个scene id */ UCHAR8 Hv_Mw_OsdSceneGetShowing(UCHAR8 ucSceneIdStart); /** * @brief 获取是否有OSD正在显示 * @return HV_TRUE-显示中, HV_FALSE-未显示 */ BOOL Hv_Mw_OsdIsShowing(VOID); #endif