diff options
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; |
