diff --git a/code/application/source/cardv/SrcCode/Gx/GxInput/Key/GxKey.c b/code/application/source/cardv/SrcCode/Gx/GxInput/Key/GxKey.c index d895055e2..eb05333f0 100755 --- a/code/application/source/cardv/SrcCode/Gx/GxInput/Key/GxKey.c +++ b/code/application/source/cardv/SrcCode/Gx/GxInput/Key/GxKey.c @@ -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 /* - 使用方式 : + 嚙誕用方式 : - 錄Key: - 1. 修改 #define KEYINLOG_FUNCTION ENABLE - 2. Update F/W 後, 將 Log 存下來 (Ex:KeyLog.log) - 3. 執行 KlTxtToHex KeyLog.log 產生 TransLog.hex - 4. 寄給分析人員 + 嚙踝蕭Key: + 1. 嚙論改蕭 #define KEYINLOG_FUNCTION ENABLE + 2. Update F/W 嚙踝蕭, 嚙瞇 Log 嚙編嚙磊嚙踝蕭 (Ex:KeyLog.log) + 3. 嚙踝蕭嚙踝蕭 KlTxtToHex KeyLog.log 嚙踝蕭嚙踝蕭 TransLog.hex + 4. 嚙瘡嚙踝蕭嚙踝蕭嚙磋嚙瘡嚙踝蕭 - 播Key: - 1. 修改 #define KEYINLOG_FUNCTION ENABLE - 2. 解除在 KeyScanTsk.c 中的 //Keylog_EnableRuningKeyLog(); 的註解 - 3. Copy TransLog.hex 到 SD Card 的根目錄 - 4. 開機 + 嚙踝蕭Key: + 1. 嚙論改蕭 #define KEYINLOG_FUNCTION ENABLE + 2. 嚙諸堆蕭嚙箭 KeyScanTsk.c 嚙踝蕭嚙踝蕭 //Keylog_EnableRuningKeyLog(); 嚙踝蕭嚙踝蕭嚙踝蕭 + 3. Copy TransLog.hex 嚙踝蕭 SD Card 嚙踝蕭嚙誹目選蕭 + 4. 嚙罷嚙踝蕭 */ #if(KEYINLOG_FUNCTION == ENABLE) diff --git a/code/application/source/cardv/SrcCode/System/SysInput_Exe.c b/code/application/source/cardv/SrcCode/System/SysInput_Exe.c index ae6bd6165..dbb696c58 100755 --- a/code/application/source/cardv/SrcCode/System/SysInput_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysInput_Exe.c @@ -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 diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 13ddf1da9..3c7042340 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -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); + } + + } + } } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index 1033383fd..260f2dd27 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -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 */ diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL_SPORTCAM.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL_SPORTCAM.h index f6b76cac2..edd7941ee 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL_SPORTCAM.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL_SPORTCAM.h @@ -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;