From b728d6d64300cea94c3469bf5743a70b627c9651 Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Mon, 20 Jan 2025 09:06:23 +0100 Subject: [PATCH] Add page indicator for OBP40 --- lib/obp60task/OBP60Extensions.cpp | 16 ++++++++++++++++ lib/obp60task/obp60task.cpp | 2 -- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/obp60task/OBP60Extensions.cpp b/lib/obp60task/OBP60Extensions.cpp index cf1ade5..0727501 100644 --- a/lib/obp60task/OBP60Extensions.cpp +++ b/lib/obp60task/OBP60Extensions.cpp @@ -378,6 +378,7 @@ void displayFooter(CommonData &commonData) { getdisplay().setFont(&Atari16px); getdisplay().setTextColor(commonData.fgcolor); +#ifdef HARDWARE_V21 // Frame around key icon area if (! commonData.keylock) { // horizontal elements @@ -424,6 +425,21 @@ void displayFooter(CommonData &commonData) { getdisplay().setCursor(65, 295); getdisplay().print("Press 1 and 6 fast to unlock keys"); } +#endif +#ifdef HARDWARE_LIGHT + // grapical page indicator + static const uint16_t r = 5; + static const uint16_t space = 4; + uint16_t w = commonData.data.maxpage * r * 2 + (commonData.data.maxpage - 1) * space; + uint16_t x0 = (GxEPD_WIDTH - w) / 2 + r * 2; + for (int i = 0; i < commonData.data.maxpage; i++) { + if (i == (commonData.data.actpage - 1)) { + getdisplay().fillCircle(x0 + i * (r * 2 + space), 290, r, commonData.fgcolor); + } else { + getdisplay().drawCircle(x0 + i * (r * 2 + space), 290, r, commonData.fgcolor); + } + } +#endif } // Sunset und sunrise calculation diff --git a/lib/obp60task/obp60task.cpp b/lib/obp60task/obp60task.cpp index d3148cc..40d0fb1 100644 --- a/lib/obp60task/obp60task.cpp +++ b/lib/obp60task/obp60task.cpp @@ -688,12 +688,10 @@ void OBP60Task(GwApi *api){ } //call the page code LOG_DEBUG(GwLog::DEBUG,"calling page %d",pageNumber); -#ifdef HARDWARE_V21 // Show footer if enabled (together with header) if (pages[pageNumber].description && pages[pageNumber].description->header){ displayFooter(commonData); } -#endif currentPage->displayPage(pages[pageNumber].parameters); } }