From 1efeb4a8c454cf1e8336a900091a3898bfab75e1 Mon Sep 17 00:00:00 2001 From: Iwan Timmer Date: Mon, 22 Sep 2014 12:38:45 +0200 Subject: [PATCH] Don't stop sending gamepad packets after receiving non mapped event --- src/com/limelight/input/EvdevHandler.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/com/limelight/input/EvdevHandler.java b/src/com/limelight/input/EvdevHandler.java index 5e07975..4151b30 100644 --- a/src/com/limelight/input/EvdevHandler.java +++ b/src/com/limelight/input/EvdevHandler.java @@ -23,7 +23,7 @@ public class EvdevHandler extends EvdevReader { private short buttonFlags; private byte leftTrigger, rightTrigger; private short leftStickX, leftStickY, rightStickX, rightStickY; - private boolean gamepadModified; + private boolean gamepadSynced; private short mouseDeltaX, mouseDeltaY; private byte mouseScroll; @@ -48,6 +48,7 @@ public class EvdevHandler extends EvdevReader { absDY = new EvdevAbsolute(device, mapping.abs_dpad_y, mapping.reverse_dpad_y); translator = new KeyboardTranslator(conn); + gamepadSynced = true; } @Override @@ -62,11 +63,12 @@ public class EvdevHandler extends EvdevReader { short type = buffer.getShort(); short code = buffer.getShort(); int value = buffer.getInt(); + boolean gamepadModified = false; if (type==EvdevConstants.EV_SYN) { - if (gamepadModified) { + if (!gamepadSynced) { conn.sendControllerInput(buttonFlags, leftTrigger, rightTrigger, leftStickX, leftStickY, rightStickX, rightStickY); - gamepadModified = false; + gamepadSynced = true; } if (mouseDeltaX != 0 || mouseDeltaY != 0) { conn.sendMouseMove(mouseDeltaX, mouseDeltaY); @@ -195,6 +197,8 @@ public class EvdevHandler extends EvdevReader { } else gamepadModified = false; } + + gamepadSynced &= !gamepadModified; } private short accountForDeadzone(short value) {