Added change screens for timers settings

This commit is contained in:
2020-06-11 15:09:33 +02:00
parent ad06ef506f
commit 1fc970d4d5
3 changed files with 68 additions and 2 deletions

View File

@ -11,13 +11,62 @@
namespace {
class BoardcomputerHardwareSettingsMenu;
}
namespace {
class TimersMenu;
using PotiReadRateChangeDisplay = makeComponent<
ChangeValueDisplay<int16_t>,
StaticText<TEXT_POTIREADRATE>,
PotiReadRateAccessor,
BackActionInterface<SwitchScreenAction<TimersMenu>>,
SwitchScreenAction<TimersMenu>
>;
using ModeUpdateRateChangeDisplay = makeComponent<
ChangeValueDisplay<int16_t>,
StaticText<TEXT_MODEUPDATERATE>,
ModeUpdateRateAccessor,
BackActionInterface<SwitchScreenAction<TimersMenu>>,
SwitchScreenAction<TimersMenu>
>;
using StatsUpdateRateChangeDisplay = makeComponent<
ChangeValueDisplay<int16_t>,
StaticText<TEXT_STATSUPDATERATE>,
StatsUpdateRateAccessor,
BackActionInterface<SwitchScreenAction<TimersMenu>>,
SwitchScreenAction<TimersMenu>
>;
using DisplayUpdateRateChangeDisplay = makeComponent<
ChangeValueDisplay<int16_t>,
StaticText<TEXT_DISPLAYUPDATERATE>,
DisplayUpdateRateAccessor,
BackActionInterface<SwitchScreenAction<TimersMenu>>,
SwitchScreenAction<TimersMenu>
>;
using DisplayRedrawRateChangeDisplay = makeComponent<
ChangeValueDisplay<int16_t>,
StaticText<TEXT_DISPLAYREDRAWRATE>,
DisplayRedrawRateAccessor,
BackActionInterface<SwitchScreenAction<TimersMenu>>,
SwitchScreenAction<TimersMenu>
>;
class TimersMenu :
public MenuDisplay,
public StaticText<TEXT_TIMERS>,
public BackActionInterface<SwitchScreenAction<BoardcomputerHardwareSettingsMenu>>,
public StaticMenuDefinition<
// TODO
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
makeComponent<MenuItem, StaticText<TEXT_POTIREADRATE>, SwitchScreenAction<PotiReadRateChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_MODEUPDATERATE>, SwitchScreenAction<ModeUpdateRateChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_STATSUPDATERATE>, SwitchScreenAction<StatsUpdateRateChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_DISPLAYUPDATERATE>, SwitchScreenAction<DisplayUpdateRateChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_DISPLAYREDRAWRATE>, SwitchScreenAction<DisplayRedrawRateChangeDisplay>>,
makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&icons::back>>
>
{};
}

View File

@ -181,6 +181,12 @@ union X {
GametrakDistMaxChangeScreen changeGametrakDistMax;
#endif
PotiReadRateChangeDisplay potiReadRateChangeDisplay;
ModeUpdateRateChangeDisplay modeUpdateRateChangeDisplay;
StatsUpdateRateChangeDisplay statsUpdateRateChangeDisplay;
DisplayUpdateRateChangeDisplay displayUpdateRateChangeDisplay;
DisplayRedrawRateChangeDisplay displayRedrawRateChangeDisplay;
WifiModeChangeScreen wifiModeChangeScreen;
WifiTxPowerChangeScreen wifiTxPowerChangeScreen;
@ -328,6 +334,12 @@ template<> decltype(displays.changeGametrakDistMin) &
template<> decltype(displays.changeGametrakDistMax) &getRefByType<decltype(displays.changeGametrakDistMax)>() { return displays.changeGametrakDistMax; }
#endif
template<> decltype(displays.potiReadRateChangeDisplay) &getRefByType<decltype(displays.potiReadRateChangeDisplay)>() { return displays.potiReadRateChangeDisplay; }
template<> decltype(displays.modeUpdateRateChangeDisplay) &getRefByType<decltype(displays.modeUpdateRateChangeDisplay)>() { return displays.modeUpdateRateChangeDisplay; }
template<> decltype(displays.statsUpdateRateChangeDisplay) &getRefByType<decltype(displays.statsUpdateRateChangeDisplay)>() { return displays.statsUpdateRateChangeDisplay; }
template<> decltype(displays.displayUpdateRateChangeDisplay) &getRefByType<decltype(displays.displayUpdateRateChangeDisplay)>() { return displays.displayUpdateRateChangeDisplay; }
template<> decltype(displays.displayRedrawRateChangeDisplay) &getRefByType<decltype(displays.displayRedrawRateChangeDisplay)>() { return displays.displayRedrawRateChangeDisplay; }
template<> decltype(displays.wifiModeChangeScreen) &getRefByType<decltype(displays.wifiModeChangeScreen)>() { return displays.wifiModeChangeScreen; }
template<> decltype(displays.wifiTxPowerChangeScreen) &getRefByType<decltype(displays.wifiTxPowerChangeScreen)>() { return displays.wifiTxPowerChangeScreen; }

View File

@ -280,6 +280,11 @@ constexpr char TEXT_GAMETRAK[] = "Gametrak";
//TimersMenu
//constexpr char TEXT_TIMERS[] = "Timers";
constexpr char TEXT_POTIREADRATE[] = "Poti read rate";
constexpr char TEXT_MODEUPDATERATE[] = "Mode update rate";
constexpr char TEXT_STATSUPDATERATE[] = "Stats update rate";
constexpr char TEXT_DISPLAYUPDATERATE[] = "Display update rate";
constexpr char TEXT_DISPLAYREDRAWRATE[] = "Display redraw rate";
//constexpr char TEXT_BACK[] = "Back";
//ChangeValueDisplay<BluetoothMode>