diff options
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup')
3 files changed, 22 insertions, 15 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp index f6edfa8b44..70975937c9 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp @@ -16,16 +16,15 @@ namespace ControllerEmu { -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_, const GroupType type_, DefaultValue default_value_) + : name(name_), ui_name(std::move(name_)), type(type_), default_value(default_value_) { } ControlGroup::ControlGroup(std::string name_, std::string ui_name_, const GroupType type_, - CanBeDisabled can_be_disabled_) + DefaultValue default_value_) : name(std::move(name_)), ui_name(std::move(ui_name_)), type(type_), - can_be_disabled(can_be_disabled_ == CanBeDisabled::Yes) + default_value(default_value_) { } @@ -48,8 +47,8 @@ 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); + if (default_value != DefaultValue::AlwaysEnabled) + sec->Get(group + "Enabled", &enabled, default_value == DefaultValue::Enabled); for (auto& setting : numeric_settings) setting->LoadFromIni(*sec, group); diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h index 3099a40a0a..8f98401dcd 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h @@ -49,16 +49,17 @@ enum class GroupType class ControlGroup { public: - enum class CanBeDisabled + enum class DefaultValue { - No, - Yes, + AlwaysEnabled, + Enabled, + Disabled, }; explicit ControlGroup(std::string name, GroupType type = GroupType::Other, - CanBeDisabled can_be_disabled = CanBeDisabled::No); + DefaultValue default_value = DefaultValue::AlwaysEnabled); ControlGroup(std::string name, std::string ui_name, GroupType type = GroupType::Other, - CanBeDisabled can_be_disabled = CanBeDisabled::No); + DefaultValue default_value = DefaultValue::AlwaysEnabled); virtual ~ControlGroup(); virtual void LoadConfig(IniFile::Section* sec, const std::string& defdev = "", @@ -92,7 +93,7 @@ public: const std::string name; const std::string ui_name; const GroupType type; - const bool can_be_disabled; + const DefaultValue default_value; bool enabled = true; std::vector<std::unique_ptr<Control>> controls; diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp index f617adaf6f..be90bf532c 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp @@ -17,8 +17,15 @@ namespace ControllerEmu { IMUCursor::IMUCursor(std::string name, std::string ui_name) - : ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUCursor, - ControlGroup::CanBeDisabled::Yes) + : ControlGroup( + std::move(name), std::move(ui_name), GroupType::IMUCursor, +#ifdef ANDROID + // Enabling this on Android devices which have an accelerometer and gyroscope prevents + // touch controls from being used for pointing, and touch controls generally work better + ControlGroup::DefaultValue::Disabled) +#else + ControlGroup::DefaultValue::Enabled) +#endif { AddInput(Translate, _trans("Recenter")); |
