#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