| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.content.browser.input; | 5 package org.chromium.device.gamepad; |
| 6 | 6 |
| 7 import android.view.KeyEvent; | 7 import android.view.KeyEvent; |
| 8 import android.view.MotionEvent; | 8 import android.view.MotionEvent; |
| 9 | 9 |
| 10 import org.chromium.base.VisibleForTesting; | 10 import org.chromium.base.VisibleForTesting; |
| 11 import org.chromium.base.annotations.JNINamespace; | 11 import org.chromium.base.annotations.JNINamespace; |
| 12 | 12 |
| 13 /** | 13 /** |
| 14 * Class to manage mapping information related to each supported gamepad control
ler device. | 14 * Class to manage mapping information related to each supported gamepad control
ler device. |
| 15 */ | 15 */ |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 float a = rawButtons[KeyEvent.KEYCODE_BUTTON_A]; | 53 float a = rawButtons[KeyEvent.KEYCODE_BUTTON_A]; |
| 54 float b = rawButtons[KeyEvent.KEYCODE_BUTTON_B]; | 54 float b = rawButtons[KeyEvent.KEYCODE_BUTTON_B]; |
| 55 float x = rawButtons[KeyEvent.KEYCODE_BUTTON_X]; | 55 float x = rawButtons[KeyEvent.KEYCODE_BUTTON_X]; |
| 56 float y = rawButtons[KeyEvent.KEYCODE_BUTTON_Y]; | 56 float y = rawButtons[KeyEvent.KEYCODE_BUTTON_Y]; |
| 57 mappedButtons[CanonicalButtonIndex.PRIMARY] = a; | 57 mappedButtons[CanonicalButtonIndex.PRIMARY] = a; |
| 58 mappedButtons[CanonicalButtonIndex.SECONDARY] = b; | 58 mappedButtons[CanonicalButtonIndex.SECONDARY] = b; |
| 59 mappedButtons[CanonicalButtonIndex.TERTIARY] = x; | 59 mappedButtons[CanonicalButtonIndex.TERTIARY] = x; |
| 60 mappedButtons[CanonicalButtonIndex.QUATERNARY] = y; | 60 mappedButtons[CanonicalButtonIndex.QUATERNARY] = y; |
| 61 } | 61 } |
| 62 | 62 |
| 63 private static void mapCommonStartSelectMetaButtons( | 63 private static void mapCommonStartSelectMetaButtons(float[] mappedButtons, f
loat[] rawButtons) { |
| 64 float[] mappedButtons, float[] rawButtons) { | |
| 65 float start = rawButtons[KeyEvent.KEYCODE_BUTTON_START]; | 64 float start = rawButtons[KeyEvent.KEYCODE_BUTTON_START]; |
| 66 float select = rawButtons[KeyEvent.KEYCODE_BUTTON_SELECT]; | 65 float select = rawButtons[KeyEvent.KEYCODE_BUTTON_SELECT]; |
| 67 float mode = rawButtons[KeyEvent.KEYCODE_BUTTON_MODE]; | 66 float mode = rawButtons[KeyEvent.KEYCODE_BUTTON_MODE]; |
| 68 mappedButtons[CanonicalButtonIndex.START] = start; | 67 mappedButtons[CanonicalButtonIndex.START] = start; |
| 69 mappedButtons[CanonicalButtonIndex.BACK_SELECT] = select; | 68 mappedButtons[CanonicalButtonIndex.BACK_SELECT] = select; |
| 70 mappedButtons[CanonicalButtonIndex.META] = mode; | 69 mappedButtons[CanonicalButtonIndex.META] = mode; |
| 71 } | 70 } |
| 72 | 71 |
| 73 private static void mapCommonThumbstickButtons(float[] mappedButtons, float[
] rawButtons) { | 72 private static void mapCommonThumbstickButtons(float[] mappedButtons, float[
] rawButtons) { |
| 74 float thumbL = rawButtons[KeyEvent.KEYCODE_BUTTON_THUMBL]; | 73 float thumbL = rawButtons[KeyEvent.KEYCODE_BUTTON_THUMBL]; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 mapHatAxisToDpadButtons(mappedButtons, rawAxes); | 170 mapHatAxisToDpadButtons(mappedButtons, rawAxes); |
| 172 | 171 |
| 173 mapXYAxes(mappedAxes, rawAxes); | 172 mapXYAxes(mappedAxes, rawAxes); |
| 174 mapZAndRZAxesToRightStick(mappedAxes, rawAxes); | 173 mapZAndRZAxesToRightStick(mappedAxes, rawAxes); |
| 175 } | 174 } |
| 176 | 175 |
| 177 /** | 176 /** |
| 178 * Method for mapping Nvidia gamepad axis and button values | 177 * Method for mapping Nvidia gamepad axis and button values |
| 179 * to standard gamepad button and axes values. | 178 * to standard gamepad button and axes values. |
| 180 */ | 179 */ |
| 181 private static void mapShieldGamepad(float[] mappedButtons, float[] rawButto
ns, | 180 private static void mapShieldGamepad( |
| 182 float[] mappedAxes, float[] rawAxes) { | 181 float[] mappedButtons, float[] rawButtons, float[] mappedAxes, float
[] rawAxes) { |
| 183 mapCommonXYABButtons(mappedButtons, rawButtons); | 182 mapCommonXYABButtons(mappedButtons, rawButtons); |
| 184 mapTriggerButtonsToTopShoulder(mappedButtons, rawButtons); | 183 mapTriggerButtonsToTopShoulder(mappedButtons, rawButtons); |
| 185 mapCommonThumbstickButtons(mappedButtons, rawButtons); | 184 mapCommonThumbstickButtons(mappedButtons, rawButtons); |
| 186 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); | 185 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); |
| 187 mapTriggerAxesToBottomShoulder(mappedButtons, rawAxes); | 186 mapTriggerAxesToBottomShoulder(mappedButtons, rawAxes); |
| 188 mapHatAxisToDpadButtons(mappedButtons, rawAxes); | 187 mapHatAxisToDpadButtons(mappedButtons, rawAxes); |
| 189 | 188 |
| 190 mapXYAxes(mappedAxes, rawAxes); | 189 mapXYAxes(mappedAxes, rawAxes); |
| 191 mapZAndRZAxesToRightStick(mappedAxes, rawAxes); | 190 mapZAndRZAxesToRightStick(mappedAxes, rawAxes); |
| 192 } | 191 } |
| 193 | 192 |
| 194 /** | 193 /** |
| 195 * Method for mapping Microsoft XBox 360 gamepad axis and button values | 194 * Method for mapping Microsoft XBox 360 gamepad axis and button values |
| 196 * to standard gamepad button and axes values. | 195 * to standard gamepad button and axes values. |
| 197 */ | 196 */ |
| 198 private static void mapXBox360Gamepad(float[] mappedButtons, float[] rawButt
ons, | 197 private static void mapXBox360Gamepad( |
| 199 float[] mappedAxes, float[] rawAxes) { | 198 float[] mappedButtons, float[] rawButtons, float[] mappedAxes, float
[] rawAxes) { |
| 200 // These are actually mapped the same way in Android. | 199 // These are actually mapped the same way in Android. |
| 201 mapShieldGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes); | 200 mapShieldGamepad(mappedButtons, rawButtons, mappedAxes, rawAxes); |
| 202 } | 201 } |
| 203 | 202 |
| 204 private static void mapPS3SixAxisGamepad(float[] mappedButtons, float[] rawB
uttons, | 203 private static void mapPS3SixAxisGamepad( |
| 205 float[] mappedAxes, float[] rawAxes) { | 204 float[] mappedButtons, float[] rawButtons, float[] mappedAxes, float
[] rawAxes) { |
| 206 // On PS3 X/Y has higher priority. | 205 // On PS3 X/Y has higher priority. |
| 207 float a = rawButtons[KeyEvent.KEYCODE_BUTTON_A]; | 206 float a = rawButtons[KeyEvent.KEYCODE_BUTTON_A]; |
| 208 float b = rawButtons[KeyEvent.KEYCODE_BUTTON_B]; | 207 float b = rawButtons[KeyEvent.KEYCODE_BUTTON_B]; |
| 209 float x = rawButtons[KeyEvent.KEYCODE_BUTTON_X]; | 208 float x = rawButtons[KeyEvent.KEYCODE_BUTTON_X]; |
| 210 float y = rawButtons[KeyEvent.KEYCODE_BUTTON_Y]; | 209 float y = rawButtons[KeyEvent.KEYCODE_BUTTON_Y]; |
| 211 mappedButtons[CanonicalButtonIndex.PRIMARY] = x; | 210 mappedButtons[CanonicalButtonIndex.PRIMARY] = x; |
| 212 mappedButtons[CanonicalButtonIndex.SECONDARY] = y; | 211 mappedButtons[CanonicalButtonIndex.SECONDARY] = y; |
| 213 mappedButtons[CanonicalButtonIndex.TERTIARY] = a; | 212 mappedButtons[CanonicalButtonIndex.TERTIARY] = a; |
| 214 mappedButtons[CanonicalButtonIndex.QUATERNARY] = b; | 213 mappedButtons[CanonicalButtonIndex.QUATERNARY] = b; |
| 215 | 214 |
| 216 mapCommonTriggerButtons(mappedButtons, rawButtons); | 215 mapCommonTriggerButtons(mappedButtons, rawButtons); |
| 217 mapCommonThumbstickButtons(mappedButtons, rawButtons); | 216 mapCommonThumbstickButtons(mappedButtons, rawButtons); |
| 218 mapCommonDpadButtons(mappedButtons, rawButtons); | 217 mapCommonDpadButtons(mappedButtons, rawButtons); |
| 219 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); | 218 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); |
| 220 mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes); | 219 mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes); |
| 221 | 220 |
| 222 mapXYAxes(mappedAxes, rawAxes); | 221 mapXYAxes(mappedAxes, rawAxes); |
| 223 mapZAndRZAxesToRightStick(mappedAxes, rawAxes); | 222 mapZAndRZAxesToRightStick(mappedAxes, rawAxes); |
| 224 } | 223 } |
| 225 | 224 |
| 226 private static void mapSamsungEIGP20Gamepad(float[] mappedButtons, float[] r
awButtons, | 225 private static void mapSamsungEIGP20Gamepad( |
| 227 float[] mappedAxes, float[] rawAxes) { | 226 float[] mappedButtons, float[] rawButtons, float[] mappedAxes, float
[] rawAxes) { |
| 228 mapCommonXYABButtons(mappedButtons, rawButtons); | 227 mapCommonXYABButtons(mappedButtons, rawButtons); |
| 229 mapCommonTriggerButtons(mappedButtons, rawButtons); | 228 mapCommonTriggerButtons(mappedButtons, rawButtons); |
| 230 mapCommonThumbstickButtons(mappedButtons, rawButtons); | 229 mapCommonThumbstickButtons(mappedButtons, rawButtons); |
| 231 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); | 230 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); |
| 232 mapHatAxisToDpadButtons(mappedButtons, rawAxes); | 231 mapHatAxisToDpadButtons(mappedButtons, rawAxes); |
| 233 | 232 |
| 234 mapXYAxes(mappedAxes, rawAxes); | 233 mapXYAxes(mappedAxes, rawAxes); |
| 235 mapRXAndRYAxesToRightStick(mappedAxes, rawAxes); | 234 mapRXAndRYAxesToRightStick(mappedAxes, rawAxes); |
| 236 } | 235 } |
| 237 | 236 |
| 238 /** | 237 /** |
| 239 * Method for mapping Unkown gamepad axis and button values | 238 * Method for mapping Unkown gamepad axis and button values |
| 240 * to standard gamepad button and axes values. | 239 * to standard gamepad button and axes values. |
| 241 */ | 240 */ |
| 242 private static void mapUnknownGamepad(float[] mappedButtons, float[] rawButt
ons, | 241 private static void mapUnknownGamepad( |
| 243 float[] mappedAxes, float[] rawAxes) { | 242 float[] mappedButtons, float[] rawButtons, float[] mappedAxes, float
[] rawAxes) { |
| 244 mapCommonXYABButtons(mappedButtons, rawButtons); | 243 mapCommonXYABButtons(mappedButtons, rawButtons); |
| 245 mapCommonTriggerButtons(mappedButtons, rawButtons); | 244 mapCommonTriggerButtons(mappedButtons, rawButtons); |
| 246 mapCommonThumbstickButtons(mappedButtons, rawButtons); | 245 mapCommonThumbstickButtons(mappedButtons, rawButtons); |
| 247 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); | 246 mapCommonStartSelectMetaButtons(mappedButtons, rawButtons); |
| 248 mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes); | 247 mapTriggerAxexToShoulderButtons(mappedButtons, rawAxes); |
| 249 mapCommonDpadButtons(mappedButtons, rawButtons); | 248 mapCommonDpadButtons(mappedButtons, rawButtons); |
| 250 | 249 |
| 251 mapXYAxes(mappedAxes, rawAxes); | 250 mapXYAxes(mappedAxes, rawAxes); |
| 252 mapRXAndRYAxesToRightStick(mappedAxes, rawAxes); | 251 mapRXAndRYAxesToRightStick(mappedAxes, rawAxes); |
| 253 } | 252 } |
| 254 } | 253 } |
| OLD | NEW |