summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2019-11-15 14:08:45 +0100
committerGitHub <noreply@github.com>2019-11-15 14:08:45 +0100
commitfe39e1e6d8f63fdd936b17aa822ed7167b7297d2 (patch)
tree4c5102b7f0d8cfa3a87ed5ebd1e1cbcb430e5736 /Source/Core/InputCommon
parent294fd8dd3a3317b73fe9603402c0604b1fdd1121 (diff)
parentf7a50545e3d6878989886203e202fed4af390f0d (diff)
Merge pull request #8440 from rlnilsen/motion-input-tweaks
Motion Input enhancements
Diffstat (limited to 'Source/Core/InputCommon')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp18
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h14
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp3
3 files changed, 28 insertions, 7 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
index 09370a1f0b..40ccae24f7 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
@@ -15,13 +15,16 @@
namespace ControllerEmu
{
-ControlGroup::ControlGroup(std::string name_, const GroupType type_)
- : name(name_), ui_name(std::move(name_)), type(type_)
+ControlGroup::ControlGroup(std::string name_, const GroupType type_, CanBeDisabled can_be_disabled_)
+ : name(name_), ui_name(std::move(name_)), type(type_),
+ can_be_disabled(can_be_disabled_ == CanBeDisabled::Yes)
{
}
-ControlGroup::ControlGroup(std::string name_, std::string ui_name_, const GroupType type_)
- : name(std::move(name_)), ui_name(std::move(ui_name_)), type(type_)
+ControlGroup::ControlGroup(std::string name_, std::string ui_name_, const GroupType type_,
+ CanBeDisabled can_be_disabled_)
+ : name(std::move(name_)), ui_name(std::move(ui_name_)), type(type_),
+ can_be_disabled(can_be_disabled_ == CanBeDisabled::Yes)
{
}
@@ -43,6 +46,10 @@ void ControlGroup::LoadConfig(IniFile::Section* sec, const std::string& defdev,
{
const std::string group(base + name + "/");
+ // enabled
+ if (can_be_disabled)
+ sec->Get(group + "Enabled", &enabled, true);
+
for (auto& setting : numeric_settings)
setting->LoadFromIni(*sec, group);
@@ -88,6 +95,9 @@ void ControlGroup::SaveConfig(IniFile::Section* sec, const std::string& defdev,
{
const std::string group(base + name + "/");
+ // enabled
+ sec->Set(group + "Enabled", enabled, true);
+
for (auto& setting : numeric_settings)
setting->SaveToIni(*sec, group);
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
index 310df90e30..26b3ce5ad6 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
@@ -48,8 +48,16 @@ enum class GroupType
class ControlGroup
{
public:
- explicit ControlGroup(std::string name, GroupType type = GroupType::Other);
- ControlGroup(std::string name, std::string ui_name, GroupType type = GroupType::Other);
+ enum class CanBeDisabled
+ {
+ No,
+ Yes,
+ };
+
+ explicit ControlGroup(std::string name, GroupType type = GroupType::Other,
+ CanBeDisabled can_be_disabled = CanBeDisabled::No);
+ ControlGroup(std::string name, std::string ui_name, GroupType type = GroupType::Other,
+ CanBeDisabled can_be_disabled = CanBeDisabled::No);
virtual ~ControlGroup();
virtual void LoadConfig(IniFile::Section* sec, const std::string& defdev = "",
@@ -79,7 +87,9 @@ public:
const std::string name;
const std::string ui_name;
const GroupType type;
+ const bool can_be_disabled;
+ bool enabled = true;
std::vector<std::unique_ptr<Control>> controls;
std::vector<std::unique_ptr<NumericSettingBase>> numeric_settings;
};
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
index 7133a07e59..9eedbf0747 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
@@ -18,7 +18,8 @@
namespace ControllerEmu
{
IMUCursor::IMUCursor(std::string name, std::string ui_name)
- : ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUCursor)
+ : ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUCursor,
+ ControlGroup::CanBeDisabled::Yes)
{
controls.emplace_back(std::make_unique<Input>(Translate, _trans("Recenter")));