From 51dd3da11ce169fec831fef20efc73d2ba495702 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 24 Jan 2022 11:31:40 -0500 Subject: input_common/main: Pass MappingData by const reference in callbacks Avoids creating unnecessary 168 byte copies per callback invocation. --- src/input_common/input_engine.h | 2 +- src/input_common/main.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/input_common/input_engine.h b/src/input_common/input_engine.h index 390581c94..5d4fdb4cc 100644 --- a/src/input_common/input_engine.h +++ b/src/input_common/input_engine.h @@ -89,7 +89,7 @@ struct UpdateCallback { // Triggered if data changed on the controller and the engine is on configuring mode struct MappingCallback { - std::function on_data; + std::function on_data; }; // Input Identifier of data source diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index 940744c5f..e2b415bf6 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp @@ -27,7 +27,7 @@ namespace InputCommon { struct InputSubsystem::Impl { void Initialize() { mapping_factory = std::make_shared(); - MappingCallback mapping_callback{[this](MappingData data) { RegisterInput(data); }}; + MappingCallback mapping_callback{[this](const MappingData& data) { RegisterInput(data); }}; keyboard = std::make_shared("keyboard"); keyboard->SetMappingCallback(mapping_callback); @@ -284,7 +284,7 @@ struct InputSubsystem::Impl { #endif } - void RegisterInput(MappingData data) { + void RegisterInput(const MappingData& data) { mapping_factory->RegisterInput(data); } -- cgit v1.2.3 From 12e7d3b254828fcaf2dda3906ae0e80723eeffa4 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 24 Jan 2022 11:37:48 -0500 Subject: input_common/input_mapping: Default constructor --- src/input_common/input_mapping.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/input_common/input_mapping.cpp b/src/input_common/input_mapping.cpp index 475257f42..38bf47575 100644 --- a/src/input_common/input_mapping.cpp +++ b/src/input_common/input_mapping.cpp @@ -9,7 +9,7 @@ namespace InputCommon { -MappingFactory::MappingFactory() {} +MappingFactory::MappingFactory() = default; void MappingFactory::BeginMapping(Polling::InputType type) { is_enabled = true; -- cgit v1.2.3 From 8bb39750a1f0ebe9b9a30b58188198123e69598a Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 24 Jan 2022 11:39:17 -0500 Subject: input_common/input_mapping: Remove const from return value Top-level const on a return by value can inhibit move semantics, and is unnecessary. --- src/input_common/input_mapping.cpp | 2 +- src/input_common/input_mapping.h | 2 +- src/input_common/main.cpp | 2 +- src/input_common/main.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/input_common/input_mapping.cpp b/src/input_common/input_mapping.cpp index 38bf47575..263c24771 100644 --- a/src/input_common/input_mapping.cpp +++ b/src/input_common/input_mapping.cpp @@ -19,7 +19,7 @@ void MappingFactory::BeginMapping(Polling::InputType type) { second_axis = -1; } -[[nodiscard]] const Common::ParamPackage MappingFactory::GetNextInput() { +Common::ParamPackage MappingFactory::GetNextInput() { Common::ParamPackage input; input_queue.Pop(input); return input; diff --git a/src/input_common/input_mapping.h b/src/input_common/input_mapping.h index 93564b5f8..aac9aee64 100644 --- a/src/input_common/input_mapping.h +++ b/src/input_common/input_mapping.h @@ -20,7 +20,7 @@ public: void BeginMapping(Polling::InputType type); /// Returns an input event with mapping information from the input_queue - [[nodiscard]] const Common::ParamPackage GetNextInput(); + [[nodiscard]] Common::ParamPackage GetNextInput(); /** * Registers mapping input data from the driver diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index e2b415bf6..a4d7ed645 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp @@ -394,7 +394,7 @@ void InputSubsystem::BeginMapping(Polling::InputType type) { impl->mapping_factory->BeginMapping(type); } -const Common::ParamPackage InputSubsystem::GetNextInput() const { +Common::ParamPackage InputSubsystem::GetNextInput() const { return impl->mapping_factory->GetNextInput(); } diff --git a/src/input_common/main.h b/src/input_common/main.h index c6f97f691..baf107e0f 100644 --- a/src/input_common/main.h +++ b/src/input_common/main.h @@ -126,7 +126,7 @@ public: void BeginMapping(Polling::InputType type); /// Returns an input event with mapping information. - [[nodiscard]] const Common::ParamPackage GetNextInput() const; + [[nodiscard]] Common::ParamPackage GetNextInput() const; /// Stop polling from all backends. void StopMapping() const; -- cgit v1.2.3 From 0849be094e8bd55ee9d81bcc545238af134410e7 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 24 Jan 2022 11:42:05 -0500 Subject: input_common/input_mapping: Add missing includes Ensures that the class always sees the types it needs. --- src/input_common/input_mapping.cpp | 1 - src/input_common/input_mapping.h | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/input_common/input_mapping.cpp b/src/input_common/input_mapping.cpp index 263c24771..02c7ccff7 100644 --- a/src/input_common/input_mapping.cpp +++ b/src/input_common/input_mapping.cpp @@ -2,7 +2,6 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included -#include "common/common_types.h" #include "common/settings.h" #include "input_common/input_engine.h" #include "input_common/input_mapping.h" diff --git a/src/input_common/input_mapping.h b/src/input_common/input_mapping.h index aac9aee64..e0dfbc7ad 100644 --- a/src/input_common/input_mapping.h +++ b/src/input_common/input_mapping.h @@ -3,8 +3,14 @@ // Refer to the license.txt file included #pragma once + +#include "common/param_package.h" #include "common/threadsafe_queue.h" +namespace InputCommon::Polling { +enum class InputType; +} + namespace InputCommon { class InputEngine; struct MappingData; -- cgit v1.2.3 From 187c9d7e33220dd100abf5d5b76f9d9cab7f3084 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 24 Jan 2022 11:48:59 -0500 Subject: input_common/input_mapping: Simplify UUID validity checks Makes the checks a little more intuitive to read and doesn't construct an extra UUID instance --- src/input_common/input_mapping.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/input_common/input_mapping.cpp b/src/input_common/input_mapping.cpp index 02c7ccff7..a7a6ad8c2 100644 --- a/src/input_common/input_mapping.cpp +++ b/src/input_common/input_mapping.cpp @@ -56,7 +56,7 @@ void MappingFactory::StopMapping() { void MappingFactory::RegisterButton(const MappingData& data) { Common::ParamPackage new_input; new_input.Set("engine", data.engine); - if (data.pad.guid != Common::UUID{}) { + if (data.pad.guid.IsValid()) { new_input.Set("guid", data.pad.guid.Format()); } new_input.Set("port", static_cast(data.pad.port)); @@ -92,7 +92,7 @@ void MappingFactory::RegisterButton(const MappingData& data) { void MappingFactory::RegisterStick(const MappingData& data) { Common::ParamPackage new_input; new_input.Set("engine", data.engine); - if (data.pad.guid != Common::UUID{}) { + if (data.pad.guid.IsValid()) { new_input.Set("guid", data.pad.guid.Format()); } new_input.Set("port", static_cast(data.pad.port)); @@ -137,7 +137,7 @@ void MappingFactory::RegisterStick(const MappingData& data) { void MappingFactory::RegisterMotion(const MappingData& data) { Common::ParamPackage new_input; new_input.Set("engine", data.engine); - if (data.pad.guid != Common::UUID{}) { + if (data.pad.guid.IsValid()) { new_input.Set("guid", data.pad.guid.Format()); } new_input.Set("port", static_cast(data.pad.port)); -- cgit v1.2.3 From 651358d0b66dc425366059a7c119a2aec3fada1e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Mon, 24 Jan 2022 11:57:45 -0500 Subject: input_common/input_engine: Ensure PadIdentifier UUIDs have a valid initial state The default constructor of a UUID instance doesn't initialize the underlying array. --- src/input_common/input_engine.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/input_common/input_engine.h b/src/input_common/input_engine.h index 5d4fdb4cc..fe2faee5a 100644 --- a/src/input_common/input_engine.h +++ b/src/input_common/input_engine.h @@ -16,7 +16,7 @@ // Pad Identifier of data source struct PadIdentifier { - Common::UUID guid{}; + Common::UUID guid{Common::INVALID_UUID}; std::size_t port{}; std::size_t pad{}; -- cgit v1.2.3