Add long press event.
This commit is contained in:
		
							parent
							
								
									fca55f1bf2
								
							
						
					
					
						commit
						ad18b96aa0
					
				| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
                    	}
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    	        }
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user