summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2019-10-27 11:04:08 -0500
committerJordan Woyak <jordan.woyak@gmail.com>2020-02-09 19:08:26 -0600
commit47877ecf2c3b173d77bc55242a22ae9adbabf2be (patch)
treeabf5a0198bf40f731a8f11411112548e141ff5b1 /Source/Core/InputCommon/ControllerEmu/ControlGroup
parent01d69ba81a0a6ece04befa6cf5f14f14c65792e7 (diff)
InputCommon: Clean up creation of inputs.
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup')
-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
11 files changed, 59 insertions, 37 deletions
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"),