From b929ac76476199459e521bc1e49d767a0a5428cd Mon Sep 17 00:00:00 2001 From: Ricardo Quesada Date: Fri, 10 Jul 2020 17:30:09 -0700 Subject: [PATCH] frameworks/base: Add Elecom gamepad support This CL adds support for the Elecom JC-U4113S gamepad. Both when it is in X mode as well in D mode. Bug: 160266876 Test: Manually tested. Launched "Gamepad Tester" APK. Verified the mappings both in D mode and X mode were correct. Change-Id: I5f3f7e86e21fa05b9e2fed9b5a857d04a9d556e6 (cherry picked from commit a68571fe5d4e24a1aae60bf68eac7be0f34d6593) --- data/keyboards/Vendor_056e_Product_2010.kl | 48 ++++++++++++++++++++++ data/keyboards/Vendor_056e_Product_2013.kl | 44 ++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 data/keyboards/Vendor_056e_Product_2010.kl create mode 100644 data/keyboards/Vendor_056e_Product_2013.kl diff --git a/data/keyboards/Vendor_056e_Product_2010.kl b/data/keyboards/Vendor_056e_Product_2010.kl new file mode 100644 index 0000000000000..09e15eaa62b8b --- /dev/null +++ b/data/keyboards/Vendor_056e_Product_2010.kl @@ -0,0 +1,48 @@ +# Copyright (C) 2020 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. + +# +# Elecom JC-U4113S in DirectInput Mode (D mode). +# + +# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html + +key 306 BUTTON_A +key 307 BUTTON_B +key 304 BUTTON_X +key 305 BUTTON_Y + +key 308 BUTTON_L1 +key 309 BUTTON_R1 +key 310 BUTTON_L2 +key 311 BUTTON_R2 + +key 312 BUTTON_THUMBL +key 313 BUTTON_THUMBR + +key 314 BACK +key 315 BUTTON_START + +# Left and right stick. +axis 0x00 X +axis 0x01 Y +axis 0x05 Z +axis 0x02 RZ + +# Hat. +axis 0x10 HAT_X +axis 0x11 HAT_Y + +# "Guide" button (Xbox key). +key 316 BUTTON_MODE diff --git a/data/keyboards/Vendor_056e_Product_2013.kl b/data/keyboards/Vendor_056e_Product_2013.kl new file mode 100644 index 0000000000000..c2a74a9fd4421 --- /dev/null +++ b/data/keyboards/Vendor_056e_Product_2013.kl @@ -0,0 +1,44 @@ +# Copyright (C) 2020 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. + +# +# Elecom JC-U4113S in XInput Mode (X mode). +# + +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 315 BUTTON_START +key 314 BACK +key 317 BUTTON_THUMBL +key 318 BUTTON_THUMBR + +# Left and right stick. +axis 0x00 X +axis 0x01 Y +axis 0x03 Z +axis 0x04 RZ + +axis 0x02 BRAKE +axis 0x05 GAS + +# Hat. +axis 0x10 HAT_X +axis 0x11 HAT_Y + +# "Guide" button (Xbox key). +key 316 BUTTON_MODE