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

View File

@ -304,7 +304,7 @@ void Input_ResetMask(void)
// Set key mask as default // Set key mask as default
SysMan_SetKeyMask(KEY_PRESS, FLGKEY_KEY_MASK_DEFAULT); SysMan_SetKeyMask(KEY_PRESS, FLGKEY_KEY_MASK_DEFAULT);
SysMan_SetKeyMask(KEY_RELEASE, 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_) #if defined(_TOUCH_ON_) || defined(_UI_STYLE_LVGL_)
SysMan_SetTouchMask(TOUCH_MASK_DEFAULT); SysMan_SetTouchMask(TOUCH_MASK_DEFAULT);
#endif #endif

View File

@ -613,14 +613,40 @@ void UserMainProc(void)
uint32_t nvt_user_key = lv_user_keymap_find(evt); uint32_t nvt_user_key = lv_user_keymap_find(evt);
if(nvt_user_key != LV_USER_KEY_UNKNOWN){ if(nvt_user_key != LV_USER_KEY_UNKNOWN){
_lv_user_task_handler_lock(); if(indev_keypad && indev_keypad->group){
lv_event_send(lv_plugin_scr_act(), LV_USER_EVENT_KEY_RELEASE, &nvt_user_key); _lv_user_task_handler_lock();
_lv_user_task_handler_unlock();
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{ else{
DBG_WRN("evt = %lx\r\n", evt); 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; 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 */ /* 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_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_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_RELEASE, /* lv_event_get_data(): */
LV_USER_EVENT_KEY_LONG_PRESS
} LV_USER_EVENT; } LV_USER_EVENT;