Merge "Add 2 new properties in VHAL for Special Input handling on passenger displays"

This commit is contained in:
Gaurav Bhola
2022-12-07 00:54:58 +00:00
committed by Android (Google) Code Review
16 changed files with 538 additions and 0 deletions

View File

@@ -36,4 +36,7 @@ package android.hardware.automotive.vehicle;
enum VehicleDisplay {
MAIN = 0,
INSTRUMENT_CLUSTER = 1,
HUD = 2,
INPUT = 3,
AUXILIARY = 4,
}

View File

@@ -0,0 +1,44 @@
/*
* 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.automotive.vehicle;
@Backing(type="int") @VintfStability
enum VehicleHwMotionButtonStateFlag {
BUTTON_PRIMARY = 1,
BUTTON_SECONDARY = 2,
BUTTON_TERTIARY = 4,
BUTTON_BACK = 8,
BUTTON_FORWARD = 16,
BUTTON_STYLUS_PRIMARY = 32,
BUTTON_STYLUS_SECONDARY = 64,
}

View File

@@ -0,0 +1,50 @@
/*
* 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.automotive.vehicle;
@Backing(type="int") @VintfStability
enum VehicleHwMotionInputAction {
ACTION_DOWN = 0,
ACTION_UP = 1,
ACTION_MOVE = 2,
ACTION_CANCEL = 3,
ACTION_OUTSIDE = 4,
ACTION_POINTER_DOWN = 5,
ACTION_POINTER_UP = 6,
ACTION_HOVER_MOVE = 7,
ACTION_SCROLL = 8,
ACTION_HOVER_ENTER = 9,
ACTION_HOVER_EXIT = 10,
ACTION_BUTTON_PRESS = 11,
ACTION_BUTTON_RELEASE = 12,
}

View File

@@ -0,0 +1,53 @@
/*
* 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.automotive.vehicle;
@Backing(type="int") @VintfStability
enum VehicleHwMotionInputSource {
SOURCE_UNKNOWN = 0,
SOURCE_KEYBOARD = 1,
SOURCE_DPAD = 2,
SOURCE_GAMEPAD = 3,
SOURCE_TOUCHSCREEN = 4,
SOURCE_MOUSE = 5,
SOURCE_STYLUS = 6,
SOURCE_BLUETOOTH_STYLUS = 7,
SOURCE_TRACKBALL = 8,
SOURCE_MOUSE_RELATIVE = 9,
SOURCE_TOUCHPAD = 10,
SOURCE_TOUCH_NAVIGATION = 11,
SOURCE_ROTARY_ENCODER = 12,
SOURCE_JOYSTICK = 13,
SOURCE_HDMI = 14,
SOURCE_SENSOR = 15,
}

View File

@@ -0,0 +1,42 @@
/*
* Copyright (C) 2021 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.automotive.vehicle;
@Backing(type="int") @VintfStability
enum VehicleHwMotionToolType {
TOOL_TYPE_UNKNOWN = 0,
TOOL_TYPE_FINGER = 1,
TOOL_TYPE_STYLUS = 2,
TOOL_TYPE_MOUSE = 3,
TOOL_TYPE_ERASER = 4,
}

View File

@@ -114,6 +114,8 @@ enum VehicleProperty {
AP_POWER_BOOTUP_REASON = 289409538,
DISPLAY_BRIGHTNESS = 289409539,
HW_KEY_INPUT = 289475088,
HW_KEY_INPUT_V2 = 367004177,
HW_MOTION_INPUT = 367004178,
HW_ROTARY_INPUT = 289475104,
HW_CUSTOM_INPUT = 289475120,
DOOR_POS = 373295872,

View File

@@ -23,5 +23,21 @@ enum VehicleDisplay {
* The primary Android display (for example, center console)
*/
MAIN = 0,
/**
* Instrument cluster display. This may exist only for driver
*/
INSTRUMENT_CLUSTER = 1,
/**
* Head Up Display. This may exist only for driver
*/
HUD = 2,
/**
* Dedicated display for showing IME for {@code MAIN}
*/
INPUT = 3,
/**
* Auxiliary display which can provide additional screen for {@code MAIN} display
*/
AUXILIARY = 4,
}

View File

@@ -0,0 +1,53 @@
/*
* 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.
*/
package android.hardware.automotive.vehicle;
/**
* See {@code android.view.MotionEvent#getButtonState()} for more details.
*/
@VintfStability
@Backing(type="int")
enum VehicleHwMotionButtonStateFlag {
/**
* Button state primary
*/
BUTTON_PRIMARY = 0x0001,
/**
* Button state secondary
*/
BUTTON_SECONDARY = 0x0002,
/**
* Button state tertiary
*/
BUTTON_TERTIARY = 0x0004,
/**
* Button state back
*/
BUTTON_BACK = 0x0008,
/**
* Button state forward
*/
BUTTON_FORWARD = 0x0010,
/**
* Button state stylus primary
*/
BUTTON_STYLUS_PRIMARY = 0x0020,
/**
* Button state stylus secondary
*/
BUTTON_STYLUS_SECONDARY = 0x0040,
}

View File

@@ -0,0 +1,77 @@
/*
* 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.
*/
package android.hardware.automotive.vehicle;
/**
* See {@code android.view.MotionEvent#ACTION_*} fields for more details.
*/
@VintfStability
@Backing(type="int")
enum VehicleHwMotionInputAction {
/**
* Motion down
*/
ACTION_DOWN = 0,
/**
* Motion up
*/
ACTION_UP = 1,
/**
* Motion move
*/
ACTION_MOVE = 2,
/**
* Motion cancel
*/
ACTION_CANCEL = 3,
/**
* Motion outside
*/
ACTION_OUTSIDE = 4,
/**
* Motion pointer down
*/
ACTION_POINTER_DOWN = 5,
/**
* Motion pointer up
*/
ACTION_POINTER_UP = 6,
/**
* Motion hover move
*/
ACTION_HOVER_MOVE = 7,
/**
* Motion scroll
*/
ACTION_SCROLL = 8,
/**
* Motion hover enter
*/
ACTION_HOVER_ENTER = 9,
/**
* Motion hover exit
*/
ACTION_HOVER_EXIT = 10,
/**
* Motion button press
*/
ACTION_BUTTON_PRESS = 11,
/**
* Motion button release
*/
ACTION_BUTTON_RELEASE = 12,
}

View File

@@ -0,0 +1,89 @@
/*
* 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.
*/
package android.hardware.automotive.vehicle;
/**
* See {@code android.view.InputDevice#SOURCE_*} for more details.
*/
@VintfStability
@Backing(type="int")
enum VehicleHwMotionInputSource {
/**
* Unknown source
*/
SOURCE_UNKNOWN = 0,
/**
* Source keyboard
*/
SOURCE_KEYBOARD = 1,
/**
* Source dpad
*/
SOURCE_DPAD = 2,
/**
* Source game pad
*/
SOURCE_GAMEPAD = 3,
/**
* Source touch screen
*/
SOURCE_TOUCHSCREEN = 4,
/**
* Source mouse
*/
SOURCE_MOUSE = 5,
/**
* Source stylus
*/
SOURCE_STYLUS = 6,
/**
* Source bluetooth stylus
*/
SOURCE_BLUETOOTH_STYLUS = 7,
/**
* Source trackball
*/
SOURCE_TRACKBALL = 8,
/**
* Source mouse relative
*/
SOURCE_MOUSE_RELATIVE = 9,
/**
* Source touchpad
*/
SOURCE_TOUCHPAD = 10,
/**
* Source touch navigation
*/
SOURCE_TOUCH_NAVIGATION = 11,
/**
* Source rotary encoder
*/
SOURCE_ROTARY_ENCODER = 12,
/**
* Source joystick
*/
SOURCE_JOYSTICK = 13,
/**
* Source hdmi
*/
SOURCE_HDMI = 14,
/**
* Source sensor
*/
SOURCE_SENSOR = 15,
}

View File

@@ -0,0 +1,45 @@
/*
* Copyright (C) 2021 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.
*/
package android.hardware.automotive.vehicle;
/**
* See {@code android.view.MotionEvent#TOOL_TYPE_*} for more details.
*/
@VintfStability
@Backing(type="int")
enum VehicleHwMotionToolType {
/**
* Unknown type such as for a trackballl or other non-pointing device
*/
TOOL_TYPE_UNKNOWN = 0,
/**
* Finger type
*/
TOOL_TYPE_FINGER = 1,
/**
* Stylus type
*/
TOOL_TYPE_STYLUS = 2,
/**
* Mouse type
*/
TOOL_TYPE_MOUSE = 3,
/**
* Eraser type
*/
TOOL_TYPE_ERASER = 4,
}

View File

@@ -1229,6 +1229,62 @@ enum VehicleProperty {
*/
HW_KEY_INPUT = 0x0A10 + 0x10000000 + 0x01000000
+ 0x00410000, // VehiclePropertyGroup:SYSTEM,VehicleArea:GLOBAL,VehiclePropertyType:INT32_VEC
/**
* Property to feed H/W input events to android
*
* int32array[0]: target display defined by VehicleDisplay like VehicleDisplay::MAIN,
* VehicleDisplay::INSTRUMENT_CLUSTER, VehicleDisplay::AUX
* int32array[1]: key code, must use standard android key code like KEYCODE_HOME, KEYCODE_BACK
* int32array[2]: action defined in VehicleHwKeyInputAction like
* VehicleHwKeyInputAction::ACTION_UP, VehicleHwKeyInputAction::ACTION_UP
* int32array[3]: repeat count of the event. For key down events, this is the repeat count
* with the first down starting at 0 and counting up from there. For key up
* events, this is always equal to 0
*
* int64array[0]: down time, elapsed nanoseconds since boot. Denotes the time of the most
* recent key down event. For the down event, it will be the event time of the
* down event itself
*
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ
* @config_flags
*/
HW_KEY_INPUT_V2 =
0x0A11 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.MIXED,
/**
* Property to feed H/W input events to android
*
* int32array[0]: target display defined by VehicleDisplay like VehicleDisplay::MAIN,
* VehicleDisplay::INSTRUMENT_CLUSTER, VehicleDisplay::AUX
* int32array[1]: input type defined in VehicleHwMotionInputSource like
* VehicleHwMotionInputSource::SOURCE_KEYBOARD,
* VehicleHwMotionInputSource::SOURCE_DPAD
* int32array[2]: action code defined in VehicleHwMotionInputAction like
* VehicleHwMotionInputAction::ACTION_UP, VehicleHwMotionInputAction::ACTION_DOWN
* int32array[3]: button state flag defined in VehicleHwMotionButtonStateFlag like
* VehicleHwMotionButtonStateFlag::BUTTON_PRIMARY,
* VehicleHwMotionButtonStateFlag::BUTTON_SECONDARY
* int32array[4]: pointer events count, N. N must be a positive integer
* int32array[5:5+N-1]: pointer id, length N
* int32array[5+N:5+2*N-1] : tool type, length N. As defined in VehicleHwMotionToolType like
* VehicleHwMotionToolType::TOOL_TYPE_FINGER,
* VehicleHwMotionToolType::TOOL_TYPE_STYLUS
*
* floatArray[0:N-1] : x data, length N
* floatArray[N:2*N-1] : y data, length N
* floatArray[2*N:3*N-1] : pressure data, length N
* floatArray[3*N:4*N-1] : size data, length N
*
* int64array[0]: down time, elapsed nanoseconds since boot. Denotes the time when the user
* originally pressed down to start a stream of position events. For the down
* event, it will be the event time of the down event itself
*
* @change_mode VehiclePropertyChangeMode.ON_CHANGE
* @access VehiclePropertyAccess.READ
* @config_flags
*/
HW_MOTION_INPUT =
0x0A12 + VehiclePropertyGroup.SYSTEM + VehicleArea.SEAT + VehiclePropertyType.MIXED,
/**
* Property to feed H/W rotary events to android
*

View File

@@ -114,6 +114,8 @@ std::unordered_map<VehicleProperty, VehiclePropertyAccess> AccessForVehiclePrope
{VehicleProperty::AP_POWER_BOOTUP_REASON, VehiclePropertyAccess::READ},
{VehicleProperty::DISPLAY_BRIGHTNESS, VehiclePropertyAccess::READ_WRITE},
{VehicleProperty::HW_KEY_INPUT, VehiclePropertyAccess::READ},
{VehicleProperty::HW_KEY_INPUT_V2, VehiclePropertyAccess::READ},
{VehicleProperty::HW_MOTION_INPUT, VehiclePropertyAccess::READ},
{VehicleProperty::HW_ROTARY_INPUT, VehiclePropertyAccess::READ},
{VehicleProperty::HW_CUSTOM_INPUT, VehiclePropertyAccess::READ},
{VehicleProperty::DOOR_POS, VehiclePropertyAccess::READ_WRITE},

View File

@@ -114,6 +114,8 @@ std::unordered_map<VehicleProperty, VehiclePropertyChangeMode> ChangeModeForVehi
{VehicleProperty::AP_POWER_BOOTUP_REASON, VehiclePropertyChangeMode::STATIC},
{VehicleProperty::DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HW_KEY_INPUT, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HW_KEY_INPUT_V2, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HW_MOTION_INPUT, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HW_ROTARY_INPUT, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::HW_CUSTOM_INPUT, VehiclePropertyChangeMode::ON_CHANGE},
{VehicleProperty::DOOR_POS, VehiclePropertyChangeMode::ON_CHANGE},

View File

@@ -106,6 +106,8 @@ public final class AccessForVehicleProperty {
Map.entry(VehicleProperty.AP_POWER_BOOTUP_REASON, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, VehiclePropertyAccess.READ_WRITE),
Map.entry(VehicleProperty.HW_KEY_INPUT, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.HW_KEY_INPUT_V2, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.HW_MOTION_INPUT, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.HW_ROTARY_INPUT, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.HW_CUSTOM_INPUT, VehiclePropertyAccess.READ),
Map.entry(VehicleProperty.DOOR_POS, VehiclePropertyAccess.READ_WRITE),

View File

@@ -106,6 +106,8 @@ public final class ChangeModeForVehicleProperty {
Map.entry(VehicleProperty.AP_POWER_BOOTUP_REASON, VehiclePropertyChangeMode.STATIC),
Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.HW_KEY_INPUT, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.HW_KEY_INPUT_V2, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.HW_MOTION_INPUT, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.HW_ROTARY_INPUT, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.HW_CUSTOM_INPUT, VehiclePropertyChangeMode.ON_CHANGE),
Map.entry(VehicleProperty.DOOR_POS, VehiclePropertyChangeMode.ON_CHANGE),