diff --git a/src/displays/menus/boardcomputerhardwaresettingsmenu.h b/src/displays/menus/boardcomputerhardwaresettingsmenu.h index 139b085..56ec50d 100644 --- a/src/displays/menus/boardcomputerhardwaresettingsmenu.h +++ b/src/displays/menus/boardcomputerhardwaresettingsmenu.h @@ -63,22 +63,74 @@ using BremsMaxChangeScreen = makeComponent< BackActionInterface>, SwitchScreenAction >; +#ifdef FEATURE_GAMETRAK +using GametrakXMinChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GametrakXMinAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GametrakXMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GametrakXMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GametrakYMinChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GametrakYMinAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GametrakYMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GametrakYMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GametrakDistMinChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GametrakDistMinAccessor, + BackActionInterface>, + SwitchScreenAction +>; +using GametrakDistMaxChangeScreen = makeComponent< + ChangeValueDisplay, + StaticText, + GametrakDistMaxAccessor, + BackActionInterface>, + SwitchScreenAction +>; +#endif class BoardcomputerHardwareSettingsMenu : public MenuDisplay, public StaticText, public BackActionInterface>, public StaticMenuDefinition< - makeComponent, DummyAction>, - makeComponent, DummyAction>, - makeComponent, SwitchScreenAction>, - makeComponent, SwitchScreenAction>, - makeComponent, SwitchScreenAction>, - makeComponent, SwitchScreenAction>, - makeComponent, SwitchScreenAction>, - makeComponent, SwitchScreenAction>, - makeComponent, ToggleBoolAction, CheckboxIcon, SwapScreenBytesAccessor>, - makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::back>> + makeComponent, DummyAction>, + makeComponent, DummyAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, +#ifdef FEATURE_GAMETRAK + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, + makeComponent, SwitchScreenAction>, +#endif + makeComponent, ToggleBoolAction, CheckboxIcon, SwapScreenBytesAccessor>, + makeComponent, SwitchScreenAction, StaticMenuItemIcon<&icons::back>> > {}; } diff --git a/src/screens.h b/src/screens.h index 515f86e..3dc5dfc 100644 --- a/src/screens.h +++ b/src/screens.h @@ -152,6 +152,14 @@ union X { GasMaxChangeScreen changeGasMax; BremsMinChangeScreen changeBremsMin; BremsMaxChangeScreen changeBremsMax; +#ifdef FEATURE_GAMETRAK + GametrakXMinChangeScreen changeGametrakXMin; + GametrakXMaxChangeScreen changeGametrakXMax; + GametrakYMinChangeScreen changeGametrakYMin; + GametrakYMaxChangeScreen changeGametrakYMax; + GametrakDistMinChangeScreen changeGametrakDistMin; + GametrakDistMaxChangeScreen changeGametrakDistMax; +#endif WifiModeChangeScreen wifiModeChangeScreen; WifiTxPowerChangeScreen wifiTxPowerChangeScreen; @@ -274,6 +282,14 @@ template<> decltype(displays.changeGasMin) & template<> decltype(displays.changeGasMax) &getRefByType() { return displays.changeGasMax; } template<> decltype(displays.changeBremsMin) &getRefByType() { return displays.changeBremsMin; } template<> decltype(displays.changeBremsMax) &getRefByType() { return displays.changeBremsMax; } +#ifdef FEATURE_GAMETRAK +template<> decltype(displays.changeGametrakXMin) &getRefByType() { return displays.changeGametrakXMin; } +template<> decltype(displays.changeGametrakXMax) &getRefByType() { return displays.changeGametrakXMax; } +template<> decltype(displays.changeGametrakYMin) &getRefByType() { return displays.changeGametrakYMin; } +template<> decltype(displays.changeGametrakYMax) &getRefByType() { return displays.changeGametrakYMax; } +template<> decltype(displays.changeGametrakDistMin) &getRefByType() { return displays.changeGametrakDistMin; } +template<> decltype(displays.changeGametrakDistMax) &getRefByType() { return displays.changeGametrakDistMax; } +#endif template<> decltype(displays.wifiModeChangeScreen) &getRefByType() { return displays.wifiModeChangeScreen; } template<> decltype(displays.wifiTxPowerChangeScreen) &getRefByType() { return displays.wifiTxPowerChangeScreen; } diff --git a/src/settingsaccessors.h b/src/settingsaccessors.h index 3335dbf..94cbb03 100644 --- a/src/settingsaccessors.h +++ b/src/settingsaccessors.h @@ -59,6 +59,14 @@ struct GasMinAccessor : public RefAccessorSaveSettings { int16_t &getRe struct GasMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gasMax; } }; struct BremsMinAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMin; } }; struct BremsMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.bremsMax; } }; +#ifdef FEATURE_GAMETRAK +struct GametrakXMinAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakXMin; } }; +struct GametrakXMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakXMax; } }; +struct GametrakYMinAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakYMin; } }; +struct GametrakYMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakYMax; } }; +struct GametrakDistMinAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMin; } }; +struct GametrakDistMaxAccessor : public RefAccessorSaveSettings { int16_t &getRef() const override { return settings.boardcomputerHardware.gametrakDistMax; } }; +#endif struct SwapScreenBytesAccessor : public RefAccessorSaveSettings { bool &getRef() const override { return settings.boardcomputerHardware.swapScreenBytes; } }; struct DefaultModeCtrlTypAccessor : public RefAccessorSaveSettings { ControlType &getRef() const override { return settings.defaultMode.ctrlTyp; } }; diff --git a/src/texts.h b/src/texts.h index 37590e3..6d1cd28 100644 --- a/src/texts.h +++ b/src/texts.h @@ -223,6 +223,12 @@ constexpr char TEXT_SETGASMIN[] = "Set gasMin"; constexpr char TEXT_SETGASMAX[] = "Set gasMax"; constexpr char TEXT_SETBREMSMIN[] = "Set bremsMin"; constexpr char TEXT_SETBREMSMAX[] = "Set bremsMax"; +constexpr char TEXT_SETGAMETRAKXMIN[] = "Set gametrakXMin"; +constexpr char TEXT_SETGAMETRAKXMAX[] = "Set gametrakXMax"; +constexpr char TEXT_SETGAMETRAKYMIN[] = "Set gametrakYMin"; +constexpr char TEXT_SETGAMETRAKYMAX[] = "Set gametrakYMax"; +constexpr char TEXT_SETGAMETRAKDISTMIN[] = "Set gametrakDistMin"; +constexpr char TEXT_SETGAMETRAKDISTMAX[] = "Set gametrakDistMax"; constexpr char TEXT_SWAPSCREENBYTES[] = "Swap screen bytes"; //constexpr char TEXT_BACK[] = "Back";