diff --git a/multi_button.c b/multi_button.c index 1061e68..0a1d049 100644 --- a/multi_button.c +++ b/multi_button.c @@ -18,7 +18,7 @@ static struct Button* head_handle = NULL; * @param button_id: the button id. * @retval None */ -void button_init(struct Button* handle, uint8_t(*pin_level)(), uint8_t active_level, uint8_t button_id) +void button_init(struct Button* handle, BtnLevelCallback pin_level, uint8_t active_level, uint8_t button_id) { memset(handle, 0, sizeof(struct Button)); handle->event = (uint8_t)NONE_PRESS; diff --git a/multi_button.h b/multi_button.h index b066ade..ded428d 100644 --- a/multi_button.h +++ b/multi_button.h @@ -16,7 +16,8 @@ #define LONG_TICKS (1000 /TICKS_INTERVAL) -typedef void (*BtnCallback)(void*); +typedef void (*BtnCallback)(void *); +typedef uint8_t (*BtnLevelCallback)(uint8_t); typedef enum { PRESS_DOWN = 0, @@ -39,7 +40,7 @@ typedef struct Button { uint8_t active_level : 1; uint8_t button_level : 1; uint8_t button_id; - uint8_t (*hal_button_Level)(uint8_t button_id_); + BtnLevelCallback hal_button_Level; BtnCallback cb[number_of_event]; struct Button* next; }Button; @@ -48,7 +49,7 @@ typedef struct Button { extern "C" { #endif -void button_init(struct Button* handle, uint8_t(*pin_level)(), uint8_t active_level, uint8_t button_id); +void button_init(struct Button* handle, BtnLevelCallback pin_level, uint8_t active_level, uint8_t button_id); void button_attach(struct Button* handle, PressEvent event, BtnCallback cb); PressEvent get_button_event(struct Button* handle); int button_start(struct Button* handle);