From 0a1634bedf17f7b27a3781d8e5ac6bafb20cd546 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sat, 18 Jan 2020 11:19:32 -0600 Subject: InputCommon: Allow Wii remote extension to be set with an input expression. --- .../ControllerEmu/Setting/NumericSetting.cpp | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp') 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 + namespace ControllerEmu { NumericSettingBase::NumericSettingBase(const NumericSettingDetails& details) : m_details(details) @@ -25,6 +27,36 @@ const char* NumericSettingBase::GetUIDescription() const return m_details.ui_description; } +template <> +void NumericSetting::SetExpressionFromValue() +{ + m_value.m_input.SetExpression(ValueToString(GetValue())); +} + +template <> +void NumericSetting::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::SetExpressionFromValue() +{ + // Cast bool to prevent "true"/"false" strings. + m_value.m_input.SetExpression(ValueToString(int(GetValue()))); +} + +template <> +SettingType NumericSetting::GetType() const +{ + return SettingType::Int; +} + template <> SettingType NumericSetting::GetType() const { -- cgit v1.2.3