Просмотр исходного кода

service: hid: Clear controller status when aruid is no longer used

Narr the Reg 2 лет назад
Родитель
Сommit
9f376cd901
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      src/hid_core/resources/npad/npad.cpp

+ 7 - 0
src/hid_core/resources/npad/npad.cpp

@@ -1232,6 +1232,13 @@ Result NPad::RegisterAppletResourceUserId(u64 aruid) {
 }
 }
 
 
 void NPad::UnregisterAppletResourceUserId(u64 aruid) {
 void NPad::UnregisterAppletResourceUserId(u64 aruid) {
+    // TODO: Remove this once abstract pad is emulated properly
+    const auto aruid_index = npad_resource.GetIndexFromAruid(aruid);
+    for (auto& controller : controller_data[aruid_index]) {
+        controller.is_connected = false;
+        controller.shared_memory = nullptr;
+    }
+
     npad_resource.UnregisterAppletResourceUserId(aruid);
     npad_resource.UnregisterAppletResourceUserId(aruid);
 }
 }