From 4fef274c01d419d31f25541d3219fedb7e1c1e73 Mon Sep 17 00:00:00 2001 From: Siarhei Vishniakou Date: Mon, 10 Jun 2019 19:51:14 -0700 Subject: [PATCH] Add keylayout for Xbox One USB controller We are currently missing the key layout for the Xbox One USB controller with the following meta information: vendor 045e, product 02ea This layout was copied from product 02d1. Also fix the mappings of the middle buttons to generate "select - mode - start", similar to what has already been done for the other xbox controllers in ag/4836521 and ag/3162575 Bug: 132451971 Bug: 133514907 Bug: 139512030 Test: tested using custom app. CTS tests will be added later. Change-Id: Ie18bce987b512211d3e91bd1f7334afe11d83cf8 Merged-In: Ie18bce987b512211d3e91bd1f7334afe11d83cf8 --- data/keyboards/Vendor_045e_Product_02d1.kl | 29 ++++++++++----- data/keyboards/Vendor_045e_Product_02ea.kl | 57 ++++++++++++++++++++++++++++++ data/keyboards/Vendor_045e_Product_02fd.kl | 57 ++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+), 9 deletions(-) create mode 100644 data/keyboards/Vendor_045e_Product_02ea.kl create mode 100644 data/keyboards/Vendor_045e_Product_02fd.kl diff --git a/data/keyboards/Vendor_045e_Product_02d1.kl b/data/keyboards/Vendor_045e_Product_02d1.kl index 5d1637bb012d..086767075941 100644 --- a/data/keyboards/Vendor_045e_Product_02d1.kl +++ b/data/keyboards/Vendor_045e_Product_02d1.kl @@ -13,20 +13,22 @@ # limitations under the License. # -# XBox One USB Controller +# XBox One Controller - Model 1537 - USB # +# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html + key 304 BUTTON_A key 305 BUTTON_B 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 + +# Triggers. +axis 0x02 LTRIGGER +axis 0x05 RTRIGGER # Left and right stick. # The reported value for flat is 128 out of a range from -32767 to 32768, which is absurd. @@ -37,10 +39,19 @@ axis 0x01 Y flat 4096 axis 0x03 Z flat 4096 axis 0x04 RZ flat 4096 -# Triggers. -axis 0x02 LTRIGGER -axis 0x05 RTRIGGER +key 317 BUTTON_THUMBL +key 318 BUTTON_THUMBR # Hat. axis 0x10 HAT_X axis 0x11 HAT_Y + + +# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt +# Two overlapping rectangles +key 314 BUTTON_SELECT +# Hamburger - 3 parallel lines +key 315 BUTTON_START + +# Xbox key +key 316 BUTTON_MODE diff --git a/data/keyboards/Vendor_045e_Product_02ea.kl b/data/keyboards/Vendor_045e_Product_02ea.kl new file mode 100644 index 000000000000..3b46db2ce930 --- /dev/null +++ b/data/keyboards/Vendor_045e_Product_02ea.kl @@ -0,0 +1,57 @@ +# 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. + +# +# XBox One Controller - Model 1708 - USB +# + +# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html + +key 304 BUTTON_A +key 305 BUTTON_B +key 307 BUTTON_X +key 308 BUTTON_Y + +key 310 BUTTON_L1 +key 311 BUTTON_R1 + +# Triggers. +axis 0x02 LTRIGGER +axis 0x05 RTRIGGER + +# Left and right 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 + +key 317 BUTTON_THUMBL +key 318 BUTTON_THUMBR + +# Hat. +axis 0x10 HAT_X +axis 0x11 HAT_Y + + +# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt +# Two overlapping rectangles +key 314 BUTTON_SELECT +# Hamburger - 3 parallel lines +key 315 BUTTON_START + +# Xbox key +key 316 BUTTON_MODE diff --git a/data/keyboards/Vendor_045e_Product_02fd.kl b/data/keyboards/Vendor_045e_Product_02fd.kl new file mode 100644 index 000000000000..512f7e134978 --- /dev/null +++ b/data/keyboards/Vendor_045e_Product_02fd.kl @@ -0,0 +1,57 @@ +# 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. + +# +# XBox One Controller - Model 1708 - Bluetooth +# + +# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html + +key 304 BUTTON_A +key 305 BUTTON_B +key 307 BUTTON_X +key 308 BUTTON_Y + +key 310 BUTTON_L1 +key 311 BUTTON_R1 + +# Triggers. +axis 0x0a LTRIGGER +axis 0x09 RTRIGGER + +# Left and right 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 0x02 Z flat 4096 +axis 0x05 RZ flat 4096 + +key 317 BUTTON_THUMBL +key 318 BUTTON_THUMBR + +# Hat. +axis 0x10 HAT_X +axis 0x11 HAT_Y + + +# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt +# Two overlapping rectangles +key 158 BUTTON_SELECT +# Hamburger - 3 parallel lines +key 315 BUTTON_START + +# Xbox key +key 172 BUTTON_MODE -- 2.11.0