Merge "Require CONFIG_HID_PLAYSTATION for DualSense key layout"

This commit is contained in:
Treehugger Robot
2022-06-22 15:27:58 +00:00
committed by Gerrit Code Review
5 changed files with 87 additions and 0 deletions

View File

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

View File

@@ -16,6 +16,8 @@
# Sony Playstation(R) DualSense Controller # 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 # 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: [ cflags: [
"-Wall", "-Wall",
"-Werror", "-Werror",
"-Wextra",
], ],
static_libs: [ static_libs: [
@@ -31,6 +32,9 @@ cc_binary_host {
"liblog", "liblog",
"libui-types", "libui-types",
], ],
shared_libs: [
"libvintf",
],
target: { target: {
host_linux: { host_linux: {
static_libs: [ static_libs: [

View File

@@ -97,6 +97,11 @@ static bool validateFile(const char* filename) {
case FileType::KEY_LAYOUT: { case FileType::KEY_LAYOUT: {
base::Result<std::shared_ptr<KeyLayoutMap>> ret = KeyLayoutMap::load(filename); base::Result<std::shared_ptr<KeyLayoutMap>> ret = KeyLayoutMap::load(filename);
if (!ret.ok()) { 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()); error("Error %s parsing key layout file.\n\n", ret.error().message().c_str());
return false; return false;
} }