diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2019-03-26 19:31:03 -0500 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2019-04-07 09:32:49 -0500 |
| commit | 5efb717873691fa42447ca0d9d9810b5ad501b42 (patch) | |
| tree | 4d3f306850c0a1f876489327d7de98ca1c0cba6a /Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h | |
| parent | 75e74315e69df1dc03bbda4373528e9e26274d7d (diff) | |
InputCommon: Clean up how numeric settings are handled. Add units of measure to UI. Eliminate hidden magic values of the IR cursor.
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 |
