# Copyright (C) 2011 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # XBox 360 USB Wireless Controller # Reports itself as "Xbox 360 Wireless Receiver" and # "Microsoft Corp. Xbox 360 Wireless Adapter" # Similar in behavior to XBox 360 USB Controller except for the d-pad, # which is digital (scan codes instead of axes) on the wireless version. # # NVIDIA Normalized Gamepad key 0x130 BUTTON_A key 0x131 BUTTON_B key 0x133 BUTTON_X key 0x134 BUTTON_Y # Button "LB" maps to BUTTON_L1. key 0x136 BUTTON_L1 # Button "RB" maps to BUTTON_R1. key 0x137 BUTTON_R1 key 0x13a BACK key 0x13b BUTTON_START # Button with Xbox logo maps to HOME. key 0x13c HOME # These two keycodes are for click (press from above) on analog control sticks. key 0x13d BUTTON_THUMBL key 0x13e BUTTON_THUMBR # Left (0x00, 0x01) and right (0x03, 0x04) analog control stick. # The reported value for flat is 128 out of a range from -32767 to 32768, which is absurd. # This confuses applications that rely on the flat value because the joystick actually # settles in a flat range of +/- 4096 or so. axis 0x00 X flat 4096 axis 0x01 Y flat 4096 axis 0x03 Z flat 4096 axis 0x04 RZ flat 4096 # Triggers. # (Shoulder trigger buttons marked with "LT" and "RT" are analog. # Each axis has range from 0 to 255.) axis 0x02 LTRIGGER axis 0x05 RTRIGGER # Hat. # (D-pad is reported as digital. Each direction has a scan code.) key 0x2c0 DPAD_LEFT key 0x2c1 DPAD_RIGHT key 0x2c2 DPAD_UP key 0x2c3 DPAD_DOWN