From 101a2b03a8445cf49e83f2f713313fcc513ece40 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Sun, 13 Aug 2023 22:33:45 +0200 Subject: [PATCH] More fixes again --- components/esp-gui-lib | 2 +- main/CMakeLists.txt | 4 ++-- main/actions/rebootaction.cpp | 22 ------------------ main/actions/rebootaction.h | 10 --------- main/bobbyerrorhandler.cpp | 8 ++++--- main/displays/gameoflifedisplay.cpp | 4 ++-- main/displays/gameoflifedisplay.h | 2 +- main/displays/menus/aboutmenu.cpp | 2 +- main/displays/menus/aboutmenu.h | 2 +- main/displays/rebootscreen.cpp | 35 +++++++++++++++++++++++++++++ main/displays/rebootscreen.h | 17 ++++++++++++++ main/globals.cpp | 2 +- main/globals.h | 4 ++-- 13 files changed, 68 insertions(+), 46 deletions(-) delete mode 100644 main/actions/rebootaction.cpp delete mode 100644 main/actions/rebootaction.h create mode 100644 main/displays/rebootscreen.cpp create mode 100644 main/displays/rebootscreen.h diff --git a/components/esp-gui-lib b/components/esp-gui-lib index 7e17dcf..53c5f9a 160000 --- a/components/esp-gui-lib +++ b/components/esp-gui-lib @@ -1 +1 @@ -Subproject commit 7e17dcf7d841d1b62798ee878cc5e08554e51b65 +Subproject commit 53c5f9a0f3a89cfb351ef90214a1354ddcbb613e diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 935b173..7e2b7b2 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -23,7 +23,6 @@ set(BOBBY_HEADERS actions/loadsettingsaction.h actions/modesettingsaction.h actions/qraction.h - actions/rebootaction.h actions/resetnvsaction.h actions/savesettingsaction.h actions/setupactions.h @@ -159,6 +158,7 @@ set(BOBBY_HEADERS displays/qrcodedebug.h displays/qrdisplay.h displays/qrimportdisplay.h + displays/rebootscreen.h displays/setup/ask_calibrate_other_buttons.h displays/setup/ask_setup_clouds.h displays/setup/basic_buttons.h @@ -287,7 +287,6 @@ set(BOBBY_SOURCES actions/loadsettingsaction.cpp actions/modesettingsaction.cpp actions/qraction.cpp - actions/rebootaction.cpp actions/resetnvsaction.cpp actions/savesettingsaction.cpp actions/setupactions.cpp @@ -418,6 +417,7 @@ set(BOBBY_SOURCES displays/qrcodedebug.cpp displays/qrdisplay.cpp displays/qrimportdisplay.cpp + displays/rebootscreen.cpp displays/setup/ask_calibrate_other_buttons.cpp displays/setup/ask_setup_clouds.cpp displays/setup/basic_buttons.cpp diff --git a/main/actions/rebootaction.cpp b/main/actions/rebootaction.cpp deleted file mode 100644 index 9304927..0000000 --- a/main/actions/rebootaction.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "rebootaction.h" - -// esp-idf includes -#include - -// 3rdparty lib includes -#include - -void RebootAction::triggered() -{ - tft.fillScreen(TFT_BLACK); - tft.setTextColor(TFT_YELLOW); - - tft.drawString("Reboot", 5, 5, 4); - - tft.fillRect(0, 34, tft.width(), 3, TFT_WHITE); - - tft.setTextColor(TFT_WHITE); - tft.drawString("Rebooting now...", 0, 50, 4); - - esp_restart(); -} diff --git a/main/actions/rebootaction.h b/main/actions/rebootaction.h deleted file mode 100644 index 757ba3c..0000000 --- a/main/actions/rebootaction.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -// 3rdparty lib includes -#include - -class RebootAction : public virtual espgui::ActionInterface -{ -public: - void triggered() override; -}; diff --git a/main/bobbyerrorhandler.cpp b/main/bobbyerrorhandler.cpp index cddbaa2..5f50d10 100644 --- a/main/bobbyerrorhandler.cpp +++ b/main/bobbyerrorhandler.cpp @@ -8,7 +8,9 @@ void BobbyErrorHandler::errorOccurred(std::string &&error) { - auto newDisplay = std::make_unique(std::move(error), std::move(espgui::currentDisplay)); - newDisplay->initOverlay(tft); - espgui::currentDisplay = std::move(newDisplay); + espgui::changeScreenCallback = [error_ = std::move(error)](espgui::TftInterface &tft) mutable { + auto newDisplay = std::make_unique(std::move(error_), std::move(espgui::currentDisplay)); + newDisplay->initOverlay(tft); + espgui::currentDisplay = std::move(newDisplay); + }; } diff --git a/main/displays/gameoflifedisplay.cpp b/main/displays/gameoflifedisplay.cpp index 0115f13..5ea379d 100644 --- a/main/displays/gameoflifedisplay.cpp +++ b/main/displays/gameoflifedisplay.cpp @@ -39,7 +39,7 @@ void GameOfLifeDisplay::redraw(espgui::TftInterface &tft) } computeCA(); - drawGrid(); + drawGrid(tft); *m_grid = *m_newgrid; @@ -71,7 +71,7 @@ void GameOfLifeDisplay::buttonPressed(espgui::Button button) } } -void GameOfLifeDisplay::drawGrid() +void GameOfLifeDisplay::drawGrid(espgui::TftInterface &tft) { uint16_t color = espgui::TFT_WHITE; for (int16_t x = 1; x < GRIDX - 1; x++) { diff --git a/main/displays/gameoflifedisplay.h b/main/displays/gameoflifedisplay.h index 536a9fc..748c353 100644 --- a/main/displays/gameoflifedisplay.h +++ b/main/displays/gameoflifedisplay.h @@ -22,7 +22,7 @@ public: private: //Draws the grid on the display - void drawGrid(); + void drawGrid(espgui::TftInterface &tft); //Initialise Grid void initGrid(); diff --git a/main/displays/menus/aboutmenu.cpp b/main/displays/menus/aboutmenu.cpp index da28283..43bf39c 100644 --- a/main/displays/menus/aboutmenu.cpp +++ b/main/displays/menus/aboutmenu.cpp @@ -58,7 +58,7 @@ AboutMenu::AboutMenu() constructMenuItem, PopScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } -std::string AboutMenu::text() const +std::string AboutMenu::title() const { return TEXT_ABOUT; } diff --git a/main/displays/menus/aboutmenu.h b/main/displays/menus/aboutmenu.h index 3937122..fdd587f 100644 --- a/main/displays/menus/aboutmenu.h +++ b/main/displays/menus/aboutmenu.h @@ -8,7 +8,7 @@ class AboutMenu : public BobbyMenuDisplay public: AboutMenu(); - std::string text() const override; + std::string title() const override; void back() override; }; diff --git a/main/displays/rebootscreen.cpp b/main/displays/rebootscreen.cpp new file mode 100644 index 0000000..52307ef --- /dev/null +++ b/main/displays/rebootscreen.cpp @@ -0,0 +1,35 @@ +#include "rebootscreen.h" + +// esp-idf includes +#include + +// 3rdparty lib includes +#include +#include +#include + +void RebootScreen::initScreen(espgui::TftInterface &tft) +{ + Base::initScreen(tft); + + espgui::FontRenderer fontRenderer{tft}; + + fontRenderer.drawString("Rebooting now...", 0, 50, espgui::TFT_WHITE, espgui::TFT_BLACK, 4); + + esp_restart(); +} + +std::string RebootScreen::title() const +{ + return "Reboot"; +} + +void RebootScreen::buttonPressed(espgui::Button button) +{ + +} + +void RebootScreen::buttonReleased(espgui::Button button) +{ + +} diff --git a/main/displays/rebootscreen.h b/main/displays/rebootscreen.h new file mode 100644 index 0000000..26f86db --- /dev/null +++ b/main/displays/rebootscreen.h @@ -0,0 +1,17 @@ +#pragma once + +// local includes +#include "displays/bobbydisplaywithtitle.h" + +class RebootScreen : public BobbyDisplayWithTitle +{ + using Base = BobbyDisplayWithTitle; + +public: + void initScreen(espgui::TftInterface &tft) override; + + std::string title() const override; + + void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; +}; diff --git a/main/globals.cpp b/main/globals.cpp index 279e2b9..ffe8ec9 100644 --- a/main/globals.cpp +++ b/main/globals.cpp @@ -26,7 +26,7 @@ std::optional sunset; std::optional sunrise_dt; esp_chip_info_t chip_info; -esp_pm_config_esp32_t pm_config; +esp_pm_config_t pm_config; #ifdef GLOBALS_SOURCE GLOBALS_SOURCE diff --git a/main/globals.h b/main/globals.h index ecf7c5e..f8cb367 100644 --- a/main/globals.h +++ b/main/globals.h @@ -17,7 +17,7 @@ // esp-idf includes #include -#include +#include // 3rdparty lib includes #include @@ -49,7 +49,7 @@ extern std::optional sunset; extern std::optional sunrise_dt; extern esp_chip_info_t chip_info; -extern esp_pm_config_esp32_t pm_config; +extern esp_pm_config_t pm_config; extern float avgSpeed; extern float avgSpeedKmh;