From 8103df14997f615c3050375251ad0c6dcd52dab0 Mon Sep 17 00:00:00 2001 From: Daniel Ansorregui Date: Fri, 29 Dec 2023 21:54:10 +0000 Subject: [PATCH] Refactor DarkBorder * Allow to be changed dynamically between display updated. --- src/Display.cpp | 13 +++++++++++-- src/Display.h | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Display.cpp b/src/Display.cpp index 25f311f..3ea0c94 100644 --- a/src/Display.cpp +++ b/src/Display.cpp @@ -38,6 +38,15 @@ void WatchyDisplay::initWatchy() { init(0, displayFullInit, 2, true); } +void WatchyDisplay::setDarkBorder(bool dark) { + if (_hibernating) return; + darkBorder = dark; + _startTransfer(); + _transferCommand(0x3C); // BorderWavefrom + _transfer(dark ? 0x02 : 0x05); + _endTransfer(); +} + void WatchyDisplay::clearScreen(uint8_t value) { writeScreenBuffer(value); @@ -394,12 +403,12 @@ void WatchyDisplay::_InitDisplay() _transfer(0x00); // Duration of phases, Default 0xF = 0b00 11 11 (40ms Phase 1/2, 10ms Phase 3) } - _transferCommand(0x3C); // BorderWavefrom - _transfer(darkBorder ? 0x02 : 0x05); _transferCommand(0x18); // Read built-in temperature sensor _transfer(0x80); _endTransfer(); + setDarkBorder(darkBorder); + _setPartialRamArea(0, 0, WIDTH, HEIGHT); } diff --git a/src/Display.h b/src/Display.h index 5c1ebf3..0fd75a8 100644 --- a/src/Display.h +++ b/src/Display.h @@ -36,6 +36,7 @@ class WatchyDisplay : public GxEPD2_EPD // constructor WatchyDisplay(); void initWatchy(); + void setDarkBorder(bool darkBorder); static void busyCallback(const void *); // methods (virtual) // Support for Bitmaps (Sprites) to Controller Buffer and to Screen