Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27419d65 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou Committed by Paul Keith
Browse files

Add key layout for Nintendo Switch controller

The controller for Nintendo Switch is currently missing a key layout,
and the resulting codes are incorrect. Provide the appropriate map here.

Also, update some button mappings for the Xbox 360 controller.

Bug: 135136477
Test: Tested using "gamepad tester". CTS test will be added in a future
release. Tested using custom app.

Change-Id: I1ffcabdcc11aa83316c483ea49cb10fc85f6264f
parent c163ffe8
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -22,9 +22,7 @@ key 307 BUTTON_X
key 308   BUTTON_Y
key 310   BUTTON_L1
key 311   BUTTON_R1
key 314   BACK
key 315   BUTTON_START
key 316   HOME

key 317   BUTTON_THUMBL
key 318   BUTTON_THUMBR

@@ -44,3 +42,14 @@ axis 0x05 RTRIGGER
# Hat.
axis 0x10 HAT_X
axis 0x11 HAT_Y

# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt

# Button labeled as "BACK" (left-pointing triangle)
key 314   BUTTON_SELECT

# The branded "X" button in the center of the controller
key 316   BUTTON_MODE

# Button labeled as "START" (right-pointing triangle)
key 315   BUTTON_START
+68 −0
Original line number Diff line number Diff line
# Copyright (C) 2019 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.

#
# Nintendo Switch Pro Controller - HAC-013 - Bluetooth
#


# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html

# Button labeled as "Y" but should really produce keycode "X"
key 0x132    BUTTON_X
# Button labeled as "B" but should really produce keycode "A"
key 0x130    BUTTON_A
# Button labeled as "A" but should really produce keycode "B"
key 0x131    BUTTON_B
# Button labeled as "X" but should really product keycode "Y"
key 0x133    BUTTON_Y

# Button labeled as "L"
key 0x134    BUTTON_L1
# Button labeled as "R"
key 0x135    BUTTON_R1

# No LT / RT axes on this controller. Instead, there are keys.
# Trigger labeled as "ZL"
key 0x136    BUTTON_L2
# Trigger labeled as "ZR"
key 0x137    BUTTON_R2

# Left Analog Stick
axis 0x00    X
axis 0x01    Y
# Right Analog Stick
axis 0x03    Z
axis 0x04    RZ

# Left stick click (generates linux BTN_SELECT)
key 0x13a    BUTTON_THUMBL
# Right stick click (generates linux BTN_START)
key 0x13b    BUTTON_THUMBR

# Hat
axis 0x10    HAT_X
axis 0x11    HAT_Y

# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt
# Minus
key 0x138    BUTTON_SELECT
# Plus
key 0x139    BUTTON_START

# Circle
key 0x13d    BUTTON_MODE

# Home key
key 0x13c    HOME