From 4ca7f8ce2de170795bf331157bd6a267dbf87e10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Wed, 22 Feb 2023 18:30:51 +0000 Subject: [PATCH] cleanup: drop lcd_encoder in _menu_edit_P Taken from PR 3985 by adding currentValue infrastructure Change in memory: Flash: 0 bytes SRAM: 0 bytes --- Firmware/menu.cpp | 8 ++++---- Firmware/menu.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Firmware/menu.cpp b/Firmware/menu.cpp index d20c7b055..34e669f16 100755 --- a/Firmware/menu.cpp +++ b/Firmware/menu.cpp @@ -470,14 +470,14 @@ static void _menu_edit_P(void) menu_data_edit_t* _md = (menu_data_edit_t*)&(menu_data[0]); if (lcd_draw_update) { - if (lcd_encoder < _md->minEditValue) lcd_encoder = _md->minEditValue; - else if (lcd_encoder > _md->maxEditValue) lcd_encoder = _md->maxEditValue; + // Constrain the value in case it's outside the allowed limits + _md->currentValue = constrain(_md->currentValue, _md->minEditValue, _md->maxEditValue); lcd_set_cursor(0, 1); - menu_draw_P(' ', _md->editLabel, lcd_encoder); + menu_draw_P(' ', _md->editLabel, _md->currentValue); } if (lcd_clicked()) { - *((T)(_md->editValue)) = lcd_encoder; + *((T)(_md->editValue)) = _md->currentValue; menu_back_no_reset(); } } diff --git a/Firmware/menu.h b/Firmware/menu.h index 7b67bbdf4..291b3845e 100755 --- a/Firmware/menu.h +++ b/Firmware/menu.h @@ -21,6 +21,7 @@ typedef struct //Variables used when editing values. const char* editLabel; void* editValue; + int16_t currentValue; int16_t minEditValue; int16_t maxEditValue; } menu_data_edit_t;