diff options
| author | Tilka <tilkax@gmail.com> | 2020-02-09 01:37:30 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-02-09 01:37:30 +0000 |
| commit | 2e2540317e8752b8fe2e4d549a0b5c1ab1911041 (patch) | |
| tree | c5997fb92fc14a5dbbc061a5b572da18d0877e86 /Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp | |
| parent | 7fe11c95782a305e1e03a401e54d819700b39805 (diff) | |
| parent | 0a1634bedf17f7b27a3781d8e5ac6bafb20cd546 (diff) | |
Merge pull request #8417 from jordan-woyak/setting-expressions
InputCommon: Allow controller settings specified with input expresions.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp')
| -rw-r--r-- | Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp index 3459040824..ab45b64595 100644 --- a/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp +++ b/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp @@ -4,6 +4,8 @@ #include "InputCommon/ControllerEmu/Setting/NumericSetting.h" +#include <sstream> + namespace ControllerEmu { NumericSettingBase::NumericSettingBase(const NumericSettingDetails& details) : m_details(details) @@ -26,6 +28,36 @@ const char* NumericSettingBase::GetUIDescription() const } template <> +void NumericSetting<int>::SetExpressionFromValue() +{ + m_value.m_input.SetExpression(ValueToString(GetValue())); +} + +template <> +void NumericSetting<double>::SetExpressionFromValue() +{ + // We must use a dot decimal separator for expression parser. + std::ostringstream ss; + ss.imbue(std::locale::classic()); + ss << GetValue(); + + m_value.m_input.SetExpression(ss.str()); +} + +template <> +void NumericSetting<bool>::SetExpressionFromValue() +{ + // Cast bool to prevent "true"/"false" strings. + m_value.m_input.SetExpression(ValueToString(int(GetValue()))); +} + +template <> +SettingType NumericSetting<int>::GetType() const +{ + return SettingType::Int; +} + +template <> SettingType NumericSetting<double>::GetType() const { return SettingType::Double; |
