按鍵常用函式(以左按鍵為列):
void setkeyhandler( funcptr funcptr, u16 keycode, u16 keytype );
void setleftsoftkeyfunction( void (*f)(void), mmi_key_event_type k );
void changeleftsoftkey( u16 s, u16 i );
1.setkeyhandler
與setleftsoftkeyfunction
(1). setkeyhandler
主要作用就是將需要起作用的函式的指標(funcptr)註冊到全域性二維陣列currkeyfuncptrs[keycode][keytype]的相應位置;
(2). setleftsoftkeyfunction
該函式內部主要流程:
step1.
呼叫register_left_softkey_handler( ),這個函式call setkeyhandler: 註冊三種按鍵狀態函式(left_softkey_down/left_softkey_up/left_softkey_hold),然後再根據觸發按鍵的狀態來呼叫相應的函式
以left_softkey為例, 該函式首先首先重新整理按鍵區域影象(redraw_softkey),然後執行關聯函式softkey_functions[key][k]()(注:此處softkey_function[key][k]所對應的函式為set_left_softkey_function()函式所註冊的).
step2.
在上一步裡我們會發現,softkey_functions[key][k]裡的函式指標沒有初始化
通過call set_left_softkey_function(f, k);
--->softkey_functions[key][k] = f; 這樣,就成功的把按鍵按下/放開的作用函式與具體的動作關聯起來了。
step3.
最後call setinputboxlskfunction(f)
--->
將上述函式與特定的輸入(如觸控筆)關聯起來。
(3).
以上兩個函式的主要區別:
setleftsoftkeyfunction
可以識別長按狀態並且可以關聯觸控筆操作等。
2.changeleftsoftkey
主要執行流程:
step1. call change_left_softkey:
設定左軟鍵圖表,文字
step2. redraw_softkey:
重新整理左軟鍵顯示區域
MTK平台學習 對MTK按鍵事件的簡單分析
主要簡單分析一下左右軟體的事件,以左軟鍵事件為例 牽涉到的常用函式 void setkeyhandler funcptr funcptr,u16 keycode,u16 keytype void setleftsoftkeyfunction void f void mmi key event typ...
對MTK按鍵事件的簡單分析
主要簡單分析一下左右軟體的事件,以左軟鍵事件為例 牽涉到的常用函式 void setkeyhandler funcptr funcptr,u16 keycode,u16 keytype void setleftsoftkeyfunction void f void mmi key event typ...
EXIT按鍵中斷函式
一 關於中斷函式 exit基本是第乙個接觸的中斷函式,問題來了 什麼是中斷 中斷是指計算機執行過程中,出現某些意外情況需主機干預時,機器能自動停止正在執行的程式並轉入處理新情況的程式,處理完畢後又返回原被暫停的程式繼續執行。中斷和異常向量錶可在stm32中文參考手冊中9.1.2查詢 二 程式設計流程...