From d839ea9781c3bd8b003440e1898e8a1d1452bffb Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 25 Nov 2014 14:54:36 -0800 Subject: [PATCH] Increase deadzone on triggers to Xinput defaults and add special handling of the Nexus Player Controller and Nexus Remote --- .../binding/input/ControllerHandler.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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 9eac66ab..e68b475d 100644 --- a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java +++ b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java @@ -203,11 +203,11 @@ public class ControllerHandler { // It's important to have a valid deadzone so controller packet batching works properly mapping.triggerDeadzone = Math.max(Math.abs(ltRange.getFlat()), Math.abs(rtRange.getFlat())); - // For triggers without (valid) deadzones, we'll use 10% - if (mapping.triggerDeadzone <= 0.02 || - mapping.triggerDeadzone > 0.30) + // For triggers without (valid) deadzones, we'll use 13% (around XInput's default) + if (mapping.triggerDeadzone < 0.13f || + mapping.triggerDeadzone > 0.30f) { - mapping.triggerDeadzone = 0.1f; + mapping.triggerDeadzone = 0.13f; } } @@ -224,9 +224,13 @@ public class ControllerHandler { mapping.backIsStart = true; } } + + // The ASUS Gamepad has triggers that sit far forward and are prone to false presses + // so we increase the deadzone on them to minimize this + mapping.triggerDeadzone = 0.30f; } // Classify this device as a remote by name - else if (devName.contains("Fire TV Remote")) { + else if (devName.contains("Fire TV Remote") || devName.contains("Nexus Remote")) { // It's only a remote if it doesn't any sticks if (!mapping.hasJoystickAxes) { mapping.isRemote = true; @@ -234,6 +238,8 @@ public class ControllerHandler { } } + LimeLog.info("Analog stick deadzone: "+mapping.leftStickDeadzoneRadius+" "+mapping.rightStickDeadzoneRadius); + LimeLog.info("Trigger deadzone: "+mapping.triggerDeadzone); return mapping; }