diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index b6d02f0..5a17f57 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -52,10 +52,12 @@ set(headers debuginputhandler.h debugtexthelpers.h displays/bmsdisplay.h + displays/bobbychangevaluedisplay.h displays/bobbydisplay.h displays/bobbydisplaywithtitle.h - displays/bobbychangevaluedisplay.h + displays/bobbygraphdisplay.h displays/bobbymenudisplay.h + displays/bobbysplitgraphdisplay.h displays/calibratedisplay.h displays/calibratevoltagedisplay.h displays/qrdisplay.h @@ -67,6 +69,7 @@ set(headers displays/garagedisplay.h displays/ledstripcolorsdisplay.h displays/lockscreen.h + displays/menudisplaywithtime.cpp displays/menus/aboutmenu.h displays/menus/accesspointwifisettingsmenu.h displays/menus/batterydebugmenu.h @@ -274,10 +277,12 @@ set(sources debuginputhandler.cpp debugtexthelpers.cpp displays/bmsdisplay.cpp + displays/bobbychangevaluedisplay.cpp displays/bobbydisplay.cpp displays/bobbydisplaywithtitle.cpp - displays/bobbychangevaluedisplay.cpp + displays/bobbygraphdisplay.cpp displays/bobbymenudisplay.cpp + displays/bobbysplitgraphdisplay.cpp displays/calibratedisplay.cpp displays/calibratevoltagedisplay.cpp displays/qrdisplay.cpp @@ -438,7 +443,6 @@ set(sources webserver_settings.cpp webserver_stringsettings.cpp widgets/doubleprogressbar.cpp - displays/menudisplaywithtime.cpp wifi_bobbycar.cpp wifitexthelpers.cpp ) diff --git a/main/displays/bobbychangevaluedisplay.cpp b/main/displays/bobbychangevaluedisplay.cpp index 25f9397..b51c0f1 100644 --- a/main/displays/bobbychangevaluedisplay.cpp +++ b/main/displays/bobbychangevaluedisplay.cpp @@ -3,7 +3,7 @@ template void BobbyChangeValueDisplay::rawButtonPressed(uint8_t button) { - Base::rawButtonPressed(button); + //Base::rawButtonPressed(button); switch (button) { using espgui::Button; @@ -25,7 +25,7 @@ void BobbyChangeValueDisplay::rawButtonPressed(uint8_t button) template void BobbyChangeValueDisplay::rawButtonReleased(uint8_t button) { - Base::rawButtonReleased(button); + //Base::rawButtonReleased(button); switch (button) { using espgui::Button; diff --git a/main/displays/bobbydisplay.cpp b/main/displays/bobbydisplay.cpp index 99ee24c..7f20721 100644 --- a/main/displays/bobbydisplay.cpp +++ b/main/displays/bobbydisplay.cpp @@ -2,7 +2,7 @@ void BobbyDisplay::rawButtonPressed(uint8_t button) { - Base::rawButtonPressed(button); + //Base::rawButtonPressed(button); switch (button) { using espgui::Button; @@ -23,7 +23,7 @@ void BobbyDisplay::rawButtonPressed(uint8_t button) void BobbyDisplay::rawButtonReleased(uint8_t button) { - Base::rawButtonReleased(button); + //Base::rawButtonReleased(button); switch (button) { using espgui::Button; diff --git a/main/displays/bobbydisplaywithtitle.cpp b/main/displays/bobbydisplaywithtitle.cpp index ef5cce1..eae9db5 100644 --- a/main/displays/bobbydisplaywithtitle.cpp +++ b/main/displays/bobbydisplaywithtitle.cpp @@ -2,7 +2,7 @@ void BobbyDisplayWithTitle::rawButtonPressed(uint8_t button) { - Base::rawButtonPressed(button); + //Base::rawButtonPressed(button); switch (button) { using espgui::Button; @@ -23,7 +23,7 @@ void BobbyDisplayWithTitle::rawButtonPressed(uint8_t button) void BobbyDisplayWithTitle::rawButtonReleased(uint8_t button) { - Base::rawButtonReleased(button); + //Base::rawButtonReleased(button); switch (button) { using espgui::Button; diff --git a/main/displays/bobbygraphdisplay.cpp b/main/displays/bobbygraphdisplay.cpp new file mode 100644 index 0000000..2711cfc --- /dev/null +++ b/main/displays/bobbygraphdisplay.cpp @@ -0,0 +1,70 @@ +#include "bobbygraphdisplay.h" + +template +void BobbyGraphDisplay::rawButtonPressed(uint8_t button) +{ + //Base::rawButtonPressed(button); + switch (button) + { + using espgui::Button; + case 0: buttonPressed(Button::Left); break; + case 1: buttonPressed(Button::Right); break; + case 2: buttonPressed(Button::Up); break; + case 3: buttonPressed(Button::Down); break; + case 4: buttonPressed(Button(BobbyButton::Profile0)); break; + case 5: buttonPressed(Button(BobbyButton::Profile1)); break; + case 6: buttonPressed(Button(BobbyButton::Profile2)); break; + case 7: buttonPressed(Button(BobbyButton::Profile3)); break; + case 8: buttonPressed(Button(BobbyButton::Left2)); break; + case 9: buttonPressed(Button(BobbyButton::Right2)); break; + case 10: buttonPressed(Button(BobbyButton::Up2)); break; + case 11: buttonPressed(Button(BobbyButton::Down2)); break; + } +} + +template +void BobbyGraphDisplay::rawButtonReleased(uint8_t button) +{ + //Base::rawButtonReleased(button); + switch (button) + { + using espgui::Button; + case 0: buttonReleased(Button::Left); break; + case 1: buttonReleased(Button::Right); break; + case 2: buttonReleased(Button::Up); break; + case 3: buttonReleased(Button::Down); break; + case 4: buttonReleased(Button(BobbyButton::Profile0)); break; + case 5: buttonReleased(Button(BobbyButton::Profile1)); break; + case 6: buttonReleased(Button(BobbyButton::Profile2)); break; + case 7: buttonReleased(Button(BobbyButton::Profile3)); break; + case 8: buttonReleased(Button(BobbyButton::Left2)); break; + case 9: buttonReleased(Button(BobbyButton::Right2)); break; + case 10: buttonReleased(Button(BobbyButton::Up2)); break; + case 11: buttonReleased(Button(BobbyButton::Down2)); break; + } +} + +template +void BobbyGraphDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (BobbyButton(button)) + { + case BobbyButton::Profile0: /* TODO */ break; + case BobbyButton::Profile1: /* TODO */ break; + case BobbyButton::Profile2: /* TODO */ break; + case BobbyButton::Profile3: /* TODO */ break; + case BobbyButton::Left2: /* TODO */ break; + case BobbyButton::Right2: /* TODO */ break; + case BobbyButton::Up2: /* TODO */ break; + case BobbyButton::Down2: /* TODO */ break; + default:; + } +} + +template +void BobbyGraphDisplay::buttonReleased(espgui::Button button) +{ + Base::buttonReleased(button); +} diff --git a/main/displays/bobbygraphdisplay.h b/main/displays/bobbygraphdisplay.h new file mode 100644 index 0000000..6019ed4 --- /dev/null +++ b/main/displays/bobbygraphdisplay.h @@ -0,0 +1,23 @@ +#pragma once + +// system includes +#include + +// 3rdparty lib includes +#include + +// local includes +#include "bobbydisplay.h" + +template +class BobbyGraphDisplay : public espgui::GraphDisplay +{ + using Base = espgui::GraphDisplay; + +public: + void rawButtonPressed(uint8_t button) override; + void rawButtonReleased(uint8_t button) override; + + void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; +}; diff --git a/main/displays/bobbymenudisplay.cpp b/main/displays/bobbymenudisplay.cpp index bd455ac..ff531fc 100644 --- a/main/displays/bobbymenudisplay.cpp +++ b/main/displays/bobbymenudisplay.cpp @@ -2,7 +2,7 @@ void BobbyMenuDisplay::rawButtonPressed(uint8_t button) { - Base::rawButtonPressed(button); + //Base::rawButtonPressed(button); switch (button) { using espgui::Button; @@ -23,7 +23,7 @@ void BobbyMenuDisplay::rawButtonPressed(uint8_t button) void BobbyMenuDisplay::rawButtonReleased(uint8_t button) { - Base::rawButtonReleased(button); + //Base::rawButtonReleased(button); switch (button) { using espgui::Button; diff --git a/main/displays/bobbysplitgraphdisplay.cpp b/main/displays/bobbysplitgraphdisplay.cpp new file mode 100644 index 0000000..a44a1bb --- /dev/null +++ b/main/displays/bobbysplitgraphdisplay.cpp @@ -0,0 +1,70 @@ +#include "bobbysplitgraphdisplay.h" + +template +void BobbySplitGraphDisplay::rawButtonPressed(uint8_t button) +{ + //Base::rawButtonPressed(button); + switch (button) + { + using espgui::Button; + case 0: buttonPressed(Button::Left); break; + case 1: buttonPressed(Button::Right); break; + case 2: buttonPressed(Button::Up); break; + case 3: buttonPressed(Button::Down); break; + case 4: buttonPressed(Button(BobbyButton::Profile0)); break; + case 5: buttonPressed(Button(BobbyButton::Profile1)); break; + case 6: buttonPressed(Button(BobbyButton::Profile2)); break; + case 7: buttonPressed(Button(BobbyButton::Profile3)); break; + case 8: buttonPressed(Button(BobbyButton::Left2)); break; + case 9: buttonPressed(Button(BobbyButton::Right2)); break; + case 10: buttonPressed(Button(BobbyButton::Up2)); break; + case 11: buttonPressed(Button(BobbyButton::Down2)); break; + } +} + +template +void BobbySplitGraphDisplay::rawButtonReleased(uint8_t button) +{ + //Base::rawButtonReleased(button); + switch (button) + { + using espgui::Button; + case 0: buttonReleased(Button::Left); break; + case 1: buttonReleased(Button::Right); break; + case 2: buttonReleased(Button::Up); break; + case 3: buttonReleased(Button::Down); break; + case 4: buttonReleased(Button(BobbyButton::Profile0)); break; + case 5: buttonReleased(Button(BobbyButton::Profile1)); break; + case 6: buttonReleased(Button(BobbyButton::Profile2)); break; + case 7: buttonReleased(Button(BobbyButton::Profile3)); break; + case 8: buttonReleased(Button(BobbyButton::Left2)); break; + case 9: buttonReleased(Button(BobbyButton::Right2)); break; + case 10: buttonReleased(Button(BobbyButton::Up2)); break; + case 11: buttonReleased(Button(BobbyButton::Down2)); break; + } +} + +template +void BobbySplitGraphDisplay::buttonPressed(espgui::Button button) +{ + Base::buttonPressed(button); + + switch (BobbyButton(button)) + { + case BobbyButton::Profile0: /* TODO */ break; + case BobbyButton::Profile1: /* TODO */ break; + case BobbyButton::Profile2: /* TODO */ break; + case BobbyButton::Profile3: /* TODO */ break; + case BobbyButton::Left2: /* TODO */ break; + case BobbyButton::Right2: /* TODO */ break; + case BobbyButton::Up2: /* TODO */ break; + case BobbyButton::Down2: /* TODO */ break; + default:; + } +} + +template +void BobbySplitGraphDisplay::buttonReleased(espgui::Button button) +{ + Base::buttonReleased(button); +} diff --git a/main/displays/bobbysplitgraphdisplay.h b/main/displays/bobbysplitgraphdisplay.h new file mode 100644 index 0000000..e9d6c9b --- /dev/null +++ b/main/displays/bobbysplitgraphdisplay.h @@ -0,0 +1,23 @@ +#pragma once + +// system includes +#include + +// 3rdparty lib includes +#include + +// local includes +#include "bobbydisplay.h" + +template +class BobbySplitGraphDisplay : public espgui::SplitGraphDisplay +{ + using Base = espgui::SplitGraphDisplay; + +public: + void rawButtonPressed(uint8_t button) override; + void rawButtonReleased(uint8_t button) override; + + void buttonPressed(espgui::Button button) override; + void buttonReleased(espgui::Button button) override; +}; diff --git a/main/displays/menus/batterymenu.cpp b/main/displays/menus/batterymenu.cpp index 5ff4919..2a64ed6 100644 --- a/main/displays/menus/batterymenu.cpp +++ b/main/displays/menus/batterymenu.cpp @@ -4,6 +4,7 @@ #include // local includes +#include "displays/bobbychangevaluedisplay.h" #include "mainmenu.h" #include "displays/calibratevoltagedisplay.h" #include "accessors/settingsaccessors.h" @@ -13,7 +14,7 @@ class CurrentBatteryStatusText : public virtual espgui::TextInterface { public: std::string text() const override { return getBatteryPercentageString(); } }; using BatteryCellSeriesChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BatterySeriesCellsAccessor, espgui::BackActionInterface>, @@ -21,7 +22,7 @@ using BatteryCellSeriesChangeScreen = espgui::makeComponent< >; using BatteryCellParallelChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BatteryParallelCellsAccessor, espgui::BackActionInterface>, @@ -29,7 +30,7 @@ using BatteryCellParallelChangeScreen = espgui::makeComponent< >; using BatteryWHperKMChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BatteryWHperKMAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp index b5d71f8..6b3a2c6 100644 --- a/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp +++ b/main/displays/menus/boardcomputerhardwaresettingsmenu.cpp @@ -10,6 +10,7 @@ #include // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "icons/lock.h" #include "accessors/settingsaccessors.h" @@ -43,35 +44,35 @@ public: }; using SampleCountChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, SampleCountAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GasMinChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GasMinAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GasMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GasMaxAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using BremsMinChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BremsMinAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using BremsMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BremsMaxAccessor, espgui::BackActionInterface>, @@ -80,7 +81,7 @@ using BremsMaxChangeScreen = espgui::makeComponent< #if defined(FEATURE_DPAD) || defined(FEATURE_DPAD_3WIRESW) || defined(FEATURE_DPAD_5WIRESW) || defined(FEATURE_DPAD_5WIRESW_2OUT) || defined (FEATURE_DPAD_6WIRESW) using DPadDebounceChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DPadDebounceAccessor, espgui::BackActionInterface>, @@ -103,42 +104,42 @@ public: }; using GametrakXMinChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GametrakXMinAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GametrakXMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GametrakXMaxAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GametrakYMinChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GametrakYMinAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GametrakYMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GametrakYMaxAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GametrakDistMinChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GametrakDistMinAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using GametrakDistMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, GametrakDistMaxAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/buzzermenu.cpp b/main/displays/menus/buzzermenu.cpp index b050698..cb1866b 100644 --- a/main/displays/menus/buzzermenu.cpp +++ b/main/displays/menus/buzzermenu.cpp @@ -9,6 +9,7 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "globals.h" #include "accessors/settingsaccessors.h" @@ -17,7 +18,7 @@ namespace { struct FrontFreqAccessor : public espgui::RefAccessor { uint8_t &getRef() const override { return controllers.front.command.buzzer.freq; } }; using FrontFreqChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, FrontFreqAccessor, espgui::BackActionInterface>, @@ -26,7 +27,7 @@ using FrontFreqChangeScreen = espgui::makeComponent< struct FrontPatternAccessor : public espgui::RefAccessor { uint8_t &getRef() const override { return controllers.front.command.buzzer.pattern; } }; using FrontPatternChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, FrontPatternAccessor, espgui::BackActionInterface>, @@ -35,7 +36,7 @@ using FrontPatternChangeScreen = espgui::makeComponent< struct BackFreqAccessor : public espgui::RefAccessor { uint8_t &getRef() const override { return controllers.back.command.buzzer.freq; } }; using BackFreqChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BackFreqAccessor, espgui::BackActionInterface>, @@ -44,7 +45,7 @@ using BackFreqChangeScreen = espgui::makeComponent< struct BackPatternAccessor : public espgui::RefAccessor { uint8_t &getRef() const override { return controllers.back.command.buzzer.pattern; } }; using BackPatternChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, BackPatternAccessor, espgui::BackActionInterface>, @@ -52,28 +53,28 @@ using BackPatternChangeScreen = espgui::makeComponent< >; using ReverseBeepFreq0ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, ReverseBeepFreq0Accessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using ReverseBeepFreq1ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, ReverseBeepFreq1Accessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using ReverseBeepDuration0ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, ReverseBeepDuration0Accessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using ReverseBeepDuration1ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, ReverseBeepDuration1Accessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/cloudsettingsmenu.cpp b/main/displays/menus/cloudsettingsmenu.cpp index 80b7d18..9f2479a 100644 --- a/main/displays/menus/cloudsettingsmenu.cpp +++ b/main/displays/menus/cloudsettingsmenu.cpp @@ -11,6 +11,7 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "cloudtexthelpers.h" #include "accessors/settingsaccessors.h" #include "cloud.h" @@ -20,7 +21,7 @@ namespace { using CloudTransmitTimeoutChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, CloudTransmitTimeoutAccessor, espgui::BackActionInterface>, @@ -37,7 +38,7 @@ public: }; using CloudCollectRateChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, CloudCollectRateAccessor, espgui::BackActionInterface>, @@ -45,7 +46,7 @@ using CloudCollectRateChangeDisplay = espgui::makeComponent< >; using CloudSendRateChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, CloudSendRateAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/controllerhardwaresettingsmenu.cpp b/main/displays/menus/controllerhardwaresettingsmenu.cpp index 752f6d9..8d4b4a5 100644 --- a/main/displays/menus/controllerhardwaresettingsmenu.cpp +++ b/main/displays/menus/controllerhardwaresettingsmenu.cpp @@ -11,6 +11,7 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "globals.h" #include "accessors/settingsaccessors.h" @@ -20,14 +21,14 @@ namespace { using WheelDiameterMmChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, WheelDiameterMmAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using WheelDiameterInchChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, WheelDiameterInchAccessor, espgui::RatioNumberStep>, @@ -35,7 +36,7 @@ using WheelDiameterInchChangeScreen = espgui::makeComponent< espgui::SwitchScreenAction >; using NumMagnetPolesChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, NumMagnetPolesAccessor, espgui::BackActionInterface>, @@ -43,14 +44,14 @@ using NumMagnetPolesChangeScreen = espgui::makeComponent< >; #ifdef FEATURE_CAN using CanTransmitTimeoutChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, CanTransmitTimeoutAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using CanReceiveTimeoutChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, CanReceiveTimeoutAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/defaultmodesettingsmenu.cpp b/main/displays/menus/defaultmodesettingsmenu.cpp index b9b7e04..6391b5c 100644 --- a/main/displays/menus/defaultmodesettingsmenu.cpp +++ b/main/displays/menus/defaultmodesettingsmenu.cpp @@ -10,6 +10,7 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "changevaluedisplay_unifiedmodelmode.h" #include "accessors/settingsaccessors.h" @@ -18,91 +19,91 @@ namespace { using DefaultModeModelModeChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeModelModeAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeHybridModelModeChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeHybridModelModeAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeSmoothingChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeSmoothingAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeFwSmoothingLowerLimitChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeEnableFieldWeakSmoothingLowerLimitAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeFrontPercentageChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeFrontPercentageAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeBackPercentageChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeBackPercentageAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeAddSchwelleChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeAddSchwelleAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeGas1WertChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeGas1WertAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeGas2WertChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeGas2WertAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeBrems1WertChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeBrems1WertAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeBrems2WertChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeBrems2WertAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeHybridActivationLimitChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeHybridActivationLimitAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using DefaultModeHybridDeactivationLimitChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DefaultModeHybridDeactivationLimitAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/graphsmenu.cpp b/main/displays/menus/graphsmenu.cpp index 030af91..e20f2fe 100644 --- a/main/displays/menus/graphsmenu.cpp +++ b/main/displays/menus/graphsmenu.cpp @@ -7,34 +7,36 @@ #include "splitgraphdisplay.h" // local includes +#include "displays/bobbygraphdisplay.h" +#include "displays/bobbysplitgraphdisplay.h" #include "utils.h" #include "statistics.h" #include "displays/menus/mainmenu.h" namespace { using GasGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using BremsGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using PotisGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<2>, + BobbyGraphDisplay<2>, espgui::StaticText, espgui::DualGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using PotisSplitGraphDisplay = espgui::makeComponent< - espgui::SplitGraphDisplay<1, 1>, + BobbySplitGraphDisplay<1, 1>, espgui::StaticText, espgui::SingleTopGraphAccessor, espgui::SingleBottomGraphAccessor, @@ -43,14 +45,14 @@ using PotisSplitGraphDisplay = espgui::makeComponent< >; using AvgSpeedGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using AvgSpeedKmhGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, @@ -58,7 +60,7 @@ using AvgSpeedKmhGraphDisplay = espgui::makeComponent< >; using SumCurrentGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, @@ -66,28 +68,28 @@ using SumCurrentGraphDisplay = espgui::makeComponent< >; using FrontVoltageGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using BackVoltageGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using VoltagesGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<2>, + BobbyGraphDisplay<2>, espgui::StaticText, espgui::DualGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using VoltagesSplitGraphDisplay = espgui::makeComponent< - espgui::SplitGraphDisplay<1, 1>, + BobbySplitGraphDisplay<1, 1>, espgui::StaticText, espgui::SingleTopGraphAccessor, espgui::SingleBottomGraphAccessor, @@ -97,28 +99,28 @@ using VoltagesSplitGraphDisplay = espgui::makeComponent< #ifdef FEATURE_BMS using BmsVoltageGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using BmsCurrentGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using BmsPowerGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, espgui::BackActionInterface> >; using SumCurrentsComparisonGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<2>, + BobbyGraphDisplay<2>, espgui::StaticText, DualGraphAccessor, espgui::ConfirmActionInterface>, @@ -134,7 +136,7 @@ class MotorCurrentsStatistics : public virtual espgui::GraphAccessorInterface<4> } }; using MotorCurrentsGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<4>, + BobbyGraphDisplay<4>, espgui::StaticText, MotorCurrentsStatistics, espgui::ConfirmActionInterface>, @@ -142,7 +144,7 @@ using MotorCurrentsGraphDisplay = espgui::makeComponent< >; using RssiGraphDisplay = espgui::makeComponent< - espgui::GraphDisplay<1>, + BobbyGraphDisplay<1>, espgui::StaticText, espgui::SingleGraphAccessor, espgui::ConfirmActionInterface>, diff --git a/main/displays/menus/handbremssettingsmenu.cpp b/main/displays/menus/handbremssettingsmenu.cpp index 227d176..2aee393 100644 --- a/main/displays/menus/handbremssettingsmenu.cpp +++ b/main/displays/menus/handbremssettingsmenu.cpp @@ -2,36 +2,35 @@ // 3rd party libs #include - -// local includes -#include "accessors/settingsaccessors.h" #include "actions/switchscreenaction.h" #include "actions/toggleboolaction.h" #include "changevaluedisplay.h" -#include "changevaluedisplay_handbremsmode.h" #include "checkboxicon.h" -#include "displays/menus/defaultmodesettingsmenu.h" #include "icons/back.h" + +// local includes +#include "displays/bobbychangevaluedisplay.h" +#include "accessors/settingsaccessors.h" +#include "changevaluedisplay_handbremsmode.h" +#include "displays/menus/defaultmodesettingsmenu.h" #include "texts.h" -using namespace espgui; - namespace { -using HandBremsTriggerTimeoutChangeValueDisplay = makeComponent< - ChangeValueDisplay, - StaticText, +using HandBremsTriggerTimeoutChangeValueDisplay = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, HandbremsTimeoutAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using HandBremsModeChangeValueDisplay = makeComponent< - ChangeValueDisplay, - StaticText, +using HandBremsModeChangeValueDisplay = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, HandbremsModeAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -class HandBremsModeText : public virtual TextInterface +class HandBremsModeText : public virtual espgui::TextInterface { public: std::string text() const override @@ -43,6 +42,7 @@ public: HandbremsSettingsMenu::HandbremsSettingsMenu() { + using namespace espgui; constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsEnabledAccessor>>(); constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsAutomaticAccessor>>(); constructMenuItem, ToggleBoolAction, CheckboxIcon, HandbremsVisualizeAccessor>>(); @@ -53,5 +53,5 @@ HandbremsSettingsMenu::HandbremsSettingsMenu() void HandbremsSettingsMenu::back() { - switchScreen(); + espgui::switchScreen(); } diff --git a/main/displays/menus/larsmmodesettingsmenu.cpp b/main/displays/menus/larsmmodesettingsmenu.cpp index 8c09124..23bd2db 100644 --- a/main/displays/menus/larsmmodesettingsmenu.cpp +++ b/main/displays/menus/larsmmodesettingsmenu.cpp @@ -7,6 +7,7 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "changevaluedisplay_larsmmode_mode.h" #include "changevaluedisplay_unifiedmodelmode.h" @@ -15,21 +16,21 @@ namespace { using LarsmModeModelModeChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LarsmModeModelModeAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using LarsmModeModeChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LarsmModeModeAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using LarsmModeIterationsChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LarsmModeIterationsAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/ledstripmenu.cpp b/main/displays/menus/ledstripmenu.cpp index e5d99f1..23ee4ae 100644 --- a/main/displays/menus/ledstripmenu.cpp +++ b/main/displays/menus/ledstripmenu.cpp @@ -12,6 +12,7 @@ #include // local includes +#include "displays/bobbychangevaluedisplay.h" #include "accessors/settingsaccessors.h" #include "displays/ledstripcolorsdisplay.h" #include "displays/menus/ledstripselectotamode.h" @@ -23,82 +24,80 @@ // clang-format off -using namespace espgui; - namespace { -using LedsCountChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using LedsCountChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, LedsCountAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using CenterOffsetChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using CenterOffsetChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, CenterOffsetAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using SmallOffsetChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using SmallOffsetChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, SmallOffsetAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using BigOffsetChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using BigOffsetChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, BigOffsetAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using DeziampereChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using DeziampereChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, DeziampereAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using StVOOffsetChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using StVOOffsetChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, LedsStVOFrontOffsetAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using StVOLengthChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using StVOLengthChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, LedsStVOFrontLengthAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using animationMultiplierChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using animationMultiplierChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, AnimationMultiplierAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -using ledstripBrightnessChangeScreen = makeComponent< - ChangeValueDisplay, - StaticText, +using ledstripBrightnessChangeScreen = espgui::makeComponent< + BobbyChangeValueDisplay, + espgui::StaticText, LedstripBrightnessAccessor, - BackActionInterface>, - SwitchScreenAction + espgui::BackActionInterface>, + espgui::SwitchScreenAction >; -class AllCustomLedsOffAction : public virtual ActionInterface +class AllCustomLedsOffAction : public virtual espgui::ActionInterface { public: void triggered() override @@ -113,35 +112,36 @@ public: LedstripMenu::LedstripMenu() { - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedAnimationAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableBrakeLightsAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableBeepWhenBlinkAccessor>>(); - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableFullBlinkAccessor>>(); + using namespace espgui; + constructMenuItem, espgui::SwitchScreenAction>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedAnimationAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableBrakeLightsAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableBeepWhenBlinkAccessor>>(); + constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableFullBlinkAccessor>>(); - if (!simplified) { constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedstripStVOAccessor>>(); } - constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedstripStVOFrontlight>>(); - constructMenuItem, AllCustomLedsOffAction>>(); - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedstripStVOAccessor>>(); } + constructMenuItem, ToggleBoolAction, CheckboxIcon, EnableLedstripStVOFrontlight>>(); + constructMenuItem, AllCustomLedsOffAction>>(); + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } - constructMenuItem, SwitchScreenAction>>(); - constructMenuItem, SwitchScreenAction>>(); + constructMenuItem, espgui::SwitchScreenAction>>(); + constructMenuItem, espgui::SwitchScreenAction>>(); #ifdef FEATURE_OTA - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } #endif - constructMenuItem, SwitchScreenAction>>(); - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - if (!simplified) { constructMenuItem, SwitchScreenAction>>(); } - constructMenuItem, SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); + constructMenuItem, espgui::SwitchScreenAction>>(); + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + if (!simplified) { constructMenuItem, espgui::SwitchScreenAction>>(); } + constructMenuItem, espgui::SwitchScreenAction, StaticMenuItemIcon<&espgui::icons::back>>>(); } void LedstripMenu::back() { - switchScreen(); + espgui::switchScreen(); } #endif diff --git a/main/displays/menus/limitssettingsmenu.cpp b/main/displays/menus/limitssettingsmenu.cpp index 9f8ad91..aa5d1a6 100644 --- a/main/displays/menus/limitssettingsmenu.cpp +++ b/main/displays/menus/limitssettingsmenu.cpp @@ -7,48 +7,49 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "accessors/settingsaccessors.h" #include "displays/menus/settingsmenu.h" namespace { using IMotMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, IMotMaxAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using IDcMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, IDcMaxAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using NMotMaxKmhChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, NMotMaxKmhAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using NMotMaxRpmChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, NMotMaxRpmAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using FieldWeakMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, FieldWeakMaxAccessor, espgui::BackActionInterface>, espgui::SwitchScreenAction >; using PhaseAdvMaxChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, PhaseAdvMaxAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/lockscreensettingsmenu.cpp b/main/displays/menus/lockscreensettingsmenu.cpp index b3fdffa..2c594dd 100644 --- a/main/displays/menus/lockscreensettingsmenu.cpp +++ b/main/displays/menus/lockscreensettingsmenu.cpp @@ -9,13 +9,14 @@ #include "changevaluedisplay.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "globals.h" #include "accessors/settingsaccessors.h" #include "displays/menus/boardcomputerhardwaresettingsmenu.h" namespace { using LockscreenPinDigit0ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LockscreenPinDigitAccessor<0>, espgui::BackActionInterface>, @@ -23,7 +24,7 @@ using LockscreenPinDigit0ChangeScreen = espgui::makeComponent< >; using LockscreenPinDigit1ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LockscreenPinDigitAccessor<1>, espgui::BackActionInterface>, @@ -31,7 +32,7 @@ using LockscreenPinDigit1ChangeScreen = espgui::makeComponent< >; using LockscreenPinDigit2ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LockscreenPinDigitAccessor<2>, espgui::BackActionInterface>, @@ -39,7 +40,7 @@ using LockscreenPinDigit2ChangeScreen = espgui::makeComponent< >; using LockscreenPinDigit3ChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, LockscreenPinDigitAccessor<3>, espgui::BackActionInterface>, diff --git a/main/displays/menus/motortestmodesettingsmenu.cpp b/main/displays/menus/motortestmodesettingsmenu.cpp index 5eaaa22..6515db9 100644 --- a/main/displays/menus/motortestmodesettingsmenu.cpp +++ b/main/displays/menus/motortestmodesettingsmenu.cpp @@ -7,13 +7,14 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "accessors/settingsaccessors.h" #include "displays/menus/modessettingsmenu.h" namespace { using MotortestMultiplikatorChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, MotortestModeMultiplikatorAccessor, espgui::BackActionInterface>, @@ -21,7 +22,7 @@ using MotortestMultiplikatorChangeDisplay = espgui::makeComponent< >; using MotortestMaxPwmChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, MotortestMaxPwmAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/tempomatmodesettingsmenu.cpp b/main/displays/menus/tempomatmodesettingsmenu.cpp index d94e4a6..0754106 100644 --- a/main/displays/menus/tempomatmodesettingsmenu.cpp +++ b/main/displays/menus/tempomatmodesettingsmenu.cpp @@ -7,6 +7,7 @@ #include "icons/back.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "changevaluedisplay_unifiedmodelmode.h" #include "accessors/settingsaccessors.h" @@ -16,7 +17,7 @@ namespace { using TempomatModeCruiseMotTgtChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, TempomatModeCruiseMotTgtAccessor, espgui::BackActionInterface>, @@ -24,7 +25,7 @@ using TempomatModeCruiseMotTgtChangeDisplay = espgui::makeComponent< >; using TempomatModeModelModeChangeScreen = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, TempomatModeModelModeAccessor, espgui::BackActionInterface>, diff --git a/main/displays/menus/timesettingsmenu.cpp b/main/displays/menus/timesettingsmenu.cpp index ff8ab82..1464893 100644 --- a/main/displays/menus/timesettingsmenu.cpp +++ b/main/displays/menus/timesettingsmenu.cpp @@ -16,10 +16,12 @@ #include "espstrutils.h" // local includes +#include "displays/bobbychangevaluedisplay.h" #include "utils.h" #include "accessors/settingsaccessors.h" #include "displays/menus/settingsmenu.h" +namespace { class CurrentUtcDateTimeText : public virtual espgui::TextInterface { public: @@ -44,7 +46,7 @@ public: }; using TimezoneOffsetChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, TimezoneOffsetAccessor, espgui::BackActionInterface>, @@ -52,7 +54,7 @@ using TimezoneOffsetChangeDisplay = espgui::makeComponent< >; using DaylightSavingModeChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, DaylightSavingModeAccessor, espgui::BackActionInterface>, @@ -61,7 +63,7 @@ using DaylightSavingModeChangeDisplay = espgui::makeComponent< #ifdef FEATURE_NTP using TimeSyncModeChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, TimeSyncModeAccessor, espgui::BackActionInterface>, @@ -69,7 +71,7 @@ using TimeSyncModeChangeDisplay = espgui::makeComponent< >; using TimeSyncIntervalChangeDisplay = espgui::makeComponent< - espgui::ChangeValueDisplay, + BobbyChangeValueDisplay, espgui::StaticText, TimeSyncIntervalAccessor, espgui::BackActionInterface>, @@ -85,6 +87,7 @@ public: } }; #endif +} // namespace using namespace espgui; diff --git a/main/displays/menus/wifiscanmenu.cpp b/main/displays/menus/wifiscanmenu.cpp index b0ff5f5..b78e86a 100644 --- a/main/displays/menus/wifiscanmenu.cpp +++ b/main/displays/menus/wifiscanmenu.cpp @@ -75,12 +75,12 @@ void WifiScanMenu::update() { if (m_reusableItems.empty()) { - auto &item = constructMenuItem>(); + auto &item = constructMenuItem(); item.setTitle(std::move(ssid)); } else { - std::unique_ptr> ptr = std::move(m_reusableItems.back()); + std::unique_ptr ptr = std::move(m_reusableItems.back()); m_reusableItems.pop_back(); ptr->setTitle(std::move(ssid)); emplaceMenuItem(std::move(ptr)); @@ -88,13 +88,13 @@ void WifiScanMenu::update() } else { - auto &item = *(makeComponent*)(&getMenuItem(i)); + auto &item = *(menu_item_t*)(&getMenuItem(i)); item.setTitle(std::move(ssid)); } } while (menuItemCount() > (result ? result->entries.size() : 0)) - m_reusableItems.emplace_back((makeComponent*)takeLastMenuItem().release()); + m_reusableItems.emplace_back((menu_item_t*)takeLastMenuItem().release()); emplaceMenuItem(std::move(backButton)); diff --git a/main/displays/menus/wifiscanmenu.h b/main/displays/menus/wifiscanmenu.h index 33cbcd9..32bfd13 100644 --- a/main/displays/menus/wifiscanmenu.h +++ b/main/displays/menus/wifiscanmenu.h @@ -28,5 +28,7 @@ public: private: std::optional m_lastScanComplete; - std::vector>> m_reusableItems; + + using menu_item_t = espgui::makeComponent; + std::vector> m_reusableItems; }; diff --git a/main/displays/qrimportdisplay.cpp b/main/displays/qrimportdisplay.cpp index e96aa7d..f8c855a 100644 --- a/main/displays/qrimportdisplay.cpp +++ b/main/displays/qrimportdisplay.cpp @@ -96,5 +96,6 @@ void QrImportDisplay::buttonPressed(espgui::Button button) m_confirmLocked = true; } break; + default:; } } diff --git a/main/displays/spirodisplay.h b/main/displays/spirodisplay.h index d386490..4974500 100644 --- a/main/displays/spirodisplay.h +++ b/main/displays/spirodisplay.h @@ -15,6 +15,8 @@ public: void redraw() override; void stop() override; + void buttonPressed(espgui::Button button) override; + private: constexpr static auto DEG2RAD = 0.0174532925; diff --git a/main/displays/updatedisplay.cpp b/main/displays/updatedisplay.cpp index c7968e7..9a33d10 100644 --- a/main/displays/updatedisplay.cpp +++ b/main/displays/updatedisplay.cpp @@ -115,6 +115,7 @@ void UpdateDisplay::buttonPressed(espgui::Button button) if (const auto result = triggerOta(stringSettings.otaUrl); !result) ESP_LOGE("BOBBY", "triggerOta() failed with %.*s", result.error().size(), result.error().data()); break; + default:; } } #endif diff --git a/main/screens.cpp b/main/screens.cpp index 37bb05d..11c4ef3 100644 --- a/main/screens.cpp +++ b/main/screens.cpp @@ -34,7 +34,12 @@ void updateDisplay() rotated = 0; if (currentDisplay) - currentDisplay->rotate(rotatedCopy); + { + if (rotatedCopy < 0) + currentDisplay->buttonPressed(espgui::Button::Up); + else + currentDisplay->buttonPressed(espgui::Button::Down); + } } if (requestFullRedraw) @@ -52,7 +57,7 @@ void updateDisplay() confirmButtonPressed = false; if (currentDisplay) - currentDisplay->confirm(); + currentDisplay->buttonPressed(espgui::Button::Right); } if (confirmButtonLongPressed) @@ -66,7 +71,7 @@ void updateDisplay() backButtonPressed = false; if (currentDisplay) - currentDisplay->back(); + currentDisplay->buttonPressed(espgui::Button::Left); } if (backButtonLongPressed)