summaryrefslogtreecommitdiffstats
path: root/src/yuzu/configuration/configure_input.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu/configuration/configure_input.cpp')
-rw-r--r--src/yuzu/configuration/configure_input.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/yuzu/configuration/configure_input.cpp b/src/yuzu/configuration/configure_input.cpp
index 67faa8be8..dece27fde 100644
--- a/src/yuzu/configuration/configure_input.cpp
+++ b/src/yuzu/configuration/configure_input.cpp
@@ -211,8 +211,10 @@ void ConfigureInput::RetranslateUI() {
}
void ConfigureInput::LoadConfiguration() {
+ const auto* handheld = system.HIDCore().GetEmulatedController(Core::HID::NpadIdType::Handheld);
+
LoadPlayerControllerIndices();
- UpdateDockedState(Settings::values.players.GetValue()[8].connected);
+ UpdateDockedState(handheld->IsConnected());
ui->vibrationGroup->setChecked(Settings::values.vibration_enabled.GetValue());
ui->motionGroup->setChecked(Settings::values.motion_enabled.GetValue());
@@ -220,9 +222,16 @@ void ConfigureInput::LoadConfiguration() {
void ConfigureInput::LoadPlayerControllerIndices() {
for (std::size_t i = 0; i < player_connected.size(); ++i) {
- const auto connected = Settings::values.players.GetValue()[i].connected ||
- (i == 0 && Settings::values.players.GetValue()[8].connected);
- player_connected[i]->setChecked(connected);
+ if (i == 0) {
+ auto* handheld =
+ system.HIDCore().GetEmulatedController(Core::HID::NpadIdType::Handheld);
+ if (handheld->IsConnected()) {
+ player_connected[i]->setChecked(true);
+ continue;
+ }
+ }
+ const auto* controller = system.HIDCore().GetEmulatedControllerByIndex(i);
+ player_connected[i]->setChecked(controller->IsConnected());
}
}