From ee01a8b5a0c9151206b46261c011020a0956a44d Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 27 Jan 2016 14:00:14 -0500 Subject: [PATCH] Turn the XB360 controller LED on at init --- .../input/driver/Xbox360Controller.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/limelight/binding/input/driver/Xbox360Controller.java b/app/src/main/java/com/limelight/binding/input/driver/Xbox360Controller.java index 98dfb8e7..4f2ef610 100644 --- a/app/src/main/java/com/limelight/binding/input/driver/Xbox360Controller.java +++ b/app/src/main/java/com/limelight/binding/input/driver/Xbox360Controller.java @@ -70,7 +70,7 @@ public class Xbox360Controller extends AbstractXboxController { @Override protected boolean handleRead(ByteBuffer buffer) { // Skip first byte - buffer.position(buffer.position()+1); + buffer.position(buffer.position() + 1); // DPAD byte b = buffer.get(); @@ -117,9 +117,24 @@ public class Xbox360Controller extends AbstractXboxController { return true; } + private boolean sendLedCommand(byte command) { + byte[] commandBuffer = {0x01, 0x03, command}; + + int res = connection.bulkTransfer(outEndpt, commandBuffer, commandBuffer.length, 3000); + if (res != commandBuffer.length) { + LimeLog.warning("LED set transfer failed: "+res); + return false; + } + + return true; + } + @Override protected boolean doInit() { - // Xbox 360 wired controller requires no initialization + // Turn the LED on corresponding to our device ID + sendLedCommand((byte)(2 + (getControllerId() % 4))); + + // No need to fail init if the LED command fails return true; }