summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2020-01-18 11:19:32 -0600
committerJordan Woyak <jordan.woyak@gmail.com>2020-02-08 16:03:13 -0600
commit0a1634bedf17f7b27a3781d8e5ac6bafb20cd546 (patch)
tree1422bbcf3adc3b715f0f0f3bf4630da728342899 /Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp
parente8152b700f76da97d346b93662ef8492bc93190c (diff)
InputCommon: Allow Wii remote extension to be set with an input expression.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Setting/NumericSetting.cpp32
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;