Skip to content

Commit 0dda0fa

Browse files
committed
Changing the retrieval mechanism for UI settings
1 parent 27f1744 commit 0dda0fa

File tree

3 files changed

+25
-23
lines changed

3 files changed

+25
-23
lines changed

Src/DasherCore/DasherModule.h

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,16 @@ class CDasherModule {
4242
private:
4343
const char *m_szName;
4444

45-
// "New" UI Settings definitions:
4645
public:
47-
virtual const std::vector<std::unique_ptr<Dasher::Settings::ModuleSetting>>& getUISettings(){return UISettingsList;};
48-
virtual void declareTextboxSetting(Dasher::Parameter Param, std::string Name, std::string Description){UISettingsList.push_back(std::make_unique<Dasher::Settings::TextboxSetting>(Param, Name, Description));}
49-
virtual void declareSliderSetting(Dasher::Parameter Param, std::string Name, std::string Description, int min, int max, int step){UISettingsList.push_back(std::make_unique<Dasher::Settings::SliderSetting>(Param, Name, Description, min, max, step));}
50-
virtual void declareSpinButtonSetting(Dasher::Parameter Param, std::string Name, std::string Description, int min, int max, int step){UISettingsList.push_back(std::make_unique<Dasher::Settings::SpinSetting>(Param, Name, Description, min, max, step));}
51-
virtual void declareDropdownSetting(Dasher::Parameter Param, std::string Name, std::string Description, std::unordered_map<std::string, int> Enums){UISettingsList.push_back(std::make_unique<Dasher::Settings::EnumSetting>(Param, Name, Description, Enums));}
52-
virtual void declareSwitchSetting(Dasher::Parameter Param, std::string Name, std::string Description){UISettingsList.push_back(std::make_unique<Dasher::Settings::SwitchSetting>(Param, Name, Description));}
53-
54-
private:
55-
std::vector<std::unique_ptr<Dasher::Settings::ModuleSetting>> UISettingsList;
46+
// "New" UI Settings definitions:
47+
typedef std::vector<std::unique_ptr<Dasher::Settings::ModuleSetting>> UISettingList;
48+
// Fill this list using the provided methods below to define which UI components could be used by the UI to change your respective setting
49+
virtual void GetUISettings(UISettingList& List){};
50+
static void DeclareTextboxSetting(UISettingList& List, Dasher::Parameter Param, std::string Name, std::string Description){List.push_back(std::make_unique<Dasher::Settings::TextboxSetting>(Param, Name, Description));}
51+
static void DeclareSliderSetting(UISettingList& List, Dasher::Parameter Param, std::string Name, std::string Description, int min, int max, int step){List.push_back(std::make_unique<Dasher::Settings::SliderSetting>(Param, Name, Description, min, max, step));}
52+
static void DeclareSpinButtonSetting(UISettingList& List, Dasher::Parameter Param, std::string Name, std::string Description, int min, int max, int step){List.push_back(std::make_unique<Dasher::Settings::SpinSetting>(Param, Name, Description, min, max, step));}
53+
static void DeclareDropdownSetting(UISettingList& List, Dasher::Parameter Param, std::string Name, std::string Description, std::unordered_map<std::string, int> Enums){List.push_back(std::make_unique<Dasher::Settings::EnumSetting>(Param, Name, Description, Enums));}
54+
static void DeclareSwitchSetting(UISettingList& List, Dasher::Parameter Param, std::string Name, std::string Description){List.push_back(std::make_unique<Dasher::Settings::SwitchSetting>(Param, Name, Description));}
5655
};
5756
/// @}
5857

Src/DasherCore/PressFilter.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,34 @@
33
#include "Parameters.h"
44
#include "SettingsStore.h"
55

6-
Dasher::CPressFilter::CPressFilter(CSettingsStore* pSettingsStore, CDasherInterfaceBase* pInterface, CFrameRate* pFramerate, const char *szName) : CDefaultFilter(pSettingsStore, pInterface, pFramerate, szName)
7-
{
8-
declareSwitchSetting(BP_LM_ADAPTIVE, _("Switch Setting 1"), _("Test Description"));
9-
declareSwitchSetting(BP_LM_ADAPTIVE, _("Switch Setting 2"), _("Test Description"));
6+
Dasher::CPressFilter::CPressFilter(CSettingsStore* pSettingsStore, CDasherInterfaceBase* pInterface, CFrameRate* pFramerate, const char *szName) : CDefaultFilter(pSettingsStore, pInterface, pFramerate, szName){}
7+
8+
void Dasher::CPressFilter::GetUISettings(UISettingList& List){
9+
DeclareSwitchSetting(List, BP_LM_ADAPTIVE, _("Switch Setting 1"), _("Test Description"));
10+
DeclareSwitchSetting(List, BP_LM_ADAPTIVE, _("Switch Setting 2"), _("Test Description"));
1011

11-
declareDropdownSetting(LP_GEOMETRY, "Dropdown Setting 1", "Test Description", {
12+
DeclareDropdownSetting(List, LP_GEOMETRY, "Dropdown Setting 1", "Test Description", {
1213
{"Old Style", Dasher::Options::ScreenGeometry::old_style},
1314
{"Square without Crosshair", Dasher::Options::ScreenGeometry::square_no_xhair},
1415
{"Squish", Dasher::Options::ScreenGeometry::squish},
1516
{"Squaish + Log", Dasher::Options::ScreenGeometry::squish_and_log},
1617
});
17-
declareDropdownSetting(LP_GEOMETRY, "Dropdown Setting 2", "Test Description", {
18+
DeclareDropdownSetting(List, LP_GEOMETRY, "Dropdown Setting 2", "Test Description", {
1819
{"Old Style", Dasher::Options::ScreenGeometry::old_style},
1920
{"Square without Crosshair", Dasher::Options::ScreenGeometry::square_no_xhair},
2021
{"Squish", Dasher::Options::ScreenGeometry::squish},
2122
{"Squaish + Log", Dasher::Options::ScreenGeometry::squish_and_log},
2223
});
2324

24-
declareTextboxSetting(SP_ALPHABET_3, "Textbox Setting 1", "Test Description");
25-
declareTextboxSetting(SP_ALPHABET_3, "Textbox Setting 2", "Test Description");
25+
DeclareTextboxSetting(List, SP_ALPHABET_3, "Textbox Setting 1", "Test Description");
26+
DeclareTextboxSetting(List, SP_ALPHABET_3, "Textbox Setting 2", "Test Description");
2627

27-
declareSliderSetting(LP_MAX_BITRATE, "Slider Setting 1", "Test Description", 1, 1000, 10);
28-
declareSliderSetting(LP_MAX_BITRATE, "Slider Setting 2", "Test Description", 1, 1000, 50);
28+
DeclareSliderSetting(List, LP_MAX_BITRATE, "Slider Setting 1", "Test Description", 1, 1000, 10);
29+
DeclareSliderSetting(List, LP_MAX_BITRATE, "Slider Setting 2", "Test Description", 1, 1000, 50);
2930

30-
declareSpinButtonSetting(LP_X_LIMIT_SPEED, "Spin Setting 1", "Test Description", 1, 1000, 10);
31-
declareSpinButtonSetting(LP_X_LIMIT_SPEED, "Spin Setting 2", "Test Description", 1, 1000, 50);
32-
}
31+
DeclareSpinButtonSetting(List, LP_X_LIMIT_SPEED, "Spin Setting 1", "Test Description", 1, 1000, 10);
32+
DeclareSpinButtonSetting(List, LP_X_LIMIT_SPEED, "Spin Setting 2", "Test Description", 1, 1000, 50);
33+
};
3334

3435
void Dasher::CPressFilter::KeyDown(unsigned long iTime, Keys::VirtualKey Key, CDasherView* pDasherView, CDasherInput* pInput, CDasherModel* pModel)
3536
{

Src/DasherCore/PressFilter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ class CPressFilter : public CDefaultFilter {
1010
CPressFilter(CSettingsStore* pSettingsStore, CDasherInterfaceBase* pInterface, CFrameRate* pFramerate, const char *szName);
1111
void KeyDown(unsigned long iTime, Keys::VirtualKey Key, CDasherView* pDasherView, CDasherInput* pInput, CDasherModel* pModel) override;
1212
void KeyUp(unsigned long iTime, Keys::VirtualKey Key, CDasherView* pView, CDasherInput* pInput, CDasherModel* pModel) override;
13+
14+
virtual void GetUISettings(UISettingList& List) override;
1315
};
1416
/// @}
1517
}

0 commit comments

Comments
 (0)