From e89e803d54430795d3620c1e6048cbd5891632a1 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 8 Nov 2015 19:05:22 -0800 Subject: [PATCH] Zero controller values before removing a controller --- .../com/limelight/binding/input/ControllerHandler.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java index d8ceca0c..695468c8 100644 --- a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java +++ b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java @@ -120,6 +120,15 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD } private void releaseControllerNumber(GenericControllerContext context) { + // If this device sent data as a gamepad, zero the values before removing + if (context.assignedControllerNumber) { + conn.sendControllerInput(context.controllerNumber, (short) 0, + (byte) 0, (byte) 0, + (short) 0, (short) 0, + (short) 0, (short) 0); + } + + // If we reserved a controller number, remove that reservation if (context.reservedControllerNumber) { LimeLog.info("Controller number "+context.controllerNumber+" is now available"); currentControllers &= ~(1 << context.controllerNumber);