Files
device_rockchip/rk3308/aispeech/dds_client/demo/button/button.h
Eddie Cai 6ea5e91a98 initial commit
Signed-off-by: Eddie Cai <eddie.cai.linux@gmail.com>
2018-06-23 10:08:13 +08:00

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