Commit 3cfb7785 authored by sshelke's avatar sshelke Committed by Commit bot

Fix gamepad mapping for Shield and Xbox controllers

This CL maps trigger axes to bottom shoulder buttons and
trigger buttons to top shoulder buttons for Shield and Xbox
controllers.

BUG=421833

Review URL: https://codereview.chromium.org/704523002

Cr-Commit-Position: refs/heads/master@{#306697}
parent 1d0461f9
...@@ -75,6 +75,13 @@ class GamepadMappings { ...@@ -75,6 +75,13 @@ class GamepadMappings {
mappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER] = r1; mappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER] = r1;
} }
private static void mapTriggerButtonsToTopShoulder(float[] mappedButtons, float[] rawButtons) {
float l1 = rawButtons[KeyEvent.KEYCODE_BUTTON_L1];
float r1 = rawButtons[KeyEvent.KEYCODE_BUTTON_R1];
mappedButtons[CanonicalButtonIndex.LEFT_SHOULDER] = l1;
mappedButtons[CanonicalButtonIndex.RIGHT_SHOULDER] = r1;
}
private static void mapCommonDpadButtons(float[] mappedButtons, float[] rawButtons) { private static void mapCommonDpadButtons(float[] mappedButtons, float[] rawButtons) {
float dpadDown = rawButtons[KeyEvent.KEYCODE_DPAD_DOWN]; float dpadDown = rawButtons[KeyEvent.KEYCODE_DPAD_DOWN];
float dpadUp = rawButtons[KeyEvent.KEYCODE_DPAD_UP]; float dpadUp = rawButtons[KeyEvent.KEYCODE_DPAD_UP];
...@@ -108,6 +115,13 @@ class GamepadMappings { ...@@ -108,6 +115,13 @@ class GamepadMappings {
mappedButtons[CanonicalButtonIndex.RIGHT_SHOULDER] = rTrigger; mappedButtons[CanonicalButtonIndex.RIGHT_SHOULDER] = rTrigger;
} }
private static void mapTriggerAxesToBottomShoulder(float[] mappedButtons, float[] rawAxes) {
float lTrigger = rawAxes[MotionEvent.AXIS_LTRIGGER];
float rTrigger = rawAxes[MotionEvent.AXIS_RTRIGGER];
mappedButtons[CanonicalButtonIndex.LEFT_TRIGGER] = lTrigger;
mappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER] = rTrigger;
}
private static float negativeAxisValueAsButton(float input) { private static float negativeAxisValueAsButton(float input) {
return (input < -0.5f) ? 1.f : 0.f; return (input < -0.5f) ? 1.f : 0.f;
} }
...@@ -132,10 +146,10 @@ class GamepadMappings { ...@@ -132,10 +146,10 @@ class GamepadMappings {
private static void mapShieldGamepad(float[] mappedButtons, float[] rawButtons, private static void mapShieldGamepad(float[] mappedButtons, float[] rawButtons,
float[] mappedAxes, float[] rawAxes) { float[] mappedAxes, float[] rawAxes) {
mapCommonXYABButtons(mappedButtons, rawButtons); mapCommonXYABButtons(mappedButtons, rawButtons);
mapCommonTriggerButtons(mappedButtons, rawButtons); mapTriggerButtonsToTopShoulder(mappedButtons, rawButtons);
mapCommonThumbstickButtons(mappedButtons, rawButtons); mapCommonThumbstickButtons(mappedButtons, rawButtons);
mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); mapCommonStartSelectMetaButtons(mappedButtons, rawButtons);
mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes); mapTriggerAxesToBottomShoulder(mappedButtons, rawAxes);
mapHatAxisToDpadButtons(mappedButtons, rawAxes); mapHatAxisToDpadButtons(mappedButtons, rawAxes);
mapXYAxes(mappedAxes, rawAxes); mapXYAxes(mappedAxes, rawAxes);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment