diff options
| author | JMC47 <JMC4789@gmail.com> | 2019-04-09 19:30:26 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-09 19:30:26 -0400 |
| commit | e10a472134fdf557ec35505eb5fb7c74ba9f2af7 (patch) | |
| tree | 9593eb71abc3f724159693d46eb8504ede9529f0 /Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h | |
| parent | 0b8ac0a22f2fcebb7cbd00bbb36fd0c89191d34a (diff) | |
| parent | 5efb717873691fa42447ca0d9d9810b5ad501b42 (diff) | |
Merge pull request #7936 from jordan-woyak/numeric-setting-cleanup
InputCommon: Clean up how numeric settings are handled.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h')
| -rw-r--r-- | Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h index 8e9fa3f24a..30798b9b4d 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h @@ -13,10 +13,17 @@ namespace ControllerEmu { -class BooleanSetting; class Control; + +class NumericSettingBase; +struct NumericSettingDetails; + +template <typename T> class NumericSetting; +template <typename T> +class SettingValue; + enum class GroupType { Other, @@ -46,12 +53,22 @@ public: void SetControlExpression(int index, const std::string& expression); + template <typename T> + void AddSetting(SettingValue<T>* value, const NumericSettingDetails& details, + std::common_type_t<T> default_value, std::common_type_t<T> min_value = {}, + std::common_type_t<T> max_value = T(100)) + { + numeric_settings.emplace_back( + std::make_unique<NumericSetting<T>>(value, details, default_value, min_value, max_value)); + } + + void AddDeadzoneSetting(SettingValue<double>* value, double maximum_deadzone); + const std::string name; const std::string ui_name; const GroupType type; std::vector<std::unique_ptr<Control>> controls; - std::vector<std::unique_ptr<NumericSetting>> numeric_settings; - std::vector<std::unique_ptr<BooleanSetting>> boolean_settings; + std::vector<std::unique_ptr<NumericSettingBase>> numeric_settings; }; } // namespace ControllerEmu |
