summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp52
1 files changed, 17 insertions, 35 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
index 6e8e5cfb70..4e4d515077 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
@@ -11,7 +11,6 @@
#include "InputCommon/ControllerEmu/Control/Control.h"
#include "InputCommon/ControllerEmu/ControlGroup/Attachments.h"
#include "InputCommon/ControllerEmu/ControllerEmu.h"
-#include "InputCommon/ControllerEmu/Setting/BooleanSetting.h"
#include "InputCommon/ControllerEmu/Setting/NumericSetting.h"
namespace ControllerEmu
@@ -27,30 +26,26 @@ ControlGroup::ControlGroup(const std::string& name_, const std::string& ui_name_
{
}
+void ControlGroup::AddDeadzoneSetting(SettingValue<double>* value, double maximum_deadzone)
+{
+ AddSetting(value,
+ {_trans("Dead Zone"),
+ // i18n: The percent symbol.
+ _trans("%"),
+ // i18n: Refers to the dead-zone setting of gamepad inputs.
+ _trans("Input strength to ignore.")},
+ 0, 0, maximum_deadzone);
+}
+
ControlGroup::~ControlGroup() = default;
void ControlGroup::LoadConfig(IniFile::Section* sec, const std::string& defdev,
const std::string& base)
{
- std::string group(base + name + "/");
+ const std::string group(base + name + "/");
- // settings
- for (auto& s : numeric_settings)
- {
- if (s->m_type == SettingType::VIRTUAL)
- continue;
-
- sec->Get(group + s->m_name, &s->m_value, s->m_default_value * 100);
- s->m_value /= 100;
- }
-
- for (auto& s : boolean_settings)
- {
- if (s->m_type == SettingType::VIRTUAL)
- continue;
-
- sec->Get(group + s->m_name, &s->m_value, s->m_default_value);
- }
+ for (auto& setting : numeric_settings)
+ setting->LoadFromIni(*sec, group);
for (auto& c : controls)
{
@@ -92,23 +87,10 @@ void ControlGroup::LoadConfig(IniFile::Section* sec, const std::string& defdev,
void ControlGroup::SaveConfig(IniFile::Section* sec, const std::string& defdev,
const std::string& base)
{
- std::string group(base + name + "/");
-
- for (auto& s : numeric_settings)
- {
- if (s->m_type == SettingType::VIRTUAL)
- continue;
-
- sec->Set(group + s->m_name, s->m_value * 100.0, s->m_default_value * 100.0);
- }
-
- for (auto& s : boolean_settings)
- {
- if (s->m_type == SettingType::VIRTUAL)
- continue;
+ const std::string group(base + name + "/");
- sec->Set(group + s->m_name, s->m_value, s->m_default_value);
- }
+ for (auto& setting : numeric_settings)
+ setting->SaveToIni(*sec, group);
for (auto& c : controls)
{