Added featureflags menu
This commit is contained in:
@ -97,6 +97,7 @@ set(headers
|
||||
displays/menus/espnowmenu.h
|
||||
displays/menus/espnowsettingsmenu.h
|
||||
displays/menus/extrabuttoncalibratemenu.h
|
||||
displays/menus/featureflagsmenu.h
|
||||
displays/menus/feedbackdebugmenu.h
|
||||
displays/menus/gametrakmodesettingsmenu.h
|
||||
displays/menus/garagenmenu.h
|
||||
@ -326,6 +327,7 @@ set(sources
|
||||
displays/menus/espnowmenu.cpp
|
||||
displays/menus/espnowsettingsmenu.cpp
|
||||
displays/menus/extrabuttoncalibratemenu.cpp
|
||||
displays/menus/featureflagsmenu.cpp
|
||||
displays/menus/feedbackdebugmenu.cpp
|
||||
displays/menus/gametrakmodesettingsmenu.cpp
|
||||
displays/menus/garagenmenu.cpp
|
||||
|
53
main/displays/menus/featureflagsmenu.cpp
Normal file
53
main/displays/menus/featureflagsmenu.cpp
Normal file
@ -0,0 +1,53 @@
|
||||
#include "featureflagsmenu.h"
|
||||
|
||||
constexpr const char * const TAG = "FEATUREFLAGSMENU";
|
||||
|
||||
// 3rdparty lib includes
|
||||
#include <fmt/core.h>
|
||||
#include <actions/switchscreenaction.h>
|
||||
#include <icons/back.h>
|
||||
|
||||
// local includes
|
||||
#include "displays/menus/settingsmenu.h"
|
||||
#include "bobbycheckbox.h"
|
||||
#include "newsettings.h"
|
||||
|
||||
using namespace espgui;
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr char TEXT_FEATUREFLAGS[] = "Feature Flags";
|
||||
constexpr char TEXT_BACK[] = "Back";
|
||||
|
||||
class FeatureFlagMenuItem : public MenuItem {
|
||||
public:
|
||||
FeatureFlagMenuItem(ConfigWrapper<bool> *config) : m_config{*config} {}
|
||||
|
||||
std::string text() const override { return m_config.nvsName(); }
|
||||
|
||||
void triggered() override
|
||||
{
|
||||
ESP_LOGI(TAG, "changed value of %s", m_config.nvsName());
|
||||
}
|
||||
private:
|
||||
ConfigWrapper<bool> &m_config;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
FeatureFlagsMenu::FeatureFlagsMenu()
|
||||
{
|
||||
configs.callForEveryFeature([&](ConfigWrapper<bool> &feature){
|
||||
constructMenuItem<FeatureFlagMenuItem>(&feature);
|
||||
});
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>>>();
|
||||
}
|
||||
|
||||
std::string FeatureFlagsMenu::text() const
|
||||
{
|
||||
return TEXT_FEATUREFLAGS;
|
||||
}
|
||||
|
||||
void FeatureFlagsMenu::back()
|
||||
{
|
||||
switchScreen<SettingsMenu>();
|
||||
}
|
14
main/displays/menus/featureflagsmenu.h
Normal file
14
main/displays/menus/featureflagsmenu.h
Normal file
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
// local includes
|
||||
#include "displays/menudisplaywithtime.h"
|
||||
|
||||
class FeatureFlagsMenu : public bobbygui::MenuDisplayWithTime
|
||||
{
|
||||
public:
|
||||
FeatureFlagsMenu();
|
||||
|
||||
std::string text() const override;
|
||||
|
||||
void back() override;
|
||||
};
|
@ -41,6 +41,7 @@
|
||||
#include "displays/menus/crashmenu.h"
|
||||
#include "displays/menus/aboutmenu.h"
|
||||
#include "displays/menus/mainmenu.h"
|
||||
#include "displays/menus/featureflagsmenu.h"
|
||||
#include "bobbycheckbox.h"
|
||||
|
||||
namespace {
|
||||
@ -58,6 +59,7 @@ constexpr char TEXT_TIME[] = "Time";
|
||||
constexpr char TEXT_MODESSETTINGS[] = "Modes settings";
|
||||
constexpr char TEXT_CONTROLLERHARDWARESETTINGS[] = "Controller H/W settings";
|
||||
constexpr char TEXT_BOARDCOMPUTERHARDWARESETTINGS[] = "Boardcomputer H/W settings";
|
||||
constexpr char TEXT_FEATUREFLAGS[] = "Feature flags";
|
||||
constexpr char TEXT_AUTOCONNECTBMS[] = "Auto connect BMS";
|
||||
constexpr char TEXT_BUZZER[] = "Buzzer";
|
||||
constexpr char TEXT_FRONTLED[] = "Front LED";
|
||||
@ -110,6 +112,7 @@ SettingsMenu::SettingsMenu()
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_MODESSETTINGS>, SwitchScreenAction<ModesSettingsMenu>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_CONTROLLERHARDWARESETTINGS>, SwitchScreenAction<ControllerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BOARDCOMPUTERHARDWARESETTINGS>, SwitchScreenAction<BoardcomputerHardwareSettingsMenu>, StaticMenuItemIcon<&bobbyicons::hardware>>>();
|
||||
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_FEATUREFLAGS>, SwitchScreenAction<FeatureFlagsMenu>, StaticMenuItemIcon<&bobbyicons::demos>>>();
|
||||
//#if defined(FEATURE_BLUETOOTH) && defined(FEATURE_BMS)
|
||||
// constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_AUTOCONNECTBMS>, BobbyCheckbox, AutoConnectBmsAccessor>>();
|
||||
//#endif
|
||||
|
Reference in New Issue
Block a user