MTK平台學習 對MTK按鍵事件的簡單分析

2021-04-15 13:11:21 字數 1186 閱讀 1197

主要簡單分析一下左右軟體的事件,以左軟鍵事件為例

牽涉到的常用函式:

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. call register_left_softkey_handler( )

這個函式call setkeyhandler: 儲存需要起作用的函式(left_softkey_down/left_softkey_up)

以left_softkey為例, 該函式首先首先重新整理按鍵區域影象(redraw_softkey),

然後執行關聯函式(softkey_functions[key][k]).

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按鍵事件的簡單分析

主要簡單分析一下左右軟體的事件,以左軟鍵事件為例 牽涉到的常用函式 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 type k void changelefts...

MTK平台搭建

mtk平台搭建 最近公司的專案差不多都做完了,趁新專案還沒來的時候學學東西。從朋友那裡搞來一套 mtk的源 學學 mtk的開發。選擇 mtk是因為,它跟我的工作所用的平台相似,學起來方便一點,另外一點是它可以在 pc上跑,不用自己去買硬體,成本不高。呵呵,從朋友那裡搞來的源 不用硬體,成本就只有時間...