diff --git a/src/displays/menus/boardcomputerhardwaresettingsmenu.h b/src/displays/menus/boardcomputerhardwaresettingsmenu.h index 9d1ce46..139b085 100644 --- a/src/displays/menus/boardcomputerhardwaresettingsmenu.h +++ b/src/displays/menus/boardcomputerhardwaresettingsmenu.h @@ -28,11 +28,41 @@ public: String text() const override { return String{"brems: "} + raw_brems + ": " + brems; } }; -using SampleCountChangeScreen = makeComponent, StaticText, SampleCountAccessor, BackActionInterface>, SwitchScreenAction>; -using GasMinChangeScreen = makeComponent, StaticText, GasMinAccessor, BackActionInterface>, SwitchScreenAction>; -using GasMaxChangeScreen = makeComponent, StaticText, GasMaxAccessor, BackActionInterface>, SwitchScreenAction>; -using BremsMinChangeScreen = makeComponent, StaticText, BremsMinAccessor, BackActionInterface>, SwitchScreenAction>; -using BremsMaxChangeScreen = makeComponent, StaticText, BremsMaxAccessor, BackActionInterface>, SwitchScreenAction>; +using SampleCountChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + SampleCountAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GasMinChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GasMinAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GasMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GasMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using BremsMinChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + BremsMinAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using BremsMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + BremsMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; class BoardcomputerHardwareSettingsMenu : public MenuDisplay, diff --git a/src/displays/menus/buzzermenu.h b/src/displays/menus/buzzermenu.h index 44ec066..dfcab2e 100644 --- a/src/displays/menus/buzzermenu.h +++ b/src/displays/menus/buzzermenu.h @@ -20,21 +20,69 @@ class SettingsMenu; namespace { struct FrontFreqAccessor : public RefAccessor { uint8_t &getRef() const override { return front.command.buzzer.freq; } }; -using FrontFreqChangeScreen = makeComponent, StaticText, FrontFreqAccessor, BackActionInterface>, SwitchScreenAction>; +using FrontFreqChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + FrontFreqAccessor, + BackActionInterface>, + SwitchScreenAction +>; struct FrontPatternAccessor : public RefAccessor { uint8_t &getRef() const override { return front.command.buzzer.pattern; } }; -using FrontPatternChangeScreen = makeComponent, StaticText, FrontPatternAccessor, BackActionInterface>, SwitchScreenAction>; +using FrontPatternChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + FrontPatternAccessor, + BackActionInterface>, + SwitchScreenAction +>; struct BackFreqAccessor : public RefAccessor { uint8_t &getRef() const override { return back.command.buzzer.freq; } }; -using BackFreqChangeScreen = makeComponent, StaticText, BackFreqAccessor, BackActionInterface>, SwitchScreenAction>; +using BackFreqChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + BackFreqAccessor, + BackActionInterface>, + SwitchScreenAction +>; struct BackPatternAccessor : public RefAccessor { uint8_t &getRef() const override { return back.command.buzzer.pattern; } }; -using BackPatternChangeScreen = makeComponent, StaticText, BackPatternAccessor, BackActionInterface>, SwitchScreenAction>; +using BackPatternChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + BackPatternAccessor, + BackActionInterface>, + SwitchScreenAction +>; -using ReverseBeepFreq0ChangeScreen = makeComponent, StaticText, ReverseBeepFreq0Accessor, BackActionInterface>, SwitchScreenAction>; -using ReverseBeepFreq1ChangeScreen = makeComponent, StaticText, ReverseBeepFreq1Accessor, BackActionInterface>, SwitchScreenAction>; -using ReverseBeepDuration0ChangeScreen = makeComponent, StaticText, ReverseBeepDuration0Accessor, BackActionInterface>, SwitchScreenAction>; -using ReverseBeepDuration1ChangeScreen = makeComponent, StaticText, ReverseBeepDuration1Accessor, BackActionInterface>, SwitchScreenAction>; +using ReverseBeepFreq0ChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + ReverseBeepFreq0Accessor, + BackActionInterface>, + SwitchScreenAction +>; +using ReverseBeepFreq1ChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + ReverseBeepFreq1Accessor, + BackActionInterface>, + SwitchScreenAction +>; +using ReverseBeepDuration0ChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + ReverseBeepDuration0Accessor, + BackActionInterface>, + SwitchScreenAction +>; +using ReverseBeepDuration1ChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + ReverseBeepDuration1Accessor, + BackActionInterface>, + SwitchScreenAction +>; class BuzzerMenu : public MenuDisplay, diff --git a/src/displays/menus/controllerhardwaresettingsmenu.h b/src/displays/menus/controllerhardwaresettingsmenu.h index 10ab829..5a09488 100644 --- a/src/displays/menus/controllerhardwaresettingsmenu.h +++ b/src/displays/menus/controllerhardwaresettingsmenu.h @@ -23,9 +23,28 @@ class SettingsMenu; } namespace { -using WheelDiameterMmChangeScreen = makeComponent, StaticText, WheelDiameterMmAccessor, BackActionInterface>, SwitchScreenAction>; -using WheelDiameterInchChangeScreen = makeComponent, StaticText, WheelDiameterInchAccessor, RatioNumberStep>, BackActionInterface>, SwitchScreenAction>; -using NumMagnetPolesChangeScreen = makeComponent, StaticText, NumMagnetPolesAccessor, BackActionInterface>, SwitchScreenAction>; +using WheelDiameterMmChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + WheelDiameterMmAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using WheelDiameterInchChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + WheelDiameterInchAccessor, + RatioNumberStep>, + BackActionInterface>, + SwitchScreenAction +>; +using NumMagnetPolesChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + NumMagnetPolesAccessor, + BackActionInterface>, + SwitchScreenAction +>; class ControllerHardwareSettingsMenu : public MenuDisplay, diff --git a/src/displays/menus/defaultmodesettingsmenu.h b/src/displays/menus/defaultmodesettingsmenu.h index be1f7da..e648e1e 100644 --- a/src/displays/menus/defaultmodesettingsmenu.h +++ b/src/displays/menus/defaultmodesettingsmenu.h @@ -18,16 +18,76 @@ class ModesSettingsMenu; } namespace { -using DefaultModeCtrlTypChangeDisplay = makeComponent, StaticText, DefaultModeCtrlTypAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeCtrlModChangeDisplay = makeComponent, StaticText, DefaultModeCtrlModAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeSmoothingChangeDisplay = makeComponent, StaticText, DefaultModeSmoothingAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeFrontPercentageChangeDisplay = makeComponent, StaticText, DefaultModeFrontPercentageAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeBackPercentageChangeDisplay = makeComponent, StaticText, DefaultModeBackPercentageAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeAddSchwelleChangeDisplay = makeComponent, StaticText, DefaultModeAddSchwelleAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeGas1WertChangeDisplay = makeComponent, StaticText, DefaultModeGas1WertAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeGas2WertChangeDisplay = makeComponent, StaticText, DefaultModeGas2WertAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeBrems1WertChangeDisplay = makeComponent, StaticText, DefaultModeBrems1WertAccessor, BackActionInterface>, SwitchScreenAction>; -using DefaultModeBrems2WertChangeDisplay = makeComponent, StaticText, DefaultModeBrems2WertAccessor, BackActionInterface>, SwitchScreenAction>; +using DefaultModeCtrlTypChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeCtrlTypAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeCtrlModChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeCtrlModAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeSmoothingChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeSmoothingAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeFrontPercentageChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeFrontPercentageAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeBackPercentageChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeBackPercentageAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeAddSchwelleChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeAddSchwelleAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeGas1WertChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeGas1WertAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeGas2WertChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeGas2WertAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeBrems1WertChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeBrems1WertAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using DefaultModeBrems2WertChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + DefaultModeBrems2WertAccessor, + BackActionInterface>, + SwitchScreenAction +>; class DefaultModeSettingsMenu : public MenuDisplay, diff --git a/src/displays/menus/genericwifisettingsmenu.h b/src/displays/menus/genericwifisettingsmenu.h index 43eb858..adc7f1f 100644 --- a/src/displays/menus/genericwifisettingsmenu.h +++ b/src/displays/menus/genericwifisettingsmenu.h @@ -39,7 +39,13 @@ struct WifiModeAccessor : public virtual AccessorInterface // TODO: better error handling } }; -using WifiModeChangeScreen = makeComponent, StaticText, WifiModeAccessor, BackActionInterface>, SwitchScreenAction>; +using WifiModeChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + WifiModeAccessor, + BackActionInterface>, + SwitchScreenAction +>; struct WifiSleepAccessor : public virtual AccessorInterface { @@ -62,7 +68,13 @@ struct WifiTxPowerAccessor : public virtual AccessorInterface // TODO: better error handling } }; -using WifiTxPowerChangeScreen = makeComponent, StaticText, WifiTxPowerAccessor, BackActionInterface>, SwitchScreenAction>; +using WifiTxPowerChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + WifiTxPowerAccessor, + BackActionInterface>, + SwitchScreenAction +>; class GenericWifiSettingsMenu : public MenuDisplay, diff --git a/src/displays/menus/larsmmodesettingsmenu.h b/src/displays/menus/larsmmodesettingsmenu.h index 38965ae..1fd0c97 100644 --- a/src/displays/menus/larsmmodesettingsmenu.h +++ b/src/displays/menus/larsmmodesettingsmenu.h @@ -16,8 +16,20 @@ class ModesSettingsMenu; } namespace { -using LarsmModeModeChangeDisplay = makeComponent, StaticText, LarsmModeModeAccessor, BackActionInterface>, SwitchScreenAction>; -using LarsmModeIterationsChangeDisplay = makeComponent, StaticText, LarsmModeIterationsAccessor, BackActionInterface>, SwitchScreenAction>; +using LarsmModeModeChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + LarsmModeModeAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using LarsmModeIterationsChangeDisplay = makeComponent< + ChangeValueDisplay, + StaticText, + LarsmModeIterationsAccessor, + BackActionInterface>, + SwitchScreenAction +>; class LarsmModeSettingsMenu : public MenuDisplay, diff --git a/src/displays/menus/limitssettingsmenu.h b/src/displays/menus/limitssettingsmenu.h index 1762d9f..695b628 100644 --- a/src/displays/menus/limitssettingsmenu.h +++ b/src/displays/menus/limitssettingsmenu.h @@ -16,12 +16,48 @@ class SettingsMenu; } namespace { -using IMotMaxChangeScreen = makeComponent, StaticText, IMotMaxAccessor, BackActionInterface>, SwitchScreenAction>; -using IDcMaxChangeScreen = makeComponent, StaticText, IDcMaxAccessor, BackActionInterface>, SwitchScreenAction>; -using NMotMaxKmhChangeScreen = makeComponent, StaticText, NMotMaxKmhAccessor, BackActionInterface>, SwitchScreenAction>; -using NMotMaxRpmChangeScreen = makeComponent, StaticText, NMotMaxRpmAccessor, BackActionInterface>, SwitchScreenAction>; -using FieldWeakMaxChangeScreen = makeComponent, StaticText, FieldWeakMaxAccessor, BackActionInterface>, SwitchScreenAction>; -using PhaseAdvMaxChangeScreen = makeComponent, StaticText, PhaseAdvMaxAccessor, BackActionInterface>, SwitchScreenAction>; +using IMotMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + IMotMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using IDcMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + IDcMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using NMotMaxKmhChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + NMotMaxKmhAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using NMotMaxRpmChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + NMotMaxRpmAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using FieldWeakMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + FieldWeakMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using PhaseAdvMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + PhaseAdvMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; class LimitsSettingsMenu : public MenuDisplay, diff --git a/src/displays/menus/presetsmenu.h b/src/displays/menus/presetsmenu.h index 93d4b2c..3047a0d 100644 --- a/src/displays/menus/presetsmenu.h +++ b/src/displays/menus/presetsmenu.h @@ -18,16 +18,32 @@ class MainMenu; namespace { template -class ApplyPresetAction : public virtual ActionInterface {public: void triggered() override { settings = *preset; saveSettings(); } }; +class ApplyPresetAction : public virtual ActionInterface +{ +public: + void triggered() override { settings = *preset; saveSettings(); } +}; template -class ApplyLimitsPresetAction : public virtual ActionInterface {public: void triggered() override { settings.limits = *preset; saveSettings(); } }; +class ApplyLimitsPresetAction : public virtual ActionInterface +{ +public: + void triggered() override { settings.limits = *preset; saveSettings(); } +}; template -class ApplyControllerHardwarePresetAction : public virtual ActionInterface {public: void triggered() override { settings.controllerHardware = *preset; saveSettings(); } }; +class ApplyControllerHardwarePresetAction : public virtual ActionInterface +{ +public: + void triggered() override { settings.controllerHardware = *preset; saveSettings(); } +}; template -class ApplyBoardcomputerHardwarePresetAction : public virtual ActionInterface {public: void triggered() override { settings.boardcomputerHardware = *preset; saveSettings(); } }; +class ApplyBoardcomputerHardwarePresetAction : public virtual ActionInterface +{ +public: + void triggered() override { settings.boardcomputerHardware = *preset; saveSettings(); } +}; class PresetsMenu : public MenuDisplay, diff --git a/src/displays/menus/tempomatmodesettingsmenu.h b/src/displays/menus/tempomatmodesettingsmenu.h index d6d6364..a2a947a 100644 --- a/src/displays/menus/tempomatmodesettingsmenu.h +++ b/src/displays/menus/tempomatmodesettingsmenu.h @@ -16,8 +16,20 @@ class ModesSettingsMenu; } namespace { -using TempomatModeCtrlTypChangeScreen = makeComponent, StaticText, TempomatModeCtrlTypAccessor, BackActionInterface>, SwitchScreenAction>; -using TempomatModeCtrlModChangeScreen = makeComponent, StaticText, TempomatModeCtrlModAccessor, BackActionInterface>, SwitchScreenAction>; +using TempomatModeCtrlTypChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + TempomatModeCtrlTypAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using TempomatModeCtrlModChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + TempomatModeCtrlModAccessor, + BackActionInterface>, + SwitchScreenAction +>; class TempomatModeSettingsMenu : public MenuDisplay,