From c13b4ae4816c6008d866b22e382955883953cde5 Mon Sep 17 00:00:00 2001 From: Adam Mealings Date: Fri, 31 Oct 2025 13:04:59 +0000 Subject: [PATCH] Analogue button delay based on millis --- examples/companion_radio/ui-new/UITask.cpp | 21 ++++++++++++--------- examples/companion_radio/ui-new/UITask.h | 4 ++++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/examples/companion_radio/ui-new/UITask.cpp b/examples/companion_radio/ui-new/UITask.cpp index 7c75a0892..086f82599 100644 --- a/examples/companion_radio/ui-new/UITask.cpp +++ b/examples/companion_radio/ui-new/UITask.cpp @@ -700,15 +700,18 @@ void UITask::loop() { } #endif #if defined(PIN_USER_BTN_ANA) - ev = analog_btn.check(); - if (ev == BUTTON_EVENT_CLICK) { - c = checkDisplayOn(KEY_NEXT); - } else if (ev == BUTTON_EVENT_LONG_PRESS) { - c = handleLongPress(KEY_ENTER); - } else if (ev == BUTTON_EVENT_DOUBLE_CLICK) { - c = handleDoubleClick(KEY_PREV); - } else if (ev == BUTTON_EVENT_TRIPLE_CLICK) { - c = handleTripleClick(KEY_SELECT); + if (abs(millis() - _analogue_pin_read_millis) > 10) { + ev = analog_btn.check(); + if (ev == BUTTON_EVENT_CLICK) { + c = checkDisplayOn(KEY_NEXT); + } else if (ev == BUTTON_EVENT_LONG_PRESS) { + c = handleLongPress(KEY_ENTER); + } else if (ev == BUTTON_EVENT_DOUBLE_CLICK) { + c = handleDoubleClick(KEY_PREV); + } else if (ev == BUTTON_EVENT_TRIPLE_CLICK) { + c = handleTripleClick(KEY_SELECT); + } + _analogue_pin_read_millis = millis(); } #endif #if defined(DISP_BACKLIGHT) && defined(BACKLIGHT_BTN) diff --git a/examples/companion_radio/ui-new/UITask.h b/examples/companion_radio/ui-new/UITask.h index c24d33a48..32d5f3a0d 100644 --- a/examples/companion_radio/ui-new/UITask.h +++ b/examples/companion_radio/ui-new/UITask.h @@ -40,6 +40,10 @@ class UITask : public AbstractUITask { int last_led_increment = 0; #endif +#ifdef PIN_USER_BTN_ANA + unsigned long _analogue_pin_read_millis = millis(); +#endif + UIScreen* splash; UIScreen* home; UIScreen* msg_preview;