diff options
| author | JMC47 <JMC4789@gmail.com> | 2019-04-13 12:13:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-04-13 12:13:13 -0400 |
| commit | a891115ea350528f1735dab54d05edc8b8fe77c6 (patch) | |
| tree | 08257dd14877d4693d502dcf50e81a734e0cb043 /Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h | |
| parent | 241166a1a5becb0a6a2af209e7f5ea2962d6a2dd (diff) | |
| parent | c89ddf8cba9c6b19d59e2db1896292797163c54c (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.h | 11 |
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; |
