Merge "Require CONFIG_HID_PLAYSTATION for DualSense key layout" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-08-24 14:40:58 +00:00
committed by Android (Google) Code Review
5 changed files with 87 additions and 0 deletions

View File

@@ -401,6 +401,7 @@ cc_library_shared {
// (e.g. gDefaultServiceManager)
"libbinder",
"libhidlbase", // libhwbinder is in here
"libvintf",
],
},
},

View File

@@ -16,6 +16,8 @@
# Sony Playstation(R) DualSense Controller
#
# Only use this key layout if we have HID_PLAYSTATION!
requires_kernel_config CONFIG_HID_PLAYSTATION
# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html

View File

@@ -0,0 +1,75 @@
# Copyright (C) 2022 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) DualSense Controller
#
# Use this if HID_PLAYSTATION is not available
# Mapping according to https://developer.android.com/training/game-controllers/controller-input.html
# Square
key 304 BUTTON_X
# Cross
key 305 BUTTON_A
# Circle
key 306 BUTTON_B
# Triangle
key 307 BUTTON_Y
key 308 BUTTON_L1
key 309 BUTTON_R1
key 310 BUTTON_L2
key 311 BUTTON_R2
# L2 axis
axis 0x03 LTRIGGER
# R2 axis
axis 0x04 RTRIGGER
# Left Analog Stick
axis 0x00 X
axis 0x01 Y
# Right Analog Stick
axis 0x02 Z
axis 0x05 RZ
# Left stick click
key 314 BUTTON_THUMBL
# Right stick click
key 315 BUTTON_THUMBR
# Hat
axis 0x10 HAT_X
axis 0x11 HAT_Y
# Mapping according to https://www.kernel.org/doc/Documentation/input/gamepad.txt
# Share / "half-sun"
key 312 BUTTON_SELECT
# Options / three horizontal lines
key 313 BUTTON_START
# PS key
key 316 BUTTON_MODE
# Touchpad press
key 317 BUTTON_1
# SENSORs
sensor 0x00 ACCELEROMETER X
sensor 0x01 ACCELEROMETER Y
sensor 0x02 ACCELEROMETER Z
sensor 0x03 GYROSCOPE X
sensor 0x04 GYROSCOPE Y
sensor 0x05 GYROSCOPE Z

View File

@@ -21,6 +21,7 @@ cc_binary_host {
cflags: [
"-Wall",
"-Werror",
"-Wextra",
],
static_libs: [
@@ -31,6 +32,9 @@ cc_binary_host {
"liblog",
"libui-types",
],
shared_libs: [
"libvintf",
],
target: {
host_linux: {
static_libs: [

View File

@@ -141,6 +141,11 @@ static bool validateFile(const char* filename) {
}
base::Result<std::shared_ptr<KeyLayoutMap>> ret = KeyLayoutMap::load(filename);
if (!ret.ok()) {
if (ret.error().message() == "Missing kernel config") {
// It means the layout is valid, but won't be loaded on this device because
// this layout requires a certain kernel config.
return true;
}
error("Error %s parsing key layout file.\n\n", ret.error().message().c_str());
return false;
}