doubao_chat/include_lib/utils/event/key_event.h

119 lines
2.4 KiB
C

#ifndef KEY_EVENT_H
#define KEY_EVENT_H
#include "event/event.h"
#define KEY_POWER 0
#define KEY_PREV 1
#define KEY_NEXT 2
#define KEY_PLAY 3
#define KEY_VOLUME_DEC 4
#define KEY_VOLUME_INC 5
#define KEY_MODE 6
#define KEY_MENU 7
#define KEY_ENC 8
#define KEY_PHONE 9
#define KEY_PHOTO 10
#define KEY_F1 11
#define KEY_OK 12
#define KEY_CANCLE 13
#define KEY_LEFT 14
#define KEY_UP 15
#define KEY_RIGHT 16
#define KEY_DOWN 17
#define KEY_MUTE 18
#define KEY_COLLECT 19
#define KEY_LOCAL 20
#define KEY_ADD 21
#define KEY_MINUS 22
#define KEY_0 30
#define KEY_1 31
#define KEY_2 32
#define KEY_3 33
#define KEY_4 34
#define KEY_5 35
#define KEY_6 36
#define KEY_7 37
#define KEY_8 38
#define KEY_9 39
#define NO_KEY 255
#define KEY_K1 13
#define KEY_K2 6
#define KEY_K3 4
#define KEY_K4 5
#define KEY_K5 12
#define KEY_K6 10
#define KEY_K7 8
#define KEY_K8 0
enum key_action {
KEY_EVENT_CLICK = 0,
KEY_EVENT_LONG,
KEY_EVENT_HOLD,
KEY_EVENT_UP,
KEY_EVENT_DOUBLE_CLICK,
KEY_EVENT_TRIPLE_CLICK,
KEY_EVENT_FOURTH_CLICK,
KEY_EVENT_FIRTH_CLICK,
KEY_EVENT_USER,
KEY_EVENT_MAX,
};
enum key_from {
KEY_EVENT_FROM_KEY,
KEY_EVENT_FROM_TWS,
KEY_EVENT_FROM_USER,
};
struct key_event {
u8 type;
u8 action;
u8 value;
u16 msg;
};
struct key_event_msg_table {
u8 key_value;
u16 msg_list[8];
};
void key_event_disable();
void key_event_enable();
void key_event_filter_hold_disable();
void key_event_filter_hold_enable();
void key_event_set_msg_table(const struct key_event_msg_table *table);
int key_event_notify(enum key_from from, struct key_event *event);
int key_event_send_msg(u16 msg);
/*
struct key_event_msg_table music_key_table[] = {
{
.key_value = KEY_POWER,
.msg_list = {MSG_MUSIC_PP, MSG_POWER_OFF },
},
{
.key_value = KEY_NEXT,
.msg_list = {MSG_MUSIC_PP, MSG_POWER_OFF },
},
{
.key_value = NO_KEY;
},
};
*/
#endif