summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2021-12-13 16:18:02 +0100
committerLioncash <mathew1800@gmail.com>2021-12-13 16:18:04 +0100
commita9d39b68952bf3ce9607a5947f056eb990e2b430 (patch)
tree03c083b4c17c1d8365177f73065c410207305222
parentinput_engine: Avoid redundant map lookups (diff)
downloadyuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.tar
yuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.tar.gz
yuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.tar.bz2
yuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.tar.lz
yuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.tar.xz
yuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.tar.zst
yuzu-a9d39b68952bf3ce9607a5947f056eb990e2b430.zip
-rw-r--r--src/input_common/input_engine.cpp20
-rw-r--r--src/input_common/input_engine.h18
2 files changed, 14 insertions, 24 deletions
diff --git a/src/input_common/input_engine.cpp b/src/input_common/input_engine.cpp
index a4a07d4ac..9c17ca4f7 100644
--- a/src/input_common/input_engine.cpp
+++ b/src/input_common/input_engine.cpp
@@ -10,41 +10,31 @@ namespace InputCommon {
void InputEngine::PreSetController(const PadIdentifier& identifier) {
std::lock_guard lock{mutex};
- if (!controller_list.contains(identifier)) {
- controller_list.insert_or_assign(identifier, ControllerData{});
- }
+ controller_list.try_emplace(identifier);
}
void InputEngine::PreSetButton(const PadIdentifier& identifier, int button) {
std::lock_guard lock{mutex};
ControllerData& controller = controller_list.at(identifier);
- if (!controller.buttons.contains(button)) {
- controller.buttons.insert_or_assign(button, false);
- }
+ controller.buttons.try_emplace(button, false);
}
void InputEngine::PreSetHatButton(const PadIdentifier& identifier, int button) {
std::lock_guard lock{mutex};
ControllerData& controller = controller_list.at(identifier);
- if (!controller.hat_buttons.contains(button)) {
- controller.hat_buttons.insert_or_assign(button, u8{0});
- }
+ controller.hat_buttons.try_emplace(button, u8{0});
}
void InputEngine::PreSetAxis(const PadIdentifier& identifier, int axis) {
std::lock_guard lock{mutex};
ControllerData& controller = controller_list.at(identifier);
- if (!controller.axes.contains(axis)) {
- controller.axes.insert_or_assign(axis, 0.0f);
- }
+ controller.axes.try_emplace(axis, 0.0f);
}
void InputEngine::PreSetMotion(const PadIdentifier& identifier, int motion) {
std::lock_guard lock{mutex};
ControllerData& controller = controller_list.at(identifier);
- if (!controller.motions.contains(motion)) {
- controller.motions.insert_or_assign(motion, BasicMotion{});
- }
+ controller.motions.try_emplace(motion);
}
void InputEngine::SetButton(const PadIdentifier& identifier, int button, bool value) {
diff --git a/src/input_common/input_engine.h b/src/input_common/input_engine.h
index 59707e173..ec8890484 100644
--- a/src/input_common/input_engine.h
+++ b/src/input_common/input_engine.h
@@ -23,15 +23,15 @@ struct PadIdentifier {
friend constexpr bool operator==(const PadIdentifier&, const PadIdentifier&) = default;
};
-// Basic motion data containing data from the sensors and a timestamp in microsecons
+// Basic motion data containing data from the sensors and a timestamp in microseconds
struct BasicMotion {
- float gyro_x;
- float gyro_y;
- float gyro_z;
- float accel_x;
- float accel_y;
- float accel_z;
- u64 delta_timestamp;
+ float gyro_x{};
+ float gyro_y{};
+ float gyro_z{};
+ float accel_x{};
+ float accel_y{};
+ float accel_z{};
+ u64 delta_timestamp{};
};
// Stages of a battery charge
@@ -202,7 +202,7 @@ private:
std::unordered_map<int, u8> hat_buttons;
std::unordered_map<int, float> axes;
std::unordered_map<int, BasicMotion> motions;
- BatteryLevel battery;
+ BatteryLevel battery{};
};
void TriggerOnButtonChange(const PadIdentifier& identifier, int button, bool value);