1. 程式人生 > >DirectFb 標準鍵盤鍵值查詢過程

DirectFb 標準鍵盤鍵值查詢過程

1. keyboard.c  鍵盤事件函式 keyboardEventThread( DirectThread *thread, void *driver_data )

    該函式接收鍵盤事件,呼叫函式 dfb_input_dispatch()

2. input.c  事件分發函式dfb_input_dispatch( CoreInputDevice *device, DFBInputEvent *event )

    該函式確定輸入事件的型別(鍵盤事件,滑鼠事件等),如果是鍵盤事件,則呼叫函式 fixup_key_event()

3. input.c  鍵盤事件處理函式fixup_key_event(CoreInputDevice *device, DFBInputEvent *event)

    該函式主要是用於填充鍵盤事件的各個引數, 比如 鍵盤按鍵的邏輯鍵值

   填充鍵盤按鍵邏輯鍵值,呼叫函式lookup_from_table()

4. input.c  鍵值查詢函式

   lookup_from_table( CoreInputDevice *device,DFBInputEvent *event,DFBInputEventFlags lookup)

   該函式主要用於查詢鍵值對映表,呼叫函式 get_keymap_entry()

5. input.c 獲取單個鍵值對映的結構體的函式 get_keymap_entry( CoreInputDevice *device, int code )

    該函式主要是查詢儲存一次按鍵事件中該鍵的硬體鍵值的結構體entry

    entry = &map->entries[code - map->min_keycode]; 這句程式碼即為查詢結果