123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- /*
- * @file hv_mw_OsdEvent.h
- * @brief Header file of osd event.
- *
- * @verbatim
- * ==============================================================================
- * ##### How to use #####
- * ==============================================================================
- * (+) Use Hv_Mw_OsdSetKeyState() to set a key's state.
- * (+) Use Hv_Mw_OsdGetKeyValue() to get current key value.
- * (+) Use Hv_Mw_OsdGetHoldKey() to get holding key value.
- * (+) Use Hv_Mw_OsdGetKeyIsRepeating() to get a key is repeating.
- * (+) Use Hv_Mw_OsdSetKeyRepeatPeriod() to set key repeat period.
- * (+) Use Hv_Mw_OsdSetKeyHoldPeriod() to set key hold period.
- * (+) Use Hv_Mw_OsdEventProc() to process osd event.
- * (+) Use Hv_Mw_OsdEventGetCloseSceneId() to get osd auto close scene id.
- * (+) Use Hv_Mw_OsdStartAutoCloseTimer() to start auto close timer.
- * (+) Use Hv_Mw_OsdStopAutoCloseTimer() to start auto close timer.
- * (+) Use Hv_Mw_OsdEventGetRefreshSceneId() to get osd auto refresh scene id.
- * (+) Use Hv_Mw_OsdStartAutoRefreshTimer() to start auto refresh timer.
- * (+) Use Hv_Mw_OsdStopAutoRefreshTimer() to stop auto refresh timer.
- * (+) Use Hv_Mw_OsdEventInit() to init osd event.
- * (+) Use Hv_Mw_OsdEventDeinit() to de-init osd event.
- *
- * @endverbatim
- * @author HiView SoC Software Team
- * @version 1.0.0
- * @date 2022-09-01
- */
- #ifndef _HV_MW_OSD_EVENT_H
- #define _HV_MW_OSD_EVENT_H
- #include "hv_comm_Event.h"
- #include "hv_comm_Timer.h"
- #include "KeyboardConfig.h"
- typedef enum {
- KEY_STATE_HOLDABLE,
- KEY_STATE_REPEATABLE,
- KEY_STATE_DISABLE,
- } OsdKeyState;
- /**
- * @brief 设置按键状态
- * @param[in] enId 消息序号
- * @param[in] CHAR8 * 名称字符串
- */
- const CHAR8 *Hv_Mw_OsdGetEventName(OsdEventId enId);
- /**
- * @brief 设置按键状态
- * @param[in] enId 按键键值
- * @param[in] CHAR8 * 名称字符串
- */
- const CHAR8 *Hv_Mw_OsdGetKeyName(OsdEvtKeyValue enId);
- /**
- * @brief 设置按键状态
- * @param[in] eKey 按键键值
- * @param[in] eState 按键状态:可重复、可长按、禁用
- * @param[in] bIsSet 是否是set,否则为clear
- */
- VOID Hv_Mw_OsdSetKeyState(OsdEvtKeyValue eKey, OsdKeyState eState, BOOL bIsSet);
- /**
- * @brief 启用/禁用所有按键
- * @param[in] bEnable 使能
- */
- VOID Hv_Mw_OsdSetAllKeyEnable(BOOL bEnable);
- /**
- * @brief 获取当前的键值
- * @return OSD内部事件类型
- */
- OsdEvtKeyValue Hv_Mw_OsdGetKeyValue(VOID);
- /**
- * @brief 获取长按键的键值
- * @return OSD内部事件类型
- */
- OsdEvtKeyValue Hv_Mw_OsdGetHoldKey(VOID);
- /**
- * @brief 判断按键当前是否正在repeating
- * @param[in] eKey 按键键值
- * @return 按键是否正在repeating
- */
- BOOL Hv_Mw_OsdGetKeyIsRepeating(OsdEvtKeyValue enKey);
- /**
- * @brief 设置重复按键timer的周期
- * @param[in] uiPeriodMS 重复按键timer的周期(ms)
- */
- VOID Hv_Mw_OsdSetKeyRepeatPeriod(UINT32 uiPeriodMS);
- /**
- * @brief 设置长按按键timer的时长
- * @param[in] uiHoldTimeMS 长按按键timer的时长(ms)
- */
- VOID Hv_Mw_OsdSetKeyHoldPeriod(UINT32 uiHoldTimeMS);
- /**
- * @brief 将来自外部EventHub的OSD事件类型转为OSD内部事件类型
- * @param[in] stEventMsg 来自外部EventHub的OSD事件类型
- */
- VOID Hv_Mw_OsdEventProc(OsdEvent *pstEventMsg);
- /**
- * @brief 启动自动关闭指定scene的timer
- * @param[in] ucSceneId 自动关闭的scene id
- * @param[in] uiMs 超时时间,单位:毫秒
- */
- VOID Hv_Mw_OsdStartAutoCloseTimerMs(UCHAR8 ucSceneId, UINT32 uiMs);
- /**
- * @brief 启动自动关闭指定scene的timer
- * @param[in] ucSceneId 自动关闭的scene id
- * @param[in] usSecond 超时时间,单位:秒
- */
- VOID Hv_Mw_OsdStartAutoCloseTimer(UCHAR8 ucSceneId, USHORT16 usSecond);
- /**
- * @brief 停止自动关闭指定scene的timer
- * @param[in] ucSceneId 自动关闭的scene id
- */
- VOID Hv_Mw_OsdStopAutoCloseTimer(UCHAR8 ucSceneId);
- /**
- * @brief 启动自动刷新指定scene的timer
- * @param[in] ucSceneId 自动刷新的scene id
- * @param[in] uiTimeoutMs 超时时间,单位:毫秒
- */
- VOID Hv_Mw_OsdStartAutoRefreshTimer(UCHAR8 ucSceneId, UINT32 uiTimeoutMs);
- /**
- * @brief 停止自动刷新指定scene的timer
- * @param[in] ucSceneId 自动刷新的scene id
- */
- VOID Hv_Mw_OsdStopAutoRefreshTimer(UCHAR8 ucSceneId);
- /**
- * @brief 开始Logo显示的timer
- * @param[in] uiMs 时间:毫秒
- */
- VOID Hv_Mw_OsdStartLogoTimerMs(UINT32 uiMs);
- /**
- * @brief 开始Logo显示的timer
- * @param[in] ucSceneId 自动刷新的scene id
- */
- VOID Hv_Mw_OsdStartLogoTimer(USHORT16 usSecond);
- /**
- * @brief 停止自动刷新指定scene的timer
- */
- VOID Hv_Mw_OsdStopLogoTimer(VOID);
- /**
- * @brief 开始定时提醒的timer
- * @param[in] ucRemindId 定时提醒的id
- * @param[in] uiTimeoutMs 超时时间,单位:毫秒
- * @param[in] bRepeat 是否重复
- */
- VOID Hv_Mw_OsdStartReminderTimer(UCHAR8 ucRemindId, UINT32 uiTimeoutMs, BOOL bRepeat);
- /**
- * @brief 停止定时提醒的timer
- * @param[in] ucRemindId 定时提醒的id
- */
- VOID Hv_Mw_OsdStopReminderTimer(UCHAR8 ucRemindId);
- /**
- * @brief Osd Event相关数据初始化
- */
- VOID Hv_Mw_OsdEventInit(VOID);
- /**
- * @brief Event deinit
- */
- VOID Hv_Mw_OsdEventDeinit(VOID);
- #ifdef HV_SCALER_DEBUG_VERSION
- VOID Hv_Mw_OsdSetAutoCloseTimerEnable(BOOL bEnable);
- BOOL Hv_Mw_OsdIsMonkeyRunning(VOID);
- VOID Hv_Mw_OsdMonkeyTest(BOOL bStart);
- VOID Hv_Mw_OsdStartAutoTestTimer(UINT32 uiTimeoutMs);
- VOID Hv_Mw_OsdStopAutoTestTimer(VOID);
- #endif
- #endif
|