Commit Graph

32 Commits

Author SHA1 Message Date
Xin Li
628590d7ec Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Bug: 166295507
Merged-In: I3d92a6de21a938f6b352ec26dc23420c0fe02b27
Change-Id: Ifdb80563ef042738778ebb8a7581a97c4e3d96e2
2020-08-31 21:21:38 -07:00
Aman Gupta
7395b0a265 Add KEYCODE_PROG_{BLUE,RED,GREEN,YELLOW} mappings to LKC equivalents
My goal is to allow colored keys on HDMI-CEC and Bluetooth remotes to be used by an Android TV app.

The USB HID spec [1] and CEC spec [2] both define distinct codes for these keys.

The kernel converts both the HID [4] and CEC [5] codes to standard LKC codes [6]:

  #define KEY_RED		0x18e
  #define KEY_GREEN		0x18f
  #define KEY_YELLOW	0x190
  #define KEY_BLUE		0x191

Android also defines KEYCODE_PROG_ constants for these keys in KeyEvent.java [3]. This commit maps these LKC codes starting at 0x18e (i.e 398) to the existing KeyEvent equivalents.

[1] https://www.usb.org/sites/default/files/color_buttons_0.pdf
[2] https://github.com/floe/CEC/raw/master/extras/CEC_Specs.pdf
[3] https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/java/android/view/KeyEvent.java#L539-L550
[4] https://github.com/torvalds/linux/blob/master/drivers/hid/hid-input.c#L897-L900
[5] https://github.com/torvalds/linux/blob/master/drivers/media/rc/keymaps/rc-cec.c#L142-L145
[6] https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h#L470-L473

Signed-off-by: Aman Gupta <aman@tmm1.net>
Change-Id: I26c63732c8533390de91460acec312fd27ad8866
2020-08-06 08:03:19 -07:00
Aman Gupta
e30b82490c Add KEYCODE_MEDIA_AUDIO_TRACK mapping to USB HID Usage consumer page (0x0c/0x173) "Alternate Audio Increment"
cc 20555cb645

Change-Id: I7ff8b71abd99e6024e874a0aac42e875720186f9
Signed-off-by: Aman Gupta <aman@tmm1.net>
2020-07-21 12:12:40 -07:00
Aman Gupta
7b48e40231 Add KEYCODE_WINDOW mapping to USB HID Usage consumer page (0x0c/0x67) "Picture-in-Picture Toggle"
cc https://www.usb.org/sites/default/files/ce_devices_0.pdf

Change-Id: Iac94535823fa0a97e1a926d28d6f7376c11b8bf0
Signed-off-by: Aman Gupta <aman@tmm1.net>
2020-07-21 12:12:40 -07:00
Aman Gupta
6c984953ea Add KEYCODE_CAPTIONS mapping to LKC KEY_SUBTITLE
From https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h,
KEY_SUBTITLE is near the TV codes. Note that 0x172 == 370.

  #define KEY_CHANNEL		0x16b
  #define KEY_FAVORITES		0x16c
  #define KEY_EPG			0x16d
  #define KEY_PVR			0x16e	/* Media Select Home */
  #define KEY_MHP			0x16f
  #define KEY_LANGUAGE		0x170
  #define KEY_TITLE		0x171
  #define KEY_SUBTITLE		0x172
  #define KEY_ANGLE		0x173
  #define KEY_FULL_SCREEN		0x174	/* AC View Toggle */
  #define KEY_ZOOM		KEY_FULL_SCREEN

You can also see on https://www.kernel.org/doc/html/v4.9/media/uapi/rc/rc-tables.html it is listed in the "Movie play control" section:

  KEY_SUBTITLE	Allow changing the subtitle

Change-Id: I7690269cddd00b787a939f87ba651db38f1160ac
Signed-off-by: Aman Gupta <aman@tmm1.net>
2020-07-21 12:09:52 -07:00
Aman Gupta
48a06806f1 Add KEYCODE_LAST_CHANNEL mapping to LKC KEY_LAST
Change-Id: Idcf987c6e5541e29cac1b8a89263580bfcdc9636
Signed-off-by: Aman Gupta <aman@tmm1.net>
2020-07-16 18:27:02 -07:00
Siarhei Vishniakou
4055c79b56 Add mapping for KEYCODE_ASSIST
Linux has defined KEY_ASSISTANT, but it is not currently mapped in
Android by default. Add the missing mapping here.

Bug: None
Test: None
Change-Id: I85dfecf599ebb69dd2b9ac602b1fc425e13f93c4
2019-06-19 15:31:04 -07:00
Yuichiro Hanada
c1415f3e3c Add new refresh key constant.
Bug: 64149858
Bug: 64662317
Test: Builds and manual tests with Chromebook.

Change-Id: I865d657ee7d78b5e45f642e786d26a65a14f49e1
2018-01-24 09:11:49 +09:00
Michael Wright
4cb42f3894 There is only one Generic.kl.
Generic.kl is a special file that defines the default mappings for all
devices. There can only be one and it cannot change regardless of the
product area the device is in. This should *never* have been checked in,
especially not without someone on the input team looking at it.

Also, add support for the POUND and STAR keys, which is why it was
forked in the first place.

Test: N/A
Change-Id: I894cbefe20fc77d827dc500daa3a380f252eb8b6
2017-12-05 18:45:41 +00:00
Nick Felker
be1d81195a Adds POUND and STAR keys to Generic_Iot.kl
A following change will update the InputDriver-JNI
to take advantage of the new keys.

Bug: 64083153
Test: Building source and testing with InputDriver
Change-Id: I94c9d59ecf7f7278f2ec61c68c4eb80aa65f142c
2017-08-02 16:49:26 +00:00
Michael Wright
f6d7c67962 Add kernel keycode mapping for new cut / copy / paste keys
Bug: 25120948
Change-Id: I33a93fa6c067d15a9739ca33703e0e48e8cf6eff
2015-10-22 15:54:02 +01:00
Michael Wright
1ce304bb02 Map KEY_VOICECOMMAND to KEYCODE_VOICE_ASSIST
This is to simplify Project Watson requirements and enable USB Audio
to easily implement similar functionality to the Watson headsets.

Change-Id: Idd0a0cd6c6ba4a977090fb338d9241046f0380e6
2014-09-05 17:45:26 -07:00
Michael Wright
11ad0e8bac am e8628797: am 09446329: am 52025796: Merge "Map KEY_APPSELECT to APP_SWITCH."
* commit 'e8628797833dfab1319d7a17f9ff465de760c633':
  Map KEY_APPSELECT to APP_SWITCH.
2014-05-02 22:15:06 +00:00
Michael Wright
e862879783 am 09446329: am 52025796: Merge "Map KEY_APPSELECT to APP_SWITCH."
* commit '09446329b1afbbc8b56885e61ed66841b59532b2':
  Map KEY_APPSELECT to APP_SWITCH.
2014-05-02 19:20:01 +00:00
Olivier Gay
8840f1f13a Map KEY_APPSELECT to APP_SWITCH.
Change-Id: Iec801f2edfec9923aac088cb66663f64d62b3df6
Signed-off-by: Olivier Gay <ogay@logitech.com>
Signed-off-by: Mathieu Meisser <mmeisser@logitech.com>
2014-05-01 11:11:27 +02:00
Michael Wright
337d9d2edc Move key attribute information into KeyEvent.
This consolidates all of the information that was in the native
KeyEvent and the KeyLayout files into the managed KeyEvent class.

It also moves the definition for all of the key names to the native
side, rather than having them in both places.

Change-Id: I172e3b554e7eb52c79ae2ec406ef4332e8b25ffa
2014-04-28 14:33:40 -07:00
Michael Wright
ed28fc89e3 Utilize new Android LED constants. DO NOT MERGE
Also, have EventHub manage game controllers' player LEDs

Change-Id: Ic7dba19ad236a3c7d1aff5d3f938bd239b98d51d
2014-03-11 14:52:18 -07:00
Jeff Brown
2901e0442a am 9e3de5f7: am 6f9f8e7a: am 01b5e765: Merge "Declare KEYCODE_SLEEP and KEYCODE_WAKEUP." into klp-modular-dev
* commit '9e3de5f70d77f7152b25fec6c27b73d037c1376d':
  Declare KEYCODE_SLEEP and KEYCODE_WAKEUP.
2014-03-08 05:43:12 +00:00
Jeff Brown
6212a49a94 Declare KEYCODE_SLEEP and KEYCODE_WAKEUP.
These new keys behave in similarly to KEYCODE_POWER but do not
simply toggle between awake and asleep states.

Sleep puts the device to sleep if it is awake.
Wakeup wakes up the device if it is asleep.

Bug: 12938999
Change-Id: I260fb918cc858882fe06fa880910df5763a76c5d
2014-03-07 14:02:55 -08:00
Michael Wright
58f5a6134e Utilize new Android LED constants
Also, have EventHub manage game controllers' player LEDs

Change-Id: Ic0a1515979d72a30d182d51d89ca6753c5bd7bf8
2013-10-18 17:54:48 -07:00
Michael Wright
1df477acf6 Add initial plumbing for brightness keys
Change-Id: I595e8a25e6c245e4b22f06df9a8acdbb75e4b041
2013-02-01 16:29:59 -08:00
Jeff Brown
80b2760332 Map KEY_SELECT to DPAD_CENTER.
Change-Id: If387be6b233db2222347e39e9edb3ad886e936a3
2012-04-25 18:35:46 -07:00
Yang Chuang
7511f9cd2f Add Japanese specific key codes.
These keys are specific to Japanese hardware keyboard which can be
used by input method.

Patch ported from AOSP, with the addition of EISU and KANA mappings.

Change-Id: I647473cdd257458e3b9d134b0fc623eae946c3e0
2012-04-02 15:19:45 -07:00
Jeff Brown
6651a63834 Fix application launch shortcuts.
Improved quick launch bookmarks to support category-based shortcuts
instead of hardcoding package and class names for all apps.

Added a set of Intent categories for typical applications on the
platform.

Added support for some of the HID application launch usages to
reduce reliance on quick launch for special purpose keys.  Some
keyboard vendors have hardcoded launch keys that synthesize
"Search + X" type key combos.  The goal is to encourage them
to stop doing this by implementing more of HID.

Bug: 5674723
Change-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593
2011-11-29 12:17:22 -08:00
Jeff Brown
eee00495f5 Update keymaps.
Bug: 5069142

Add some additional mappings for the POWER key to support more
standard HID devices.

Remove some non-standard mappings that don't make sense anymore.

Change-Id: Ie95a72c60d4dc4bfb3c90f6f3b343365f8e76685
2011-08-10 14:43:20 -07:00
Jeff Brown
3a22fa0570 Joystick tweaks.
Ensure that the joystick can always reach -1.0, 0.0 and 1.0 positions
even when noise filtering is applied.  (Bug: 3514510)

Add support for a few more standard axes.

Add additional mapping modes for axes.
Some axes are inverted from standard interpretation
or are actually intended to be split into two distict axes
such as left/right trigger controls or accelerator/brake.

Add key layout file for a G25 racing wheel and XBox 360 controller
to tweak behavior.  They work fine without them but the axis mappings
are not ideal.

Change-Id: Id4c86a0a272331c680039a9bde6815bb7eba44ab
2011-03-04 18:53:32 -08:00
Jeff Brown
e7b2029a0b Recognize 3D joysticks.
Change-Id: Ie4eae09c0334f69c2ccfcf7eaede075f9ba02eab
2011-03-03 03:39:29 -08:00
Jeff Brown
6f2fba428c Add new axes for joysticks and mouse wheels.
Added API on InputDevice to query the set of axes available.
Added API on KeyEvent and MotionEvent to convert keycodes and axes
to symbolic name strings for diagnostic purposes.
Added API on KeyEvent to query if a given key code is a gamepad button.
Added a new "axis" element to key layout files to specify the
mapping between raw absolute axis values and motion axis ids.
Expanded the axis bitfield to 64bits to allow for future growth.
Modified the Makefile for keyboard prebuilts to run the keymap
validation tool during the build.
Added layouts for two game controllers.
Added default actions for game pad button keys.
Added more tests.
Fixed a bunch of bugs.

Change-Id: I73f9166c3b3c5bcf4970845b58088ad467525525
2011-02-19 05:23:10 -08:00
Jeff Brown
cb1404e456 Add joystick support to framework.
Change-Id: I95374436708752e1a9cff3f85c5b9bc3e0987961
2011-01-17 13:51:00 -08:00
Jeff Brown
d49c347921 Tweak key layouts.
Change-Id: I19777ec4e5d0a5485cfe2a44a15e2b0680557d08
2010-11-25 15:02:36 -08:00
Jeff Brown
b0418da0e7 Add plumbing for volume mute key.
Full support for the volume mute key will be implemented in a
later change.

Bug: 2912307
Change-Id: I98c27d6360f159c8b7447e04b45f442eff87b38a
2010-11-02 17:31:39 -07:00
Jeff Brown
497a92cc5b Add keycodes and meta-key modifiers to support external keyboards.
Added new key maps for external keyboards.  These maps are intended to
be shared across devices by inheriting the "keyboards.mk" product
makefile as part of the device's product definition.

One of the trickier changes here was to unwind some code in
MetaKeyKeyListener that assumed that only the low 8 bits of the meta key
state were actually used.  The new code abandons bitshifts in favor
of simple conditionals that are probably easier to read anyways.
The special meta key state constants used by MetaKeyKeyListener
are now (@hide) defined in KeyEvent now so as to make it clearer that they
share the same code space even if those codes are not valid for KeyEvents.

The EventHub now takes care of detecting the appropriate key layout
map and key character map when the device is added and sets system
properties accordingly.  This avoids having duplicate code in
KeyCharacterMap to probe for the appropriate key character map
although the current probing mechanism has been preserved for legacy
reasons just in case.

Added support for tracking caps lock, num lock and scroll lock and
turning their corresponding LEDs on and off as needed.

The key character map format will need to be updated to correctly support
PC style external keyboard semantics related to modifier keys.
That will come in a later change so caps lock doesn't actually do
anything right now except turn the shiny LEDs on and off...

Added a list of symbolic key names to KeyEvent and improved the toString()
output for debug diagnosis.  Having this list in a central place in the
framework also allows us to remove it from Monkey so there is one less
thing to maintain when we add new keycodes.

Bug: 2912307
Change-Id: If8c25e8d50a7c29bbf5d663c94284f5f86de5da4
2010-10-15 16:00:07 -07:00