hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
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