summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2020-09-27 17:40:15 +0200
committerMorph <39850852+Morph1984@users.noreply.github.com>2020-11-16 05:33:19 +0100
commitc0c4ed0d3bff9670bfaab6a8de304e37ec9e0896 (patch)
tree8de86050d87c1d699379c52357c7433718ffc35b /src
parentapplets/controller: Auto accept a valid single player configuration (diff)
downloadyuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.tar
yuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.tar.gz
yuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.tar.bz2
yuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.tar.lz
yuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.tar.xz
yuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.tar.zst
yuzu-c0c4ed0d3bff9670bfaab6a8de304e37ec9e0896.zip
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp13
-rw-r--r--src/yuzu/configuration/config.cpp3
2 files changed, 15 insertions, 1 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index e311bc18c..c4b26196a 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -224,6 +224,19 @@ void Controller_NPad::OnInit() {
player.connected};
});
+ // Connect the Player 1 or Handheld controller if none are connected.
+ if (std::none_of(connected_controllers.begin(), connected_controllers.end(),
+ [](const ControllerHolder& controller) { return controller.is_connected; })) {
+ const auto controller = MapSettingsTypeToNPad(Settings::values.players[0].controller_type);
+ if (controller == NPadControllerType::Handheld) {
+ Settings::values.players[HANDHELD_INDEX].connected = true;
+ connected_controllers[HANDHELD_INDEX] = {controller, true};
+ } else {
+ Settings::values.players[0].connected = true;
+ connected_controllers[0] = {controller, true};
+ }
+ }
+
// Account for handheld
if (connected_controllers[HANDHELD_INDEX].is_connected) {
connected_controllers[HANDHELD_INDEX].type = NPadControllerType::Handheld;
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 5c8b02fbe..545cafca9 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -280,7 +280,8 @@ void Config::ReadPlayerValue(std::size_t player_index) {
}
} else {
player.connected =
- ReadSetting(QStringLiteral("%1connected").arg(player_prefix), false).toBool();
+ ReadSetting(QStringLiteral("%1connected").arg(player_prefix), player_index == 0)
+ .toBool();
player.controller_type = static_cast<Settings::ControllerType>(
qt_config