# 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.

#
# Sony Playstation(R)3 Controller
#

key 0x124    DPAD_UP
key 0x125    DPAD_RIGHT
key 0x126    DPAD_DOWN
key 0x127    DPAD_LEFT

key 0x120    BUTTON_SELECT
key 0x123    BUTTON_START
key 0x12f    BUTTON_A
key 0x12c    BUTTON_B
key 0x12e    BUTTON_X
key 0x12d    BUTTON_Y
key 0x12a    BUTTON_L1
key 0x12b    BUTTON_R1
key 0x128    BUTTON_L2
key 0x129    BUTTON_R2
key 0x121    BUTTON_THUMBL
key 0x122    BUTTON_THUMBR

# PS key
key 0x2d0    BUTTON_1

# Left Analog Stick
axis 0x00    X
axis 0x01    Y

# Right Analog Stick
axis 0x02    Z
axis 0x05    RZ

# DPAD
# axis 0x2c   -HAT_Y
# axis 0x2d   +HAT_X
# axis 0x2e   +HAT_Y
# axis 0x2f   -HAT_X

# L2 trigger
axis 0x30   LTRIGGER

# R2 trigger
axis 0x31   RTRIGGER

# L1 trigger
# axis 0x32

# R1 trigger
# axis 0x33

# Triangle
# axis 0x34

# Circle
# axis 0x35

# Cross
# axis 0x36

# Square
# axis 0x37
