diff --git a/src/OLEDDisplayUi.cpp b/src/OLEDDisplayUi.cpp index 3ade99f..01e65bd 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 27a83e8..269de9c 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