Add long press event.

This commit is contained in:
xiaojiazhu 2023-10-27 16:53:48 +08:00
parent fca55f1bf2
commit ad18b96aa0
5 changed files with 50 additions and 16 deletions

View File

@ -57,7 +57,7 @@ static UINT32 g_uiKeyScanTimerCnt = 0;
#endif
#define KEY_TIMER_CNT 10//10x20=200ms
#define KEY_CONTINUE_DEBOUNCE 30//30x20=600ms
#define KEY_CONTINUE_DEBOUNCE 25// 25 x 20=500ms
static GX_CALLBACK_PTR g_fpKeyCB = NULL;
static UINT32 g_uiRepeatCnt = KEY_TIMER_CNT;
@ -158,19 +158,19 @@ void GxKey_DetNormalKey(void)
//#NT#2010/08/02#Ben Wang -end
/*
使 :
<EFBFBD>ϥΤ :
Key:
1. #define KEYINLOG_FUNCTION ENABLE
2. Update F/W , Log (Ex:KeyLog.log)
3. KlTxtToHex KeyLog.log TransLog.hex
4.
<EFBFBD><EFBFBD>Key:
1. <EFBFBD>ק<EFBFBD> #define KEYINLOG_FUNCTION ENABLE
2. Update F/W <EFBFBD><EFBFBD>, <EFBFBD>N Log <EFBFBD>s<EFBFBD>U<EFBFBD><EFBFBD> (Ex:KeyLog.log)
3. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> KlTxtToHex KeyLog.log <EFBFBD><EFBFBD><EFBFBD><EFBFBD> TransLog.hex
4. <EFBFBD>H<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>H<EFBFBD><EFBFBD>
Key:
1. #define KEYINLOG_FUNCTION ENABLE
2. KeyScanTsk.c //Keylog_EnableRuningKeyLog(); 的註解
3. Copy TransLog.hex SD Card
4.
<EFBFBD><EFBFBD>Key:
1. <EFBFBD>ק<EFBFBD> #define KEYINLOG_FUNCTION ENABLE
2. <EFBFBD>Ѱ<EFBFBD><EFBFBD>b KeyScanTsk.c <EFBFBD><EFBFBD><EFBFBD><EFBFBD> //Keylog_EnableRuningKeyLog(); <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3. Copy TransLog.hex <EFBFBD><EFBFBD> SD Card <EFBFBD><EFBFBD><EFBFBD>ڥؿ<EFBFBD>
4. <EFBFBD>}<EFBFBD><EFBFBD>
*/
#if(KEYINLOG_FUNCTION == ENABLE)

View File

@ -304,7 +304,7 @@ void Input_ResetMask(void)
// Set key mask as default
SysMan_SetKeyMask(KEY_PRESS, FLGKEY_KEY_MASK_DEFAULT);
SysMan_SetKeyMask(KEY_RELEASE, FLGKEY_KEY_MASK_DEFAULT);
SysMan_SetKeyMask(KEY_CONTINUE, FLGKEY_KEY_MASK_NULL);
SysMan_SetKeyMask(KEY_CONTINUE, FLGKEY_KEY_MASK_DEFAULT);
#if defined(_TOUCH_ON_) || defined(_UI_STYLE_LVGL_)
SysMan_SetTouchMask(TOUCH_MASK_DEFAULT);
#endif

View File

@ -613,14 +613,40 @@ void UserMainProc(void)
uint32_t nvt_user_key = lv_user_keymap_find(evt);
if(nvt_user_key != LV_USER_KEY_UNKNOWN){
_lv_user_task_handler_lock();
lv_event_send(lv_plugin_scr_act(), LV_USER_EVENT_KEY_RELEASE, &nvt_user_key);
_lv_user_task_handler_unlock();
if(indev_keypad && indev_keypad->group){
_lv_user_task_handler_lock();
lv_obj_t* focused = lv_group_get_focused(indev_keypad->group);
if(focused)
lv_event_send(lv_plugin_scr_act(), LV_USER_EVENT_KEY_RELEASE, &nvt_user_key);
_lv_user_task_handler_unlock();
}
}
else{
DBG_WRN("evt = %lx\r\n", evt);
}
}
if(paramArray[0] == NVTEVT_KEY_CONTINUE){
uint32_t nvt_user_key = lv_user_keymap_find(evt);
if(nvt_user_key != LV_USER_KEY_UNKNOWN){
if(indev_keypad && indev_keypad->group){
_lv_user_task_handler_lock();
lv_obj_t* focused = lv_group_get_focused(indev_keypad->group);
if(focused)
lv_event_send(focused, LV_USER_EVENT_KEY_LONG_PRESS, &nvt_user_key);
_lv_user_task_handler_unlock();
}
}
else{
DBG_WRN("evt = %lx\r\n", evt);
}
}
}
}

View File

@ -1583,6 +1583,13 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event)
break;
}
case LV_USER_EVENT_KEY_LONG_PRESS:
{
uint32_t* key = (uint32_t*)lv_event_get_data();
UIFlowPhoto_KeyRelease(obj, *key);
break;
}
/* handle nvt event except key event */

View File

@ -65,6 +65,7 @@ typedef enum {
LV_USER_EVENT_START = _LV_PLUGIN_EVENT_LAST,
LV_USER_EVENT_NVTMSG = LV_USER_EVENT_START, /* lv_event_get_data(): LV_USER_EVENT_NVTMSG_DATA */
LV_USER_EVENT_KEY_RELEASE, /* lv_event_get_data(): */
LV_USER_EVENT_KEY_LONG_PRESS
} LV_USER_EVENT;