116 lines
3.6 KiB
C
116 lines
3.6 KiB
C
|
#ifndef __HAL_KEY_HANDLE_H__
|
||
|
#define __HAL_KEY_HANDLE_H__
|
||
|
|
||
|
|
||
|
|
||
|
typedef struct _key_event_msg_t {
|
||
|
uint32_t key_code;
|
||
|
uint8_t key_type;
|
||
|
}key_event_msg_t;
|
||
|
|
||
|
|
||
|
//key state
|
||
|
#define HOME_KEY_BIT 0x08
|
||
|
#define ENTER_KEY_BIT 0x10
|
||
|
#define UP_KEY_BIT 0x20
|
||
|
#define DOWN_KEY_BIT 0x40
|
||
|
#define END_KEY_BIT 0x80
|
||
|
|
||
|
#define HOME_ENTER_BIT HOME_KEY_BIT|ENTER_KEY_BIT
|
||
|
#define HOME_UP_BIT HOME_KEY_BIT|UP_KEY_BIT
|
||
|
#define HOME_DOWN_BIT HOME_KEY_BIT|DOWN_KEY_BIT
|
||
|
#define HOME_END_BIT HOME_KEY_BIT|END_KEY_BIT
|
||
|
|
||
|
#define ENTER_UP_BIT ENTER_KEY_BIT|UP_KEY_BIT
|
||
|
#define ENTER_DOWN_BIT ENTER_KEY_BIT|DOWN_KEY_BIT
|
||
|
#define ENTER_END_BIT ENTER_KEY_BIT|END_KEY_BIT
|
||
|
|
||
|
#define UP_DOWN_BIT UP_KEY_BIT|DOWN_KEY_BIT
|
||
|
#define UP_END_BIT UP_KEY_BIT|END_KEY_BIT
|
||
|
|
||
|
#define DOWN_END_BIT DOWN_KEY_BIT|END_KEY_BIT
|
||
|
|
||
|
|
||
|
|
||
|
#define SHORT_KEY_BIT 0x01
|
||
|
#define MULTI_KEY_BIT 0x02
|
||
|
#define LONG_KEY_BIT 0x04
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//keycode
|
||
|
#define KEY_CODE_HOME HOME_KEY_BIT|SHORT_KEY_BIT //0000 1001 0x09
|
||
|
#define KEY_CODE_ENTER ENTER_KEY_BIT|SHORT_KEY_BIT //0001 0001 0x11
|
||
|
#define KEY_CODE_UP UP_KEY_BIT|SHORT_KEY_BIT //0010 0001 0x21
|
||
|
#define KEY_CODE_DOWN DOWN_KEY_BIT|SHORT_KEY_BIT //0100 0001 0x41
|
||
|
#define KEY_CODE_END END_KEY_BIT|SHORT_KEY_BIT //1000 0001 0x81
|
||
|
|
||
|
#define KEY_CODE_2HOME HOME_KEY_BIT|MULTI_KEY_BIT
|
||
|
#define KEY_CODE_2ENTER ENTER_KEY_BIT|MULTI_KEY_BIT
|
||
|
#define KEY_CODE_2UP UP_KEY_BIT|MULTI_KEY_BIT
|
||
|
#define KEY_CODE_2DOWN DOWN_KEY_BIT|MULTI_KEY_BIT
|
||
|
#define KEY_CODE_2END END_KEY_BIT|MULTI_KEY_BIT
|
||
|
|
||
|
#define KEY_CODE_LONG_HOME HOME_KEY_BIT|LONG_KEY_BIT
|
||
|
#define KEY_CODE_LONG_ENTER ENTER_KEY_BIT|LONG_KEY_BIT
|
||
|
#define KEY_CODE_LONG_UP UP_KEY_BIT|LONG_KEY_BIT
|
||
|
#define KEY_CODE_LONG_DOWN DOWN_KEY_BIT|LONG_KEY_BIT
|
||
|
#define KEY_CODE_LONG_END END_KEY_BIT|LONG_KEY_BIT
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#define KEY_CODE_COMB_HOME_ENTER ((LV_KEY_HOME|LV_KEY_ENTER)|SHORT_KEY_BIT)
|
||
|
#define KEY_CODE_COMB_HOME_UP ((LV_KEY_HOME|LV_KEY_PREV)|SHORT_KEY_BIT)
|
||
|
#define KEY_CODE_COMB_HOME_DOWN ((LV_KEY_HOME|LV_KEY_NEXT)|SHORT_KEY_BIT)
|
||
|
#define KEY_CODE_COMB_HOME_END ((LV_KEY_HOME|LV_KEY_END)|SHORT_KEY_BIT)
|
||
|
|
||
|
|
||
|
|
||
|
#define KEY_CODE_COMB_ENTER_UP ((LV_KEY_ENTER|LV_KEY_PREV)|SHORT_KEY_BIT)
|
||
|
#define KEY_CODE_COMB_ENTER_DOWN ((LV_KEY_ENTER|LV_KEY_NEXT)|SHORT_KEY_BIT)
|
||
|
#define KEY_CODE_COMB_ENTER_END ((LV_KEY_ENTER|LV_KEY_END)|SHORT_KEY_BIT)
|
||
|
|
||
|
|
||
|
#define KEY_CODE_COMB_UP_DOWN ((LV_KEY_PREV|LV_KEY_NEXT)|SHORT_KEY_BIT)
|
||
|
#define KEY_CODE_COMB_UP_END ((LV_KEY_PREV|LV_KEY_END)|SHORT_KEY_BIT)
|
||
|
|
||
|
|
||
|
#define KEY_CODE_COMB_DOWN_END ((LV_KEY_NEXT|LV_KEY_END)|SHORT_KEY_BIT)
|
||
|
|
||
|
#define KEY_CODE_LONG_COMB_HOME_ENTER ((LV_KEY_HOME|LV_KEY_ENTER)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_HOME_UP ((LV_KEY_HOME|LV_KEY_PREV)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_HOME_DOWN ((LV_KEY_HOME|LV_KEY_NEXT)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_HOME_END ((LV_KEY_HOME|LV_KEY_END)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_ENTER_UP ((LV_KEY_ENTER|LV_KEY_PREV)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_ENTER_DOWN ((LV_KEY_ENTER|LV_KEY_NEXT)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_ENTER_END ((LV_KEY_ENTER|LV_KEY_END)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_UP_DOWN ((LV_KEY_PREV|LV_KEY_NEXT)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_UP_END ((LV_KEY_PREV|LV_KEY_END)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_LONG_COMB_DOWN_END ((LV_KEY_NEXT|LV_KEY_END)|LONG_KEY_BIT)
|
||
|
#define KEY_CODE_NONE 0
|
||
|
|
||
|
|
||
|
|
||
|
//keyevent
|
||
|
|
||
|
typedef enum {
|
||
|
KEY_EVENT_NONE,
|
||
|
KEY_EVENT_PRESSED,
|
||
|
KEY_EVENT_DOUBLE_PRESSED,
|
||
|
KEY_EVENT_LONG_PRESSED,
|
||
|
KEY_EVENT_COMB_PRESSED,
|
||
|
KEY_EVENT_MAX
|
||
|
}e_key_event_type;
|
||
|
|
||
|
|
||
|
extern uint16_t get_lv_key_task_id(void);
|
||
|
extern uint8_t get_keycode_type_bit();
|
||
|
extern uint8_t get_keycode();
|
||
|
extern void reset_keycode();
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|