From bff63a4f909770d86b12217e9003a22c54789c7b Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Mon, 30 Aug 2021 01:23:39 +0100 Subject: [PATCH] touchscreen: change odd sentinel value for time of last touch Using tick 0xffff does not make any sense, use -1 instead. Change-Id: Id574eb35418c6713c4fc91ed539aadc42fd29aa5 --- apps/gui/skin_engine/skin_parser.c | 4 ++-- apps/gui/skin_engine/skin_tokens.c | 4 ++-- firmware/drivers/button.c | 6 +++--- firmware/export/button.h | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 4ebdcab722..b3840f689f 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -1187,7 +1187,7 @@ static int parse_progressbar_tag(struct skin_element* element, region->reverse_bar = false; region->allow_while_locked = false; region->press_length = PRESS; - region->last_press = 0xffff; + region->last_press = -1; region->armed = false; region->bar = PTRTOSKINOFFSET(skin_buffer, pb); @@ -1602,7 +1602,7 @@ static int parse_touchregion(struct skin_element *element, region->armed = false; region->reverse_bar = false; region->value = 0; - region->last_press = 0xffff; + region->last_press = -1; region->press_length = PRESS; region->allow_while_locked = false; region->bar = PTRTOSKINOFFSET(skin_buffer, NULL); diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index a4c9af7539..27022b87d1 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c @@ -1367,7 +1367,7 @@ const char *get_token_value(struct gui_wps *gwps, case SKIN_TOKEN_LASTTOUCH: { #ifdef HAVE_TOUCHSCREEN - unsigned int last_touch = touchscreen_last_touch(); + long last_touch = touchscreen_last_touch(); char *skin_base = get_skin_buffer(data); struct touchregion_lastpress *data = SKINOFFSETTOPTR(skin_base, token->value.data); if (!data) return NULL; @@ -1375,7 +1375,7 @@ const char *get_token_value(struct gui_wps *gwps, if (region) last_touch = region->last_press; - if (last_touch != 0xffff && + if (last_touch != -1 && TIME_BEFORE(current_tick, data->timeout + last_touch)) return "t"; #endif diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c index 0af51dc3b2..9979bc0155 100644 --- a/firmware/drivers/button.c +++ b/firmware/drivers/button.c @@ -94,7 +94,7 @@ static int button_read(void); #endif #ifdef HAVE_TOUCHSCREEN -static int last_touchscreen_touch; +static long last_touchscreen_touch; #endif #if defined(HAVE_HEADPHONE_DETECTION) static struct timeout hp_detect_timeout; /* Debouncer for headphone plug/unplug */ @@ -542,7 +542,7 @@ void button_init(void) #endif #endif #ifdef HAVE_TOUCHSCREEN - last_touchscreen_touch = 0xffff; + last_touchscreen_touch = -1; #endif /* Start polling last */ tick_add_task(button_tick); @@ -714,7 +714,7 @@ void button_clear_queue(void) } #ifdef HAVE_TOUCHSCREEN -int touchscreen_last_touch(void) +long touchscreen_last_touch(void) { return last_touchscreen_touch; } diff --git a/firmware/export/button.h b/firmware/export/button.h index 1745947230..3abad2d4f0 100644 --- a/firmware/export/button.h +++ b/firmware/export/button.h @@ -107,7 +107,7 @@ int button_apply_acceleration(const unsigned int data); BUTTON_MULTIMEDIA_FFWD) #ifdef HAVE_TOUCHSCREEN -int touchscreen_last_touch(void); +long touchscreen_last_touch(void); #if (!defined(BUTTON_TOPLEFT) || !defined(BUTTON_TOPMIDDLE) \ || !defined(BUTTON_TOPRIGHT) || !defined(BUTTON_MIDLEFT) \