From 873d26b335d9b43d51100083a1b53f8733cb93b0 Mon Sep 17 00:00:00 2001 From: german77 Date: Fri, 7 Jan 2022 16:55:55 -0600 Subject: yuzu: Use pad parameter to choose the correct controller --- src/core/hid/emulated_controller.cpp | 8 ++++++-- src/yuzu/configuration/configure_input_player.cpp | 15 ++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp index 71fc05807..52a56ef1a 100644 --- a/src/core/hid/emulated_controller.cpp +++ b/src/core/hid/emulated_controller.cpp @@ -389,7 +389,8 @@ std::vector EmulatedController::GetMappedDevices( devices.begin(), devices.end(), [param](const Common::ParamPackage param_) { return param.Get("engine", "") == param_.Get("engine", "") && param.Get("guid", "") == param_.Get("guid", "") && - param.Get("port", 0) == param_.Get("port", 0); + param.Get("port", 0) == param_.Get("port", 0) && + param.Get("pad", 0) == param_.Get("pad", 0); }); if (devices_it != devices.end()) { continue; @@ -398,6 +399,7 @@ std::vector EmulatedController::GetMappedDevices( device.Set("engine", param.Get("engine", "")); device.Set("guid", param.Get("guid", "")); device.Set("port", param.Get("port", 0)); + device.Set("pad", param.Get("pad", 0)); devices.push_back(device); } @@ -412,7 +414,8 @@ std::vector EmulatedController::GetMappedDevices( devices.begin(), devices.end(), [param](const Common::ParamPackage param_) { return param.Get("engine", "") == param_.Get("engine", "") && param.Get("guid", "") == param_.Get("guid", "") && - param.Get("port", 0) == param_.Get("port", 0); + param.Get("port", 0) == param_.Get("port", 0) && + param.Get("pad", 0) == param_.Get("pad", 0); }); if (devices_it != devices.end()) { continue; @@ -421,6 +424,7 @@ std::vector EmulatedController::GetMappedDevices( device.Set("engine", param.Get("engine", "")); device.Set("guid", param.Get("guid", "")); device.Set("port", param.Get("port", 0)); + device.Set("pad", param.Get("pad", 0)); devices.push_back(device); } return devices; diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp index 8c6249fc2..b9342466e 100644 --- a/src/yuzu/configuration/configure_input_player.cpp +++ b/src/yuzu/configuration/configure_input_player.cpp @@ -747,15 +747,16 @@ void ConfigureInputPlayer::UpdateInputDeviceCombobox() { const auto first_engine = devices[0].Get("engine", ""); const auto first_guid = devices[0].Get("guid", ""); const auto first_port = devices[0].Get("port", 0); + const auto first_pad = devices[0].Get("pad", 0); if (devices.size() == 1) { - const auto devices_it = - std::find_if(input_devices.begin(), input_devices.end(), - [first_engine, first_guid, first_port](const Common::ParamPackage param) { - return param.Get("engine", "") == first_engine && - param.Get("guid", "") == first_guid && - param.Get("port", 0) == first_port; - }); + const auto devices_it = std::find_if( + input_devices.begin(), input_devices.end(), + [first_engine, first_guid, first_port, first_pad](const Common::ParamPackage param) { + return param.Get("engine", "") == first_engine && + param.Get("guid", "") == first_guid && param.Get("port", 0) == first_port && + param.Get("pad", 0) == first_pad; + }); const int device_index = devices_it != input_devices.end() ? static_cast(std::distance(input_devices.begin(), devices_it)) -- cgit v1.2.3