From b1ea487e2213f3f3a6fdc7b0ed2e9c06d5db722c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 5 Feb 2015 16:06:55 -0500 Subject: [PATCH] Use the mode (power) button on the Asus Nexus Player Gamepad as a select button --- .../com/limelight/binding/input/ControllerHandler.java | 10 ++++++++++ 1 file changed, 10 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 7bbea5b2..aa84d530 100644 --- a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java +++ b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java @@ -262,6 +262,7 @@ public class ControllerHandler implements InputManager.InputDeviceListener { boolean[] hasStartKey = dev.hasKeys(KeyEvent.KEYCODE_BUTTON_START, KeyEvent.KEYCODE_MENU, 0); if (!hasStartKey[0] && !hasStartKey[1]) { context.backIsStart = true; + context.modeIsSelect = true; } } @@ -426,10 +427,18 @@ public class ControllerHandler implements InputManager.InputDeviceListener { // Ensure that we never use back as start if we have a real start context.backIsStart = false; } + else if (keyCode == KeyEvent.KEYCODE_BUTTON_SELECT) { + // Don't use mode as select if we have a select + context.modeIsSelect = false; + } else if (context.backIsStart && keyCode == KeyEvent.KEYCODE_BACK) { // Emulate the start button with back return KeyEvent.KEYCODE_BUTTON_START; } + else if (context.modeIsSelect && keyCode == KeyEvent.KEYCODE_BUTTON_MODE) { + // Emulate the select button with mode + return KeyEvent.KEYCODE_BUTTON_SELECT; + } return keyCode; } @@ -789,6 +798,7 @@ public class ControllerHandler implements InputManager.InputDeviceListener { public boolean isDualShock4; public boolean isXboxController; public boolean backIsStart; + public boolean modeIsSelect; public boolean isRemote; public boolean hasJoystickAxes;