Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(982)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java

Issue 2081583002: Migrating majority of gamepad from content/browser/ to device/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Final tweaks Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java b/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java
deleted file mode 100644
index 1ded67f0bddd1465d72c7892f92614398ec34f68..0000000000000000000000000000000000000000
--- a/content/public/android/java/src/org/chromium/content/browser/input/GamepadMappings.java
+++ /dev/null
@@ -1,254 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.content.browser.input;
-
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-
-import org.chromium.base.VisibleForTesting;
-import org.chromium.base.annotations.JNINamespace;
-
-/**
- * Class to manage mapping information related to each supported gamepad controller device.
- */
-@JNINamespace("content")
-class GamepadMappings {
- @VisibleForTesting
- static final String NVIDIA_SHIELD_DEVICE_NAME_PREFIX = "NVIDIA Corporation NVIDIA Controller";
- @VisibleForTesting
- static final String MICROSOFT_XBOX_PAD_DEVICE_NAME = "Microsoft X-Box 360 pad";
- @VisibleForTesting
- static final String PS3_SIXAXIS_DEVICE_NAME = "Sony PLAYSTATION(R)3 Controller";
- @VisibleForTesting
- static final String SAMSUNG_EI_GP20_DEVICE_NAME = "Samsung Game Pad EI-GP20";
- @VisibleForTesting
- static final String AMAZON_FIRE_DEVICE_NAME = "Amazon Fire Game Controller";
-
- public static boolean mapToStandardGamepad(float[] mappedAxes, float[] mappedButtons,
- float[] rawAxes, float[] rawButtons, String deviceName) {
- if (deviceName.startsWith(NVIDIA_SHIELD_DEVICE_NAME_PREFIX)) {
- mapShieldGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- return true;
- } else if (deviceName.equals(MICROSOFT_XBOX_PAD_DEVICE_NAME)) {
- mapXBox360Gamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- return true;
- } else if (deviceName.equals(PS3_SIXAXIS_DEVICE_NAME)) {
- mapPS3SixAxisGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- return true;
- } else if (deviceName.equals(SAMSUNG_EI_GP20_DEVICE_NAME)) {
- mapSamsungEIGP20Gamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- return true;
- } else if (deviceName.equals(AMAZON_FIRE_DEVICE_NAME)) {
- mapAmazonFireGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- return true;
- }
-
- mapUnknownGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- return false;
- }
-
- private static void mapCommonXYABButtons(float[] mappedButtons, float[] rawButtons) {
- float a = rawButtons[KeyEvent.KEYCODE_BUTTON_A];
- float b = rawButtons[KeyEvent.KEYCODE_BUTTON_B];
- float x = rawButtons[KeyEvent.KEYCODE_BUTTON_X];
- float y = rawButtons[KeyEvent.KEYCODE_BUTTON_Y];
- mappedButtons[CanonicalButtonIndex.PRIMARY] = a;
- mappedButtons[CanonicalButtonIndex.SECONDARY] = b;
- mappedButtons[CanonicalButtonIndex.TERTIARY] = x;
- mappedButtons[CanonicalButtonIndex.QUATERNARY] = y;
- }
-
- private static void mapCommonStartSelectMetaButtons(
- float[] mappedButtons, float[] rawButtons) {
- float start = rawButtons[KeyEvent.KEYCODE_BUTTON_START];
- float select = rawButtons[KeyEvent.KEYCODE_BUTTON_SELECT];
- float mode = rawButtons[KeyEvent.KEYCODE_BUTTON_MODE];
- mappedButtons[CanonicalButtonIndex.START] = start;
- mappedButtons[CanonicalButtonIndex.BACK_SELECT] = select;
- mappedButtons[CanonicalButtonIndex.META] = mode;
- }
-
- private static void mapCommonThumbstickButtons(float[] mappedButtons, float[] rawButtons) {
- float thumbL = rawButtons[KeyEvent.KEYCODE_BUTTON_THUMBL];
- float thumbR = rawButtons[KeyEvent.KEYCODE_BUTTON_THUMBR];
- mappedButtons[CanonicalButtonIndex.LEFT_THUMBSTICK] = thumbL;
- mappedButtons[CanonicalButtonIndex.RIGHT_THUMBSTICK] = thumbR;
- }
-
- private static void mapCommonTriggerButtons(float[] mappedButtons, float[] rawButtons) {
- float l1 = rawButtons[KeyEvent.KEYCODE_BUTTON_L1];
- float r1 = rawButtons[KeyEvent.KEYCODE_BUTTON_R1];
- mappedButtons[CanonicalButtonIndex.LEFT_TRIGGER] = l1;
- 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) {
- float dpadDown = rawButtons[KeyEvent.KEYCODE_DPAD_DOWN];
- float dpadUp = rawButtons[KeyEvent.KEYCODE_DPAD_UP];
- float dpadLeft = rawButtons[KeyEvent.KEYCODE_DPAD_LEFT];
- float dpadRight = rawButtons[KeyEvent.KEYCODE_DPAD_RIGHT];
- mappedButtons[CanonicalButtonIndex.DPAD_DOWN] = dpadDown;
- mappedButtons[CanonicalButtonIndex.DPAD_UP] = dpadUp;
- mappedButtons[CanonicalButtonIndex.DPAD_LEFT] = dpadLeft;
- mappedButtons[CanonicalButtonIndex.DPAD_RIGHT] = dpadRight;
- }
-
- private static void mapXYAxes(float[] mappedAxes, float[] rawAxes) {
- mappedAxes[CanonicalAxisIndex.LEFT_STICK_X] = rawAxes[MotionEvent.AXIS_X];
- mappedAxes[CanonicalAxisIndex.LEFT_STICK_Y] = rawAxes[MotionEvent.AXIS_Y];
- }
-
- private static void mapRXAndRYAxesToRightStick(float[] mappedAxes, float[] rawAxes) {
- mappedAxes[CanonicalAxisIndex.RIGHT_STICK_X] = rawAxes[MotionEvent.AXIS_RX];
- mappedAxes[CanonicalAxisIndex.RIGHT_STICK_Y] = rawAxes[MotionEvent.AXIS_RY];
- }
-
- private static void mapZAndRZAxesToRightStick(float[] mappedAxes, float[] rawAxes) {
- mappedAxes[CanonicalAxisIndex.RIGHT_STICK_X] = rawAxes[MotionEvent.AXIS_Z];
- mappedAxes[CanonicalAxisIndex.RIGHT_STICK_Y] = rawAxes[MotionEvent.AXIS_RZ];
- }
-
- private static void mapTriggerAxexToShoulderButtons(float[] mappedButtons, float[] rawAxes) {
- float lTrigger = rawAxes[MotionEvent.AXIS_LTRIGGER];
- float rTrigger = rawAxes[MotionEvent.AXIS_RTRIGGER];
- mappedButtons[CanonicalButtonIndex.LEFT_SHOULDER] = lTrigger;
- mappedButtons[CanonicalButtonIndex.RIGHT_SHOULDER] = rTrigger;
- }
-
- private static void mapPedalAxesToBottomShoulder(float[] mappedButtons, float[] rawAxes) {
- float lTrigger = rawAxes[MotionEvent.AXIS_BRAKE];
- float rTrigger = rawAxes[MotionEvent.AXIS_GAS];
- mappedButtons[CanonicalButtonIndex.LEFT_TRIGGER] = lTrigger;
- mappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER] = 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;
- }
-
- @VisibleForTesting
- static float negativeAxisValueAsButton(float input) {
- return (input < -0.5f) ? 1.f : 0.f;
- }
-
- @VisibleForTesting
- static float positiveAxisValueAsButton(float input) {
- return (input > 0.5f) ? 1.f : 0.f;
- }
-
- private static void mapHatAxisToDpadButtons(float[] mappedButtons, float[] rawAxes) {
- float hatX = rawAxes[MotionEvent.AXIS_HAT_X];
- float hatY = rawAxes[MotionEvent.AXIS_HAT_Y];
- mappedButtons[CanonicalButtonIndex.DPAD_LEFT] = negativeAxisValueAsButton(hatX);
- mappedButtons[CanonicalButtonIndex.DPAD_RIGHT] = positiveAxisValueAsButton(hatX);
- mappedButtons[CanonicalButtonIndex.DPAD_UP] = negativeAxisValueAsButton(hatY);
- mappedButtons[CanonicalButtonIndex.DPAD_DOWN] = positiveAxisValueAsButton(hatY);
- }
-
- /**
- * Method for mapping Amazon Fire gamepad axis and button values
- * to standard gamepad button and axes values.
- */
- private static void mapAmazonFireGamepad(
- float[] mappedButtons, float[] rawButtons, float[] mappedAxes, float[] rawAxes) {
- mapCommonXYABButtons(mappedButtons, rawButtons);
- mapTriggerButtonsToTopShoulder(mappedButtons, rawButtons);
- mapCommonThumbstickButtons(mappedButtons, rawButtons);
- mapCommonStartSelectMetaButtons(mappedButtons, rawButtons);
- mapPedalAxesToBottomShoulder(mappedButtons, rawAxes);
- mapHatAxisToDpadButtons(mappedButtons, rawAxes);
-
- mapXYAxes(mappedAxes, rawAxes);
- mapZAndRZAxesToRightStick(mappedAxes, rawAxes);
- }
-
- /**
- * Method for mapping Nvidia gamepad axis and button values
- * to standard gamepad button and axes values.
- */
- private static void mapShieldGamepad(float[] mappedButtons, float[] rawButtons,
- float[] mappedAxes, float[] rawAxes) {
- mapCommonXYABButtons(mappedButtons, rawButtons);
- mapTriggerButtonsToTopShoulder(mappedButtons, rawButtons);
- mapCommonThumbstickButtons(mappedButtons, rawButtons);
- mapCommonStartSelectMetaButtons(mappedButtons, rawButtons);
- mapTriggerAxesToBottomShoulder(mappedButtons, rawAxes);
- mapHatAxisToDpadButtons(mappedButtons, rawAxes);
-
- mapXYAxes(mappedAxes, rawAxes);
- mapZAndRZAxesToRightStick(mappedAxes, rawAxes);
- }
-
- /**
- * Method for mapping Microsoft XBox 360 gamepad axis and button values
- * to standard gamepad button and axes values.
- */
- private static void mapXBox360Gamepad(float[] mappedButtons, float[] rawButtons,
- float[] mappedAxes, float[] rawAxes) {
- // These are actually mapped the same way in Android.
- mapShieldGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes);
- }
-
- private static void mapPS3SixAxisGamepad(float[] mappedButtons, float[] rawButtons,
- float[] mappedAxes, float[] rawAxes) {
- // On PS3 X/Y has higher priority.
- float a = rawButtons[KeyEvent.KEYCODE_BUTTON_A];
- float b = rawButtons[KeyEvent.KEYCODE_BUTTON_B];
- float x = rawButtons[KeyEvent.KEYCODE_BUTTON_X];
- float y = rawButtons[KeyEvent.KEYCODE_BUTTON_Y];
- mappedButtons[CanonicalButtonIndex.PRIMARY] = x;
- mappedButtons[CanonicalButtonIndex.SECONDARY] = y;
- mappedButtons[CanonicalButtonIndex.TERTIARY] = a;
- mappedButtons[CanonicalButtonIndex.QUATERNARY] = b;
-
- mapCommonTriggerButtons(mappedButtons, rawButtons);
- mapCommonThumbstickButtons(mappedButtons, rawButtons);
- mapCommonDpadButtons(mappedButtons, rawButtons);
- mapCommonStartSelectMetaButtons(mappedButtons, rawButtons);
- mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes);
-
- mapXYAxes(mappedAxes, rawAxes);
- mapZAndRZAxesToRightStick(mappedAxes, rawAxes);
- }
-
- private static void mapSamsungEIGP20Gamepad(float[] mappedButtons, float[] rawButtons,
- float[] mappedAxes, float[] rawAxes) {
- mapCommonXYABButtons(mappedButtons, rawButtons);
- mapCommonTriggerButtons(mappedButtons, rawButtons);
- mapCommonThumbstickButtons(mappedButtons, rawButtons);
- mapCommonStartSelectMetaButtons(mappedButtons, rawButtons);
- mapHatAxisToDpadButtons(mappedButtons, rawAxes);
-
- mapXYAxes(mappedAxes, rawAxes);
- mapRXAndRYAxesToRightStick(mappedAxes, rawAxes);
- }
-
- /**
- * Method for mapping Unkown gamepad axis and button values
- * to standard gamepad button and axes values.
- */
- private static void mapUnknownGamepad(float[] mappedButtons, float[] rawButtons,
- float[] mappedAxes, float[] rawAxes) {
- mapCommonXYABButtons(mappedButtons, rawButtons);
- mapCommonTriggerButtons(mappedButtons, rawButtons);
- mapCommonThumbstickButtons(mappedButtons, rawButtons);
- mapCommonStartSelectMetaButtons(mappedButtons, rawButtons);
- mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes);
- mapCommonDpadButtons(mappedButtons, rawButtons);
-
- mapXYAxes(mappedAxes, rawAxes);
- mapRXAndRYAxesToRightStick(mappedAxes, rawAxes);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698