summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2019-04-13 12:13:13 -0400
committerGitHub <noreply@github.com>2019-04-13 12:13:13 -0400
commita891115ea350528f1735dab54d05edc8b8fe77c6 (patch)
tree08257dd14877d4693d502dcf50e81a734e0cb043 /Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
parent241166a1a5becb0a6a2af209e7f5ea2962d6a2dd (diff)
parentc89ddf8cba9c6b19d59e2db1896292797163c54c (diff)
Merge pull request #7952 from jordan-woyak/emu-shake-params
WiimoteEmu: Allow shake frequency and intensity to be configured.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
index 30798b9b4d..146dc16fcb 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
@@ -4,8 +4,10 @@
#pragma once
+#include <cmath>
#include <memory>
#include <string>
+#include <type_traits>
#include <vector>
#include "Common/CommonTypes.h"
@@ -35,7 +37,8 @@ enum class GroupType
Tilt,
Cursor,
Triggers,
- Slider
+ Slider,
+ Shake,
};
class ControlGroup
@@ -64,6 +67,12 @@ public:
void AddDeadzoneSetting(SettingValue<double>* value, double maximum_deadzone);
+ template <typename T>
+ static T ApplyDeadzone(T input, std::common_type_t<T> deadzone)
+ {
+ return std::copysign(std::max(T{0}, std::abs(input) - deadzone) / (T{1} - deadzone), input);
+ }
+
const std::string name;
const std::string ui_name;
const GroupType type;