1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| #ifndef BUTTON_H
| #define BUTTON_H
| #ifdef __cplusplus
| extern "C" {
| #endif
|
|
| typedef enum {
| //短按触发
| BUTTON_EVENT_VOLUME_ADD = 0,
| //短按触发
| BUTTON_EVENT_VOLUME_SUB,
| //长按每隔1.5秒触发一次
| BUTTON_EVENT_PREV,
| //长按每隔1.5秒触发一次
| BUTTON_EVENT_NEXT,
| //短按触发
| BUTTON_EVENT_PLAY_PAUSE,
| //长按1.5秒后触发
| BUTTON_EVENT_PLAY_PAUSE_LONG,
| //短按触发
| BUTTON_EVENT_MUTE_UNMUTE,
| //长按1.5秒触发
| BUTTON_EVENT_MUTE_UNMUTE_LONG,
| //长按3秒触发
| BUTTON_EVENT_MODE_WIFI,
| //短按触发
| BUTTON_EVENT_MODE_NORMAL,
| BUTTON_EVENT_MAX
| }button_event_t;
|
|
| typedef void (*button_event_cb)(button_event_t ev, void *userdata);
|
| typedef struct {
| char *dev;
| button_event_cb cb;
| void *userdata;
| }button_config_t;
|
| typedef struct button* button_handle_t;
|
| button_handle_t button_create(button_config_t *config);
|
| //默认内部100ms检查一次
| int button_run(button_handle_t self);
| int button_run2(button_handle_t self, int ms);
|
| void button_destroy(button_handle_t self);
|
|
| #ifdef __cplusplus
| }
| #endif
| #endif
|
|