56 lines
1.1 KiB
C
Executable File
56 lines
1.1 KiB
C
Executable File
#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
|