From dec7875a6e23212021e4d9080330a42832dfe02a Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 15 Jun 2021 01:40:19 +0000
Subject: [PATCH] update SDL soruce to 2.0.14
---
source/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/source/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java b/source/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
index 56f677e..5899817 100644
--- a/source/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
+++ b/source/android-project/app/src/main/java/org/libsdl/app/HIDDeviceManager.java
@@ -353,9 +353,18 @@
private void connectHIDDeviceUSB(UsbDevice usbDevice) {
synchronized (this) {
+ int interface_mask = 0;
for (int interface_index = 0; interface_index < usbDevice.getInterfaceCount(); interface_index++) {
UsbInterface usbInterface = usbDevice.getInterface(interface_index);
if (isHIDDeviceInterface(usbDevice, usbInterface)) {
+ // Check to see if we've already added this interface
+ // This happens with the Xbox Series X controller which has a duplicate interface 0, which is inactive
+ int interface_id = usbInterface.getId();
+ if ((interface_mask & (1 << interface_id)) != 0) {
+ continue;
+ }
+ interface_mask |= (1 << interface_id);
+
HIDDeviceUSB device = new HIDDeviceUSB(this, usbDevice, interface_index);
int id = device.getId();
mDevicesById.put(id, device);
--
Gitblit v1.9.3