From 46050bc1e9d5b29ccb1ed552af8b5ad42d0cb073 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20H=C3=B6pfinger?= Date: Thu, 18 Jan 2024 13:15:00 +0100 Subject: [PATCH] feat(button): Refactor button press enum values and add BUTTON_PRESS_NORMAL event Added calls for `BUTTON_PRESS_NORMAL` in `iot_button.c` when the button is pressed down or released. --- components/button/include/iot_button.h | 3 ++- components/button/iot_button.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/components/button/include/iot_button.h b/components/button/include/iot_button.h index 0c68441d1..cccfa1ddd 100644 --- a/components/button/include/iot_button.h +++ b/components/button/include/iot_button.h @@ -22,7 +22,8 @@ typedef void *button_handle_t; * */ typedef enum { - BUTTON_PRESS_DOWN = 0, + BUTTON_PRESS_NORMAL = 0, + BUTTON_PRESS_DOWN, BUTTON_PRESS_UP, BUTTON_PRESS_REPEAT, BUTTON_PRESS_REPEAT_DONE, diff --git a/components/button/iot_button.c b/components/button/iot_button.c index e2cc12d56..d4c14d13d 100644 --- a/components/button/iot_button.c +++ b/components/button/iot_button.c @@ -115,6 +115,7 @@ static void button_handler(button_dev_t *btn) if (btn->button_level == btn->active_level) { btn->event = (uint8_t)BUTTON_PRESS_DOWN; CALL_EVENT_CB(BUTTON_PRESS_DOWN); + CALL_EVENT_CB(BUTTON_PRESS_NORMAL); btn->ticks = 0; btn->repeat = 1; btn->state = 1; @@ -127,6 +128,7 @@ static void button_handler(button_dev_t *btn) if (btn->button_level != btn->active_level) { btn->event = (uint8_t)BUTTON_PRESS_UP; CALL_EVENT_CB(BUTTON_PRESS_UP); + CALL_EVENT_CB(BUTTON_PRESS_NORMAL); btn->ticks = 0; btn->state = 2; @@ -153,6 +155,7 @@ static void button_handler(button_dev_t *btn) if (btn->button_level == btn->active_level) { btn->event = (uint8_t)BUTTON_PRESS_DOWN; CALL_EVENT_CB(BUTTON_PRESS_DOWN); + CALL_EVENT_CB(BUTTON_PRESS_NORMAL); btn->event = (uint8_t)BUTTON_PRESS_REPEAT; btn->repeat++; CALL_EVENT_CB(BUTTON_PRESS_REPEAT); // repeat hit @@ -193,6 +196,7 @@ static void button_handler(button_dev_t *btn) if (btn->button_level != btn->active_level) { btn->event = (uint8_t)BUTTON_PRESS_UP; CALL_EVENT_CB(BUTTON_PRESS_UP); + CALL_EVENT_CB(BUTTON_PRESS_NORMAL); if (btn->ticks < SHORT_TICKS) { btn->ticks = 0; btn->state = 2; //repeat press @@ -283,6 +287,7 @@ static void button_handler(button_dev_t *btn) btn->event = (uint8_t)BUTTON_PRESS_UP; CALL_EVENT_CB(BUTTON_PRESS_UP); + CALL_EVENT_CB(BUTTON_PRESS_NORMAL); btn->state = 0; //reset btn->long_press_hold_cnt = 0; }