From 00f3ec6eec0c3aee07db5355b803d36e444bce49 Mon Sep 17 00:00:00 2001 From: eshifri Date: Thu, 15 Jul 2021 22:43:53 -0700 Subject: [PATCH] Fix timer edit and time display in logical switch edit --- radio/src/gui/colorlcd/draw_functions.cpp | 10 +++++++++- radio/src/gui/colorlcd/model_logical_switches.cpp | 6 ++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/colorlcd/draw_functions.cpp b/radio/src/gui/colorlcd/draw_functions.cpp index a0530c2b0..f9e2a3ab9 100644 --- a/radio/src/gui/colorlcd/draw_functions.cpp +++ b/radio/src/gui/colorlcd/draw_functions.cpp @@ -416,6 +416,12 @@ void drawSensorCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, uint8_t sens } } +// libopemui defines TIMOUR as zero +#if !TIMHOUR +#undef TIMEHOUR +#define TIMEHOUR 0x2000 +#endif + void drawTimer(BitmapBuffer * dc, coord_t x, coord_t y, int32_t tme, LcdFlags flags) { char str[LEN_TIMER_STRING]; @@ -437,7 +443,9 @@ void drawSourceCustomValue(BitmapBuffer * dc, coord_t x, coord_t y, source_t sou } else if (source >= MIXSRC_FIRST_TIMER || source == MIXSRC_TX_TIME) { // TODO if (value < 0) flags |= BLINK|INVERS; - // TODO drawTimer(dc, x, y, value, flags); + if (source == MIXSRC_TX_TIME) flags |= TIMEHOUR; + drawTimer(dc, x, y, value, flags); + //dc->drawNumber(x, y, lswTimerValue(value), flags | PREC1); } else if (source == MIXSRC_TX_VOLTAGE) { dc->drawNumber(x, y, value, flags|PREC1); diff --git a/radio/src/gui/colorlcd/model_logical_switches.cpp b/radio/src/gui/colorlcd/model_logical_switches.cpp index cbe2d968d..3ac73a1cd 100644 --- a/radio/src/gui/colorlcd/model_logical_switches.cpp +++ b/radio/src/gui/colorlcd/model_logical_switches.cpp @@ -144,14 +144,16 @@ class LogicalSwitchEditPage: public Page new StaticText(logicalSwitchOneWindow, grid.getLabelSlot(), STR_V1); auto timer = new NumberEdit(logicalSwitchOneWindow, grid.getFieldSlot(), -128, 122, GET_SET_DEFAULT(cs->v1)); timer->setDisplayHandler([](BitmapBuffer * dc, LcdFlags flags, int32_t value) { - dc->drawNumber(FIELD_PADDING_LEFT, FIELD_PADDING_TOP, lswTimerValue(value), flags | PREC1); + //dc->drawNumber(FIELD_PADDING_LEFT, FIELD_PADDING_TOP, lswTimerValue(value), flags | PREC1); + drawTimer(dc, FIELD_PADDING_LEFT, FIELD_PADDING_TOP, value, flags); }); grid.nextLine(); new StaticText(logicalSwitchOneWindow, grid.getLabelSlot(), STR_V2); timer = new NumberEdit(logicalSwitchOneWindow, grid.getFieldSlot(), -128, 122, GET_SET_DEFAULT(cs->v2)); timer->setDisplayHandler([](BitmapBuffer * dc, LcdFlags flags, int32_t value) { - dc->drawNumber(FIELD_PADDING_LEFT, FIELD_PADDING_TOP, lswTimerValue(value), flags | PREC1); + //dc->drawNumber(FIELD_PADDING_LEFT, FIELD_PADDING_TOP, lswTimerValue(value), flags | PREC1); + drawTimer(dc, FIELD_PADDING_LEFT, FIELD_PADDING_TOP, value, flags); }); grid.nextLine(); }