summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2019-03-26 19:31:03 -0500
committerJordan Woyak <jordan.woyak@gmail.com>2019-04-07 09:32:49 -0500
commit5efb717873691fa42447ca0d9d9810b5ad501b42 (patch)
tree4d3f306850c0a1f876489327d7de98ca1c0cba6a /Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
parent75e74315e69df1dc03bbda4373528e9e26274d7d (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.h23
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