configure_input_player: Avoid unnecessary ParamPackage copies

Avoids churning allocations.
This commit is contained in:
Lioncash 2022-02-01 12:20:01 -05:00
parent f56226e17f
commit 9ba6bab920

View file

@ -326,7 +326,7 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
connect(button, &QPushButton::clicked, [=, this] { connect(button, &QPushButton::clicked, [=, this] {
HandleClick( HandleClick(
button, button_id, button, button_id,
[=, this](Common::ParamPackage params) { [=, this](const Common::ParamPackage& params) {
emulated_controller->SetButtonParam(button_id, params); emulated_controller->SetButtonParam(button_id, params);
}, },
InputCommon::Polling::InputType::Button); InputCommon::Polling::InputType::Button);
@ -392,7 +392,7 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
connect(button, &QPushButton::clicked, [=, this] { connect(button, &QPushButton::clicked, [=, this] {
HandleClick( HandleClick(
button, motion_id, button, motion_id,
[=, this](Common::ParamPackage params) { [=, this](const Common::ParamPackage& params) {
emulated_controller->SetMotionParam(motion_id, params); emulated_controller->SetMotionParam(motion_id, params);
}, },
InputCommon::Polling::InputType::Motion); InputCommon::Polling::InputType::Motion);
@ -783,7 +783,7 @@ void ConfigureInputPlayer::UpdateInputDeviceCombobox() {
if (devices.size() == 1) { if (devices.size() == 1) {
const auto devices_it = std::find_if( const auto devices_it = std::find_if(
input_devices.begin(), input_devices.end(), input_devices.begin(), input_devices.end(),
[first_engine, first_guid, first_port, first_pad](const Common::ParamPackage param) { [first_engine, first_guid, first_port, first_pad](const Common::ParamPackage& param) {
return param.Get("engine", "") == first_engine && return param.Get("engine", "") == first_engine &&
param.Get("guid", "") == first_guid && param.Get("port", 0) == first_port && param.Get("guid", "") == first_guid && param.Get("port", 0) == first_port &&
param.Get("pad", 0) == first_pad; param.Get("pad", 0) == first_pad;
@ -814,7 +814,7 @@ void ConfigureInputPlayer::UpdateInputDeviceCombobox() {
if (is_engine_equal && is_port_equal) { if (is_engine_equal && is_port_equal) {
const auto devices_it = std::find_if( const auto devices_it = std::find_if(
input_devices.begin(), input_devices.end(), input_devices.begin(), input_devices.end(),
[first_engine, first_guid, second_guid, first_port](const Common::ParamPackage param) { [first_engine, first_guid, second_guid, first_port](const Common::ParamPackage& param) {
const bool is_guid_valid = const bool is_guid_valid =
(param.Get("guid", "") == first_guid && (param.Get("guid", "") == first_guid &&
param.Get("guid2", "") == second_guid) || param.Get("guid2", "") == second_guid) ||
@ -1026,7 +1026,7 @@ int ConfigureInputPlayer::GetIndexFromControllerType(Core::HID::NpadStyleIndex t
void ConfigureInputPlayer::UpdateInputDevices() { void ConfigureInputPlayer::UpdateInputDevices() {
input_devices = input_subsystem->GetInputDevices(); input_devices = input_subsystem->GetInputDevices();
ui->comboDevices->clear(); ui->comboDevices->clear();
for (auto device : input_devices) { for (const auto& device : input_devices) {
ui->comboDevices->addItem(QString::fromStdString(device.Get("display", "Unknown")), {}); ui->comboDevices->addItem(QString::fromStdString(device.Get("display", "Unknown")), {});
} }
} }
@ -1358,7 +1358,7 @@ bool ConfigureInputPlayer::IsInputAcceptable(const Common::ParamPackage& params)
return params.Get("engine", "") == "keyboard" || params.Get("engine", "") == "mouse"; return params.Get("engine", "") == "keyboard" || params.Get("engine", "") == "mouse";
} }
const auto current_input_device = input_devices[ui->comboDevices->currentIndex()]; const auto& current_input_device = input_devices[ui->comboDevices->currentIndex()];
return params.Get("engine", "") == current_input_device.Get("engine", "") && return params.Get("engine", "") == current_input_device.Get("engine", "") &&
(params.Get("guid", "") == current_input_device.Get("guid", "") || (params.Get("guid", "") == current_input_device.Get("guid", "") ||
params.Get("guid", "") == current_input_device.Get("guid2", "")) && params.Get("guid", "") == current_input_device.Get("guid2", "")) &&