From 46a7c90a72b5e128e700555957904929f46324ca Mon Sep 17 00:00:00 2001 From: admiralmachado Date: Tue, 11 Mar 2014 21:22:44 +0100 Subject: [PATCH] Added deadzone for left/right sticks --- src/com/limelight/input/EvdevHandler.java | 16 ++++++++++++---- src/com/limelight/input/GamepadMapping.java | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/com/limelight/input/EvdevHandler.java b/src/com/limelight/input/EvdevHandler.java index f8b3d05..67aae6c 100644 --- a/src/com/limelight/input/EvdevHandler.java +++ b/src/com/limelight/input/EvdevHandler.java @@ -157,13 +157,13 @@ public class EvdevHandler implements Runnable { conn.sendMouseMove((short) 0, (short) value); } else if (type==EvdevConstants.EV_ABS) { if (code==mapping.abs_x) - leftStickX = absLX.getShort(value); + leftStickX = accountForDeadzone(absLX.getShort(value)); else if (code==mapping.abs_y) - leftStickY = absLY.getShort(value); + leftStickY = accountForDeadzone(absLY.getShort(value)); else if (code==mapping.abs_rx) - rightStickX = absRX.getShort(value); + rightStickX = accountForDeadzone(absRX.getShort(value)); else if (code==mapping.abs_ry) - rightStickY = absRY.getShort(value); + rightStickY = accountForDeadzone(absRY.getShort(value)); else if (code==mapping.abs_throttle) leftTrigger = absLT.getByte(value); else if (code==mapping.abs_rudder) @@ -198,6 +198,14 @@ public class EvdevHandler implements Runnable { } } + private short accountForDeadzone(short value) { + if (Math.abs(value) > mapping.abs_deadzone) { + return value; + } else { + return 0; + } + } + @Override public void run() { try { diff --git a/src/com/limelight/input/GamepadMapping.java b/src/com/limelight/input/GamepadMapping.java index 9fad6fe..73f210a 100644 --- a/src/com/limelight/input/GamepadMapping.java +++ b/src/com/limelight/input/GamepadMapping.java @@ -18,6 +18,8 @@ public class GamepadMapping { public short abs_rx = EvdevConstants.ABS_RX; public short abs_ry = EvdevConstants.ABS_RY; + public short abs_deadzone = 0; + public short abs_dpad_y = -1; public short abs_dpad_x = -1;