summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2020-02-10 02:05:24 +0000
committerGitHub <noreply@github.com>2020-02-10 02:05:24 +0000
commitce1bc0b3ca5235571434c4b19ec785baab77fe8f (patch)
treeabf5a0198bf40f731a8f11411112548e141ff5b1 /Source/Core/InputCommon
parent01d69ba81a0a6ece04befa6cf5f14f14c65792e7 (diff)
parent47877ecf2c3b173d77bc55242a22ae9adbabf2be (diff)
Merge pull request #8617 from jordan-woyak/control-creation-cleanup
InputCommon: Clean up creation of inputs.
Diffstat (limited to 'Source/Core/InputCommon')
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Control/Control.cpp9
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Control/Control.h7
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Control/Input.cpp8
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Control/Input.h4
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Control/Output.cpp4
-rw-r--r--Source/Core/InputCommon/ControllerEmu/Control/Output.h2
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp4
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp19
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h5
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp8
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp18
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp12
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp2
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp12
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp2
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Slider.cpp4
-rw-r--r--Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp10
17 files changed, 76 insertions, 54 deletions
diff --git a/Source/Core/InputCommon/ControllerEmu/Control/Control.cpp b/Source/Core/InputCommon/ControllerEmu/Control/Control.cpp
index 20ae3a3cda..dbf12b4570 100644
--- a/Source/Core/InputCommon/ControllerEmu/Control/Control.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/Control/Control.cpp
@@ -10,14 +10,15 @@
namespace ControllerEmu
{
Control::Control(std::unique_ptr<ControlReference> ref, Translatability translate_,
- const std::string& name_, const std::string& ui_name_)
- : control_ref(std::move(ref)), translate(translate_), name(name_), ui_name(ui_name_)
+ std::string name_, std::string ui_name_)
+ : control_ref(std::move(ref)), translate(translate_), name(std::move(name_)),
+ ui_name(std::move(ui_name_))
{
}
Control::Control(std::unique_ptr<ControlReference> ref, Translatability translate_,
- const std::string& name_)
- : Control(std::move(ref), translate_, name_, name_)
+ std::string name_)
+ : control_ref(std::move(ref)), translate(translate_), name(name_), ui_name(std::move(name_))
{
}
diff --git a/Source/Core/InputCommon/ControllerEmu/Control/Control.h b/Source/Core/InputCommon/ControllerEmu/Control/Control.h
index 18aa529a6c..bfdd54dd60 100644
--- a/Source/Core/InputCommon/ControllerEmu/Control/Control.h
+++ b/Source/Core/InputCommon/ControllerEmu/Control/Control.h
@@ -34,10 +34,9 @@ public:
const std::string ui_name;
protected:
- Control(std::unique_ptr<ControlReference> ref, Translatability translate, const std::string& name,
- const std::string& ui_name);
- Control(std::unique_ptr<ControlReference> ref, Translatability translate,
- const std::string& name);
+ Control(std::unique_ptr<ControlReference> ref, Translatability translate, std::string name,
+ std::string ui_name);
+ Control(std::unique_ptr<ControlReference> ref, Translatability translate, std::string name);
};
} // namespace ControllerEmu
diff --git a/Source/Core/InputCommon/ControllerEmu/Control/Input.cpp b/Source/Core/InputCommon/ControllerEmu/Control/Input.cpp
index 69f817705e..edda668ea0 100644
--- a/Source/Core/InputCommon/ControllerEmu/Control/Input.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/Control/Input.cpp
@@ -10,13 +10,13 @@
namespace ControllerEmu
{
-Input::Input(Translatability translate_, const std::string& name_, const std::string& ui_name_)
- : Control(std::make_unique<InputReference>(), translate_, name_, ui_name_)
+Input::Input(Translatability translate_, std::string name_, std::string ui_name_)
+ : Control(std::make_unique<InputReference>(), translate_, std::move(name_), std::move(ui_name_))
{
}
-Input::Input(Translatability translate_, const std::string& name_)
- : Control(std::make_unique<InputReference>(), translate_, name_)
+Input::Input(Translatability translate_, std::string name_)
+ : Control(std::make_unique<InputReference>(), translate_, std::move(name_))
{
}
} // namespace ControllerEmu
diff --git a/Source/Core/InputCommon/ControllerEmu/Control/Input.h b/Source/Core/InputCommon/ControllerEmu/Control/Input.h
index 3fd301ae65..57eb26c082 100644
--- a/Source/Core/InputCommon/ControllerEmu/Control/Input.h
+++ b/Source/Core/InputCommon/ControllerEmu/Control/Input.h
@@ -12,7 +12,7 @@ namespace ControllerEmu
class Input : public Control
{
public:
- Input(Translatability translate, const std::string& name, const std::string& ui_name);
- Input(Translatability translate, const std::string& name);
+ Input(Translatability translate, std::string name, std::string ui_name);
+ Input(Translatability translate, std::string name);
};
} // namespace ControllerEmu
diff --git a/Source/Core/InputCommon/ControllerEmu/Control/Output.cpp b/Source/Core/InputCommon/ControllerEmu/Control/Output.cpp
index 568035d106..945b3b6596 100644
--- a/Source/Core/InputCommon/ControllerEmu/Control/Output.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/Control/Output.cpp
@@ -10,8 +10,8 @@
namespace ControllerEmu
{
-Output::Output(Translatability translate_, const std::string& name_)
- : Control(std::make_unique<OutputReference>(), translate_, name_)
+Output::Output(Translatability translate_, std::string name_)
+ : Control(std::make_unique<OutputReference>(), translate_, std::move(name_))
{
}
} // namespace ControllerEmu
diff --git a/Source/Core/InputCommon/ControllerEmu/Control/Output.h b/Source/Core/InputCommon/ControllerEmu/Control/Output.h
index 7970c26ad0..6f616ca279 100644
--- a/Source/Core/InputCommon/ControllerEmu/Control/Output.h
+++ b/Source/Core/InputCommon/ControllerEmu/Control/Output.h
@@ -12,6 +12,6 @@ namespace ControllerEmu
class Output : public Control
{
public:
- Output(Translatability translate, const std::string& name);
+ Output(Translatability translate, std::string name);
};
} // namespace ControllerEmu
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp
index df67930f9d..4a03527ffe 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp
@@ -27,9 +27,9 @@ AnalogStick::AnalogStick(const char* const name_, const char* const ui_name_,
: ReshapableInput(name_, ui_name_, GroupType::Stick), m_stick_gate(std::move(stick_gate))
{
for (auto& named_direction : named_directions)
- controls.emplace_back(std::make_unique<Input>(Translate, named_direction));
+ AddInput(Translate, named_direction);
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Modifier")));
+ AddInput(Translate, _trans("Modifier"));
}
AnalogStick::ReshapeData AnalogStick::GetReshapableState(bool adjusted)
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
index 1a262a8dfd..f6edfa8b44 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.cpp
@@ -8,7 +8,8 @@
#include "Common/IniFile.h"
#include "InputCommon/ControlReference/ControlReference.h"
-#include "InputCommon/ControllerEmu/Control/Control.h"
+#include "InputCommon/ControllerEmu/Control/Input.h"
+#include "InputCommon/ControllerEmu/Control/Output.h"
#include "InputCommon/ControllerEmu/ControlGroup/Attachments.h"
#include "InputCommon/ControllerEmu/ControllerEmu.h"
#include "InputCommon/ControllerEmu/Setting/NumericSetting.h"
@@ -138,4 +139,20 @@ void ControlGroup::SetControlExpression(int index, const std::string& expression
{
controls.at(index)->control_ref->SetExpression(expression);
}
+
+void ControlGroup::AddInput(Translatability translate, std::string name_)
+{
+ controls.emplace_back(std::make_unique<Input>(translate, std::move(name_)));
+}
+
+void ControlGroup::AddInput(Translatability translate, std::string name_, std::string ui_name_)
+{
+ controls.emplace_back(std::make_unique<Input>(translate, std::move(name_), std::move(ui_name_)));
+}
+
+void ControlGroup::AddOutput(Translatability translate, std::string name_)
+{
+ controls.emplace_back(std::make_unique<Output>(translate, std::move(name_)));
+}
+
} // namespace ControllerEmu
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
index 26b3ce5ad6..3099a40a0a 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ControlGroup.h
@@ -13,6 +13,7 @@
#include "Common/CommonTypes.h"
#include "Common/IniFile.h"
+#include "InputCommon/ControllerEmu/Control/Control.h"
namespace ControllerEmu
{
@@ -67,6 +68,10 @@ public:
void SetControlExpression(int index, const std::string& expression);
+ void AddInput(Translatability translate, std::string name);
+ void AddInput(Translatability translate, std::string name, std::string ui_name);
+ void AddOutput(Translatability translate, std::string name);
+
template <typename T>
void AddSetting(SettingValue<T>* value, const NumericSettingDetails& details,
std::common_type_t<T> default_value, std::common_type_t<T> min_value = {},
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp
index bee3be80fe..b5a621e43b 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp
@@ -26,12 +26,12 @@ Cursor::Cursor(std::string name, std::string ui_name)
m_last_update(Clock::now())
{
for (auto& named_direction : named_directions)
- controls.emplace_back(std::make_unique<Input>(Translate, named_direction));
+ AddInput(Translate, named_direction);
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Hide")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Recenter")));
+ AddInput(Translate, _trans("Hide"));
+ AddInput(Translate, _trans("Recenter"));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Relative Input Hold")));
+ AddInput(Translate, _trans("Relative Input Hold"));
// Default values are optimized for "Super Mario Galaxy 2".
// This seems to be acceptable for a good number of games.
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
index f4bc62361a..af9246c54d 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp
@@ -18,12 +18,12 @@ namespace ControllerEmu
{
Force::Force(const std::string& name_) : ReshapableInput(name_, name_, GroupType::Force)
{
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Up")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Down")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Left")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Right")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Forward")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Backward")));
+ AddInput(Translate, _trans("Up"));
+ AddInput(Translate, _trans("Down"));
+ AddInput(Translate, _trans("Left"));
+ AddInput(Translate, _trans("Right"));
+ AddInput(Translate, _trans("Forward"));
+ AddInput(Translate, _trans("Backward"));
AddSetting(&m_distance_setting,
{_trans("Distance"),
@@ -127,11 +127,11 @@ Shake::Shake(const std::string& name_, ControlState default_intensity_scale)
: ControlGroup(name_, name_, GroupType::Shake)
{
// i18n: Refers to a 3D axis (used when mapping motion controls)
- controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("X")));
+ AddInput(ControllerEmu::Translate, _trans("X"));
// i18n: Refers to a 3D axis (used when mapping motion controls)
- controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Y")));
+ AddInput(ControllerEmu::Translate, _trans("Y"));
// i18n: Refers to a 3D axis (used when mapping motion controls)
- controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Z")));
+ AddInput(ControllerEmu::Translate, _trans("Z"));
AddDeadzoneSetting(&m_deadzone_setting, 50);
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp
index 0a866db220..ccb97dd730 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUAccelerometer.cpp
@@ -17,12 +17,12 @@ namespace ControllerEmu
IMUAccelerometer::IMUAccelerometer(std::string name, std::string ui_name)
: ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUAccelerometer)
{
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Up")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Down")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Left")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Right")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Forward")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Backward")));
+ AddInput(Translate, _trans("Up"));
+ AddInput(Translate, _trans("Down"));
+ AddInput(Translate, _trans("Left"));
+ AddInput(Translate, _trans("Right"));
+ AddInput(Translate, _trans("Forward"));
+ AddInput(Translate, _trans("Backward"));
}
std::optional<IMUAccelerometer::StateData> IMUAccelerometer::GetState() const
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
index 3e6aecb348..f617adaf6f 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
@@ -20,7 +20,7 @@ IMUCursor::IMUCursor(std::string name, std::string ui_name)
: ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUCursor,
ControlGroup::CanBeDisabled::Yes)
{
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Recenter")));
+ AddInput(Translate, _trans("Recenter"));
// Default values are optimized for "Super Mario Galaxy 2".
// This seems to be acceptable for a good number of games.
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp
index 049114e1d0..84f9f20821 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp
@@ -17,12 +17,12 @@ namespace ControllerEmu
IMUGyroscope::IMUGyroscope(std::string name, std::string ui_name)
: ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUGyroscope)
{
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Pitch Up")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Pitch Down")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Roll Left")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Roll Right")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Yaw Left")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Yaw Right")));
+ AddInput(Translate, _trans("Pitch Up"));
+ AddInput(Translate, _trans("Pitch Down"));
+ AddInput(Translate, _trans("Roll Left"));
+ AddInput(Translate, _trans("Roll Right"));
+ AddInput(Translate, _trans("Yaw Left"));
+ AddInput(Translate, _trans("Yaw Right"));
}
std::optional<IMUGyroscope::StateData> IMUGyroscope::GetState() const
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp
index b6f9c5c55e..6dc200d1e1 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/ModifySettingsButton.cpp
@@ -25,7 +25,7 @@ ModifySettingsButton::ModifySettingsButton(std::string button_name)
void ModifySettingsButton::AddInput(std::string button_name, bool toggle)
{
- controls.emplace_back(std::make_unique<Input>(Translate, std::move(button_name)));
+ ControlGroup::AddInput(Translate, std::move(button_name));
threshold_exceeded.emplace_back(false);
associated_settings.emplace_back(false);
associated_settings_toggle.emplace_back(toggle);
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Slider.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Slider.cpp
index 912f18b1a6..bd70c64b53 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Slider.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Slider.cpp
@@ -19,8 +19,8 @@ namespace ControllerEmu
Slider::Slider(const std::string& name_, const std::string& ui_name_)
: ControlGroup(name_, ui_name_, GroupType::Slider)
{
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Left")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Right")));
+ AddInput(Translate, _trans("Left"));
+ AddInput(Translate, _trans("Right"));
AddDeadzoneSetting(&m_deadzone_setting, 50);
}
diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp
index 81fa31c1a3..69739bc330 100644
--- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp
+++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp
@@ -18,12 +18,12 @@ namespace ControllerEmu
{
Tilt::Tilt(const std::string& name_) : ReshapableInput(name_, name_, GroupType::Tilt)
{
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Forward")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Backward")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Left")));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Right")));
+ AddInput(Translate, _trans("Forward"));
+ AddInput(Translate, _trans("Backward"));
+ AddInput(Translate, _trans("Left"));
+ AddInput(Translate, _trans("Right"));
- controls.emplace_back(std::make_unique<Input>(Translate, _trans("Modifier")));
+ AddInput(Translate, _trans("Modifier"));
AddSetting(&m_max_angle_setting,
{_trans("Angle"),