From 066823d0af12ee123c97d40525722cb152bbf090 Mon Sep 17 00:00:00 2001 From: zfdx123 <2915441170@qq.com> Date: Mon, 25 Nov 2024 17:24:48 +0800 Subject: [PATCH] Implement a different overlay for each page --- src/OLEDDisplayUi.cpp | 6 ++---- src/OLEDDisplayUi.h | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/OLEDDisplayUi.cpp b/src/OLEDDisplayUi.cpp index 3ade99f7..01e65bda 100644 --- a/src/OLEDDisplayUi.cpp +++ b/src/OLEDDisplayUi.cpp @@ -146,7 +146,7 @@ void OLEDDisplayUi::setFrames(FrameCallback* frameFunctions, uint8_t frameCount) } // -/----- Overlays ------\- -void OLEDDisplayUi::setOverlays(OverlayCallback* overlayFunctions, uint8_t overlayCount){ +void OLEDDisplayUi::setOverlays(OverlayCallback* overlayFunctions, uint8_t* overlayCount){ this->overlayFunctions = overlayFunctions; this->overlayCount = overlayCount; } @@ -460,9 +460,7 @@ void OLEDDisplayUi::drawIndicator() { } void OLEDDisplayUi::drawOverlays() { - for (uint8_t i=0;ioverlayCount;i++){ - (this->overlayFunctions[i])(this->display, &this->state); - } + this->overlayFunctions[this->overlayCount[this->state.currentFrame]](this->display, &this->state); } uint8_t OLEDDisplayUi::getNextFrameNumber(){ diff --git a/src/OLEDDisplayUi.h b/src/OLEDDisplayUi.h index 27a83e8f..269de9c3 100644 --- a/src/OLEDDisplayUi.h +++ b/src/OLEDDisplayUi.h @@ -141,7 +141,7 @@ class OLEDDisplayUi { // Values for Overlays OverlayCallback* overlayFunctions; - uint8_t overlayCount; + uint8_t* overlayCount; // Will the Indicator be drawn // 3 Not drawn in both frames @@ -275,7 +275,7 @@ class OLEDDisplayUi { /** * Add overlays drawing functions that are draw independent of the Frames */ - void setOverlays(OverlayCallback* overlayFunctions, uint8_t overlayCount); + void setOverlays(OverlayCallback *overlayFunctions, uint8_t* overlayCount); // Loading animation