History log of /frameworks/base/services/input/EventHub.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ac6c78b6eef49f5c1ab2a346d90ccb99ccec18f4 17-Jul-2013 Michael Wright <michaelwr@google.com> Add controller numbers for gamepads / joysticks

Change-Id: I30ac9add6a2473a5ebd83a022c571545e61d1136
/frameworks/base/services/input/EventHub.cpp
713412fd54aba940ff67ab804292a2033681df89 11-Jul-2013 Satoshi Kataoka <satok@google.com> am 7e0fad1d: am 8b95d259: am b7925f22: Merge "Revert "Stop marking gamepads as keyboards"" into jb-mr2-dev

* commit '7e0fad1d442428b9a2ba5d88ce7f8a59869acb0e':
Revert "Stop marking gamepads as keyboards"
b7925f2219480d4ddbb1c655b9b386ed031815a3 09-Jul-2013 Satoshi Kataoka <satok@google.com> Merge "Revert "Stop marking gamepads as keyboards"" into jb-mr2-dev
02a44f7d4715bf876aad6b420a0c7c1782965aa0 05-Jul-2013 Ken Wakasa <kwakasa@google.com> Revert "Stop marking gamepads as keyboards"

This reverts commit 74c8fb601ef75d8e12df5221489c41c125e3b846.

Change-Id: If8ca4d09b4d52f11d48dabebf2dff2984760cdc0
bug: 8896129
/frameworks/base/services/input/EventHub.cpp
9d3b1a424c5c61e24e9659d15fb353026a00d925 02-Jul-2013 Jeff Brown <jeffbrown@google.com> Move input library code to frameworks/native.

No longer compile libandroidfw as a static library on the device
since it already exists as a shared library. Keeping the static
library would force us to provide a static library version of
libinput for the device as well which doesn't make sense.

Change-Id: I3517881b87b47dcc209d80dbd0ac6b5cf29a766f
/frameworks/base/services/input/EventHub.cpp
f7104136927f45e152cec3583463b8ef1570df7b 10-Apr-2013 Michael Wright <michaelwr@google.com> Merge "Stop marking gamepads as keyboards" into jb-mr2-dev
4dac901f011e7c15882e260441225633a6435e49 10-Apr-2013 Jeff Brown <jeffbrown@google.com> Rewrite touch navigation dpad synthesis.

The new implementation more accurately tracks the velocity
of flings and takes care to avoid obvious discontinuities.
The main goal is for a fling to appear to be a linear
extension of the movement already in progress. The minimum
fling velocity is set to ensure that flings appear to be
fairly smooth despite being discretized.

Use sequences of repeated key events instead of individual
down/up events to represent continuous motions in one
direction which can be helpful for stopping flings at boundaries
such as when flinging the cursor position within a text view.

Compute the movement thresholds based on the physical
size of the touch pad, if known. If not known, we assume a
nominal size.

Support stopping flings with a tap just like we do for
normal touch events elsewhere in the framework.

Moved the detection of ASSIST swipes into the InputReader
where it belongs. These swipes must be detected globally
to ensure consistent behavior across the all applications.

Added a custom protocol in EventHub to enable input device
drivers to override the timestamp of the following events
in a packet. This change enables input device drivers
that have a better idea of when an input event was actually
generated to pass this information to the input system.
Particularly useful with uinput.

Bug: 8583760
Change-Id: I8ef4e827804786d549cfaa00793a2b9dd0fda465
/frameworks/base/services/input/EventHub.cpp
74c8fb601ef75d8e12df5221489c41c125e3b846 09-Apr-2013 Michael Wright <michaelwr@google.com> Stop marking gamepads as keyboards

Change-Id: I0ba49aa3235b2e0a50405cf6d68632e268fe4183
/frameworks/base/services/input/EventHub.cpp
a0a72850c255b69f8f37e7602215287947bf2432 22-Feb-2013 Michael Wright <michaelwr@google.com> Disable kernel keyrepeat

Bug: 6332980
Change-Id: Ife69167285aad24ed3e4fa5b65abf59d8dfa4f0a
/frameworks/base/services/input/EventHub.cpp
f33b2b2b2483fa824c650b281159ca62e1d0123a 06-Oct-2012 Jeff Brown <jeffbrown@google.com> Recover from bad input event timestamps from the kernel.

This can happen due to a race when the input device is
opened or if the kernel happens to be missing the required
Android patches to set the timestamp correctly.

Bug: 7291243
Change-Id: If4319440eaff2889147c86296abd39efc5664346
/frameworks/base/services/input/EventHub.cpp
25a465bb44497682fde84935100e0acf4a0eb5db 16-May-2012 JP Abgrall <jpa@google.com> Revert "services: input events: enable debugging in EventHub (touch screen issues)"

This reverts commit df0a89daa8018f9dec53d8d766e5a045347ffc93

Get rid of the debugging for the release.
/frameworks/base/services/input/EventHub.cpp
df0a89daa8018f9dec53d8d766e5a045347ffc93 09-May-2012 JP Abgrall <jpa@google.com> services: input events: enable debugging in EventHub (touch screen issues)

Enable verbose logging, but limit the output of events to only those that
are stale by more than 1ms.
This does not overly pollute the logcat output.


Bug: 6258051
Change-Id: I32012a379ca0e97c0834975482cd91f9eeb08907
/frameworks/base/services/input/EventHub.cpp
a75fe05b6e0728ada82cd18dc3ac1ae3a61a10fb 02-May-2012 Jeff Brown <jeffbrown@google.com> Use EVIOCSCLOCKID correctly.

Bug: 6382031
Change-Id: I87b0887ce867a79758bcd24e2202280270faaf8c
/frameworks/base/services/input/EventHub.cpp
61c08240585a6186b4bd879d87f238b3efc368f8 19-Apr-2012 Jeff Brown <jeffbrown@google.com> Don't load keyboard layout overlay for virtual keyboard.

Bug: 6110399
Change-Id: I07c85cf991790ed8766b097acc39295a8065a5ea
/frameworks/base/services/input/EventHub.cpp
4a3862f6b0a8971b6ab5b1c46735b28e7604d0db 18-Apr-2012 Jeff Brown <jeffbrown@google.com> Add Dvorak keyboard layout.

Added support for mapping both scan codes and HID usages to
KeyLayoutMap and KeyCharacterMap. Keyboard overlays can
now influence how key events are mapped to key codes.

Bug: 6110399
Change-Id: I6619fd2d3e1337c55928f89869dbc45b535c7ccf
/frameworks/base/services/input/EventHub.cpp
6ec6f79e1ac1714e3b837796e99f07ff88f66601 18-Apr-2012 Jeff Brown <jeffbrown@google.com> Support loading keyboard layout overlays from resources.

Added the concept of a keyboard layout overlay, which is
a key character map file that has "type OVERLAY".

Added support for loading keyboard layout overlays from
resources dynamically. The layouts are reloaded whenever they
are changed in the Settings application or an application
is installed. This is somewhat more aggressive than necessary
so we might want to optimize it later.

Before system-ready, the input system uses just the generic
keyboard layouts that are included on the device system image.
After system-ready, it considers the user's selected keyboard
layout overlay and attempts to load it as necessary. We need to
wait until system-ready before doing this because we need to
be in a state where it is safe to start applications or access
their resources.

Bug: 6110399
Change-Id: Iae0886d3356649b0d2440aa00910a888cedd8323
/frameworks/base/services/input/EventHub.cpp
a47425a13c19f95057df78b8bb65bb25657e8753 13-Apr-2012 Jeff Brown <jeffbrown@google.com> Add support for input devices that have vibrators.

Added a getVibrator() method to InputDevice which returns a Vibrator
associated with that input device. Its uses the same API as the
system vibrator which makes it easy for applications to be modified
to use one or the other.

Bug: 6334179
Change-Id: Ifc7f13dbcb778670f3f1c07ccc562334e6109d2e
/frameworks/base/services/input/EventHub.cpp
af9e8d38184c6ba4d2d3eb5bde7014a66dd8a78b 13-Apr-2012 Jeff Brown <jeffbrown@google.com> Notify applications when input devices change.

This change allows the InputManager to keep track of what input
devices are registered with the system and when they change.
It needs to do this so that it can properly clear its cache of
input device properties (especially the key map!) when changes
occur.

Added new API so that applications can register listeners for
input device changes.

Fixed a minor bug in EventHub where it didn't handle EPOLLHUP
properly so it would spam the log about unsupposed epoll events
until inotify noticed that the device was gone and removed it.

Change-Id: I937d8c601f7185d4299038bce6a2934fe4fdd2b3
/frameworks/base/services/input/EventHub.cpp
49ccac530b5a798e3c4a79b66b51b8546a0deed1 12-Apr-2012 Jeff Brown <jeffbrown@google.com> Refactor key code mapping.

Added handling for EV_MSC / MSC_SCAN which typically reports
the HID usage associated with a key. This will enable key maps
to map keys with HID usages that Linux does not natively recognize.

Removed keyCode and flags fields from EventHub RawEvent since
they don't necessarily make sense in isolation now that we
pay attention to HID usage codes too.

Removed the fallback code for mapping keys and axes. In practice,
an input device should be self-sufficient. We should not ever
need to look at the built-in keyboard's key map. In fact, there
usually isn't a built-in keyboard anyhow. This code was originally
working around a problem where we weren't loading the key map
for touch screens with virtual keys, which has long since been fixed.

Change-Id: I0a319bdec44be9514f795526347397e94d53a127
/frameworks/base/services/input/EventHub.cpp
9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f 10-Apr-2012 Jeff Brown <jeffbrown@google.com> Request key maps from input manager service.

Instead of each application loading the KeyCharacterMap from
the file system, get them from the input manager service as
part of the InputDevice object.

Refactored InputManager to be a proper singleton instead of
having a bunch of static methods.

InputManager now maintains a cache of all InputDevice objects
that it has loaded. Currently we never invalidate the cache
which can cause InputDevice to return stale motion ranges if
the device is reconfigured. This will be fixed in a future change.

Added a fake InputDevice with ID -1 to represent the virtual keyboard.

Change-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7
/frameworks/base/services/input/EventHub.cpp
eca3cf58c096d5a4ba4ae80318f72266c21a9a6d 07-Apr-2012 Jeff Brown <jeffbrown@google.com> Use new EVIOCSCLOCKID ioctl if supported.

Bug: 6292993
Change-Id: I718f167c2cd41298ed54847dbc5de872cd4c7e4a
/frameworks/base/services/input/EventHub.cpp
e38fdfae9196afd1bdc14c5ec6c12793af1e2550 06-Apr-2012 Jeff Brown <jeffbrown@google.com> Add a unique input device descriptor.

The purpose of the input device descriptor is to make it possible
to associate persistent settings for each input device, such as the
keyboard layout.

The descriptor is a hash of the information we have about the
device, such as its vendor id, product id, unique id, name,
or location.

Bug: 6110399
Change-Id: Idb80f946819b3f0dbf4e661bb0a753dbc2b60981
/frameworks/base/services/input/EventHub.cpp
b93a03f841d93498bfea6cc92a22faa34bce1337 18-Feb-2012 Mathias Agopian <mathias@google.com> frameworks/base refactoring.

First step. Move libui includes to their new home: androidfw.

Change-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662
/frameworks/base/services/input/EventHub.cpp
874c1e9aa598b45e7114a69ecb4194c167a8b39d 19-Jan-2012 Jeff Brown <jeffbrown@google.com> Use O_CLOEXEC when opening input device.

Change-Id: I931614ef4fe2143c9e124c3239d74a4a2ce3816c
/frameworks/base/services/input/EventHub.cpp
e22afbedc1a71905d112d8cf78ca8c2a27e371fe 16-Dec-2011 Jeff Brown <jeffbrown@google.com> Add basic support for new suspend-block ioctls.

The new ioctls will enable the system to be more selective about
which evdev devices should hold wake-locks when their queue is
non-empty.

For now, we enable this behavior for all configured input devices,
which is more or less the status quo. This change is mainly about
ensuring that the system still works correctly when combined with
a newer kernel that supports the suspend-block ioctls. We can
tweak this behavior later.

Change-Id: I8ff69aa5198903f7e2998772a339313df17c0f24
/frameworks/base/services/input/EventHub.cpp
214f459b2c35ac0d95ad8ae9e2a68b94807ceba0 23-Mar-2011 Jeff Brown <jeffbrown@google.com> Remove no longer needed EventHub usleep() optimization.

This optimization is no longer needed now that the kernel evdev
driver's poll() implementation only wakes up the poll after
the final sync.

Change-Id: If237776861df9cfac3086e744d3bbf3484d4c53b
/frameworks/base/services/input/EventHub.cpp
4130554b452a8462a83f97051240f1aec8590650 05-Oct-2011 Jeff Brown <jeffbrown@google.com> Fix line wrapping.

Change-Id: I41199d1145d2435eee046a7e5006dcdce0986821
/frameworks/base/services/input/EventHub.cpp
ec193dec4d9ca2cfc8295c4becfe950a906a15ed 09-Jan-2012 Steve Block <steveblock@google.com> Rename LOG_ASSERT to ALOG_ASSERT DO NOT MERGE

See https://android-git.corp.google.com/g/157519

Bug: 5449033
Change-Id: I8ceb2dba1b031a0fd68d15d146960d9ced62bbf3
/frameworks/base/services/input/EventHub.cpp
3762c311729fe9f3af085c14c5c1fb471d994c03 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/base/services/input/EventHub.cpp
8564c8da817a845353d213acd8636b76f567b234 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
/frameworks/base/services/input/EventHub.cpp
6215d3ff4b5dfa52a5d8b9a42e343051f31066a5 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
/frameworks/base/services/input/EventHub.cpp
5baa3a62a97544669fba6d65a11c07f252e654dd 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/base/services/input/EventHub.cpp
221096fdd6963a0f7090b928cfb92b9267f32d7a 16-Nov-2011 Jeff Brown <jeffbrown@google.com> am 4c0e0dd2: am 3e7497b4: Merge "Eliminate hw.keyboards system properties." into ics-mr1

* commit '4c0e0dd29dcce33e7521b11d01d21d9431f3b264':
Eliminate hw.keyboards system properties.
1e08fe90df18930691b0c2ec22e5db25d7fcb4cf 16-Nov-2011 Jeff Brown <jeffbrown@google.com> Eliminate hw.keyboards system properties.

Stop using system properties to publish information about
the key character map path. Instead, we can retrieve it
on demand by asking the window manager.

It was possible to exhaust the supply of system properties
when repeatedly adding and removing input devices.

Bug: 5532806
Change-Id: Idd361a24ad7db2edc185c8546db7fb05f9c28669
/frameworks/base/services/input/EventHub.cpp
71f2cf116aab893e224056c38ab146bd1538dd3e 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
/frameworks/base/services/input/EventHub.cpp
e8b7f4a20c43d8f55d0cf85a94363b764ba598b8 27-Sep-2011 Dima Zavin <dima@android.com> eventhub: print debugginf info when removing device

Change-Id: I40bbbd3867e8c7ac7d6fb38e1c72432bb4963316
Signed-off-by: Dima Zavin <dima@android.com>
/frameworks/base/services/input/EventHub.cpp
3cdfc4d94f6af82953f0e722ade882197c72da58 01-Sep-2011 Jeff Brown <jeffbrown@google.com> Merge "Support composite touch / joystick devices better."
9ee285afe740ff13d176c9d8430979dfd9575a23 31-Aug-2011 Jeff Brown <jeffbrown@google.com> Support composite touch / joystick devices better.

This change enables the joystick input mapper to handle any axes
that are not claimed by the touch input mapper, which makes
auxiliary controls such as wheels / knobs accessible.

Change-Id: I01ee7f342ac91acfcb4ccb6676fd52b3d5bf31a0
/frameworks/base/services/input/EventHub.cpp
e81056f35041de24adad9bc5384b9e8f72bf95f6 30-Aug-2011 Max Braun <braun@google.com> Pick up device configuration "device.internal = 0". Before, only "device.internal = 1" had an effect.

Change-Id: Ie88ed66e0841418c147bed2e23806405bdd17ad6
/frameworks/base/services/input/EventHub.cpp
063097545e6a273952463803d1a2fab2cb590d4e 12-Aug-2011 Jeff Brown <jeffbrown@google.com> Ensure outValue is set, even when an error occurs.

Change-Id: If883f60cde28792bd0e108597ced49d69d13136e
/frameworks/base/services/input/EventHub.cpp
89ef0720ee8e0ac6ae1758faa917e4d6c9606fb4 11-Aug-2011 Jeff Brown <jeffbrown@google.com> Add input system to Watchdog.
Bug: 5094994

Change-Id: I153866958efc64ac19bda8b997c1c9f6ad425ec4
/frameworks/base/services/input/EventHub.cpp
ba421dddfd558b34726df5dfbf8a3bf748e285b1 11-Aug-2011 Jeff Brown <jeffbrown@google.com> Fix getSwitchState and others to check bitmasks.
Bug: 5149443

Removed some dead code and unnecessary checks, such as checks
for non-nullity of arrays that used to be dynamically allocated
once upon a time but are now part of the Device object itself.

Change-Id: I531116e816772d7c5030d22da0c8e1d7dcfba778
/frameworks/base/services/input/EventHub.cpp
49754db5a304d995c1cc108ff6f19e4ba4265572 02-Jul-2011 Jeff Brown <jeffbrown@google.com> Handle stylus buttons and tool types.

Added TOOL_TYPE_ERASER.

Refactored the InputReader to share more code between the
various input mappers that handle button states and to
simplify the accumulator implementations by having each
one only handle a single type of input.

Removed the concept of direct/indirect tool types from the API.
If we add it back, it should be done in a manner that is orthogonal
to the tool type itself, perhaps as a flags field on the pointer.
The device source may well provide sufficient information anyhow.

Change-Id: I811c22d95e8304269b6ee4f6d11a6b04f3cfc1b2
/frameworks/base/services/input/EventHub.cpp
2717eff2ac04bed60e5fd577bcb8ec1ea7c2ccde 01-Jul-2011 Jeff Brown <jeffbrown@google.com> Query input device for initial slot index.

This fixes a problem where touches can get stuck because the
driver and the framework have different ideas of what the
initial slot index is. The framework assumed it was slot 0
but it could in principle be any slot, such as slot 1. When
that happened, the framework would start tracking the first
touch as slot 0, but it might never receive an "up" for that slot.

Change-Id: Idaffc4534b275d66b9d4360987b28dc2d0f63218
/frameworks/base/services/input/EventHub.cpp
93fa9b30b91f75ee161d0791ff17f98d1a603812 15-Jun-2011 Jeff Brown <jeffbrown@google.com> EventHub code cleanup.

Use epoll_wait() instead of poll().
Dropped all support for non-Linux platforms.
Added a wake-up protocol so that the InputReader can wake up
the event loop immediately as needed.

Change-Id: Ibf84337bcceb3c2df068c5c637de42a319786d66
/frameworks/base/services/input/EventHub.cpp
b3a2d1330716812784aee91b6d6275764b5e4210 13-Jun-2011 Jeff Brown <jeffbrown@google.com> Take advantage of updated linux/input.h kernel headers.

Change-Id: I72d2ef82de5c504d46b0cdb57aa43bbd0d769174
/frameworks/base/services/input/EventHub.cpp
7218d830e27d81141588cd6e37f206d141a18f62 04-Jun-2011 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of ca2b552d to master

Change-Id: I2f3693a59042ac5aa2d7bcdc3a504c78dc99a18b
1a84fd1fb7a51f3fe4f8865e1cdd09f3490f696c 02-Jun-2011 Jeff Brown <jeffbrown@android.com> Add a preference panel for mouse speed.

Bug: 4124987
Change-Id: I3ce175d268a1d043cf5878481261b1049a15a149
/frameworks/base/services/input/EventHub.cpp
5ced76a14350db56f1a80f00076f8be3d982c389 24-May-2011 Jeff Brown <jeffbrown@android.com> Coalesce input events that arrive faster than 333Hz. (DO NOT MERGE)

Some drivers report individual finger updates one at a time
instead of all at once. When 10 fingers are down, this can
cause the framework to have to handle 10 times as many events
each with 10 times as much data. Applications like
PointerLocation would get significantly bogged down by all
of the redundant samples.

This change coalesces samples that are closely spaced in time,
before they are dispatched, as part of the motion event batching
protocol.

Increased the size of the InputChannel shared memory buffer so
that applications can catch up faster if they accumulate a
backlog of samples.

Change-Id: Ibc6abf8af027d9003011ac75caa12941080caba3
/frameworks/base/services/input/EventHub.cpp
dbf8d27f4c32e20e132e90ad713c6ebaf71d7756 19-Mar-2011 Jeff Brown <jeffbrown@google.com> Optimize EventHub to process events in big chunks. (DO NOT MERGE)

When 10 fingers are down, reduces the CPU time spent by the InputReader
thread from ~30% to ~5% on Stingray.

Change-Id: I42ee5c67b8521af715cbab43e763a4af4eb1f914
/frameworks/base/services/input/EventHub.cpp
80fd47ce75253dcdc2cfa85d7a3f42634b923a47 24-May-2011 Jeff Brown <jeffbrown@google.com> Input device protocol enhancements.

Added support for Linux multitouch protocol B (slots).

Added support for using the device's input properties as a hint
to determine the intended usage of a touch device.

Added support for the ABS_MT_DISTANCE axis.

Fixed a bug reporting the presence of the orientation axis.

Change-Id: Icf7b5a5a0f1a9cdf6ad2b35be8ea0c1a35815d48
/frameworks/base/services/input/EventHub.cpp
68d6075b4ad2205c10064c78cde552e3210cca91 17-Mar-2011 Jeff Brown <jeffbrown@google.com> Refactor how timeouts are calculated. (DO NOT MERGE)

Added a timeout mechanism to EventHub and InputReader so that
InputMappers can request timeouts to perform delayed processing of
input when needed.

Change-Id: I89c1171c9326c6e413042e3ee13aa9f7f1fc0454
/frameworks/base/services/input/EventHub.cpp
4e91a180be46c0c7c3bf398d4df4cbe2404216b5 07-Apr-2011 Jeff Brown <jeffbrown@google.com> Coalesce input events that arrive faster than 333Hz.

Some drivers report individual finger updates one at a time
instead of all at once. When 10 fingers are down, this can
cause the framework to have to handle 10 times as many events
each with 10 times as much data. Applications like
PointerLocation would get significantly bogged down by all
of the redundant samples.

This change coalesces samples that are closely spaced in time,
before they are dispatched, as part of the motion event batching
protocol.

Increased the size of the InputChannel shared memory buffer so
that applications can catch up faster if they accumulate a
backlog of samples.

Added logging code to help measure input dispatch and drawing
latency issues in the view hierarchy. See ViewDebug.DEBUG_LATENCY.

Change-Id: Ia5898f781f19901d2225c529a910c32bdf4f504f
/frameworks/base/services/input/EventHub.cpp
b6110c2de0cd7950360aeb2c248a44e4ea5f33f5 02-Apr-2011 Jeff Brown <jeffbrown@google.com> Fix dispatcher crash when input monitoring enabled.
Also ensure that we actually log assertion failures.

Bug: 4203092
Change-Id: I5c14bc41b2255f876858121f5572e2de75cabcc3
/frameworks/base/services/input/EventHub.cpp
df66797771550d243500943e1b9a177667f77f7a 19-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Optimize EventHub to process events in big chunks."
b7198743ab3976b30d4655c1e065ca33e372b6af 19-Mar-2011 Jeff Brown <jeffbrown@google.com> Optimize EventHub to process events in big chunks.

When 10 fingers are down, reduces the CPU time spent by the InputReader
thread from ~30% to ~5% on Stingray.

Change-Id: Icdf7c91cd5d9039ac3beb38ba9021a05e7fabc80
/frameworks/base/services/input/EventHub.cpp
6ed6f6d82d7b9f8d82f3ab3a9f718a0e59ffa476 18-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Refactor how timeouts are calculated."
aa3855d5836d2a2d83baafdf6e40caf90d3dad1c 17-Mar-2011 Jeff Brown <jeffbrown@google.com> Refactor how timeouts are calculated.

Added a timeout mechanism to EventHub and InputReader so that
InputMappers can request timeouts to perform delayed processing of
input when needed.

Change-Id: Iec2045baaf4e67690b15eef3c09a58d5cac76897
/frameworks/base/services/input/EventHub.cpp
8e9d4431d6a97a08d7dc9612c68ffd0812dfdc68 13-Mar-2011 Jeff Brown <jeffbrown@google.com> Fix dangling pointer when device closed just after opening.

Bug: 4088239
Change-Id: I210b918370357560a5ace8ea8dd7601255487e88
/frameworks/base/services/input/EventHub.cpp
9e8e40cb5f8aeb0702002eee60d1ce394bf699ee 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Recognize 3D joysticks. (DO NOT MERGE)

Change-Id: Idf7799ea90fa07677850d40ee1aec39220ded372
/frameworks/base/services/input/EventHub.cpp
8529745b27877d98a0c76692295a3fcac238b1e6 04-Mar-2011 Jeff Brown <jeffbrown@google.com> Joystick tweaks. (DO NOT MERGE)

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: I0fddd90309af4dc14d35f34fe99ed6e521c0b7c7
/frameworks/base/services/input/EventHub.cpp
3a22fa057091cd6614f58ebc57a7ce4fe29462bb 04-Mar-2011 Jeff Brown <jeffbrown@google.com> 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
/frameworks/base/services/input/EventHub.cpp
e7b2029a0b7b948daf2d6accbc200a56d72f96ca 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Recognize 3D joysticks.

Change-Id: Ie4eae09c0334f69c2ccfcf7eaede075f9ba02eab
/frameworks/base/services/input/EventHub.cpp
56194ebec6212e229f4ccdaa4b187166d20013ef 03-Mar-2011 Jeff Brown <jeffbrown@google.com> Wake screen from external HID peripherals.

Added some plumbing to enable the policy to intercept motion
events when the screen is off to handle wakeup if needed.

Added a basic concept of an external device to limit the scope
of the wakeup policy to external devices only. The wakeup policy
for internal devices should be based on explicit rules such as
policy flags in key layout files.

Moved isTouchEvent to native.

Ensure the dispatcher sends the right event type to userActivity
for non-touch pointer events like HOVER_MOVE and SCROLL.

Bug: 3193114
Change-Id: I15dbd48a16810dfaf226ff7ad117d46908ca4f86
/frameworks/base/services/input/EventHub.cpp
33bbfd2232ea9eaae9a9d87a05a95a430f09bd83 25-Feb-2011 Jeff Brown <jeffbrown@google.com> Add support for mouse hover and scroll wheel.

Dispatch ACTION_HOVER_MOVE and ACTION_SCROLL through the View
hierarchy as onGenericTouchEvent. Pointer events dispatched
this way are delivered to the view under the pointer. Non-pointer
events continue to be delivered to the focused view.

Added scroll wheel support to AbsListView, ScrollView,
HorizontalScrollView and WebView. Shift+VSCROLL is translated
to HSCROLL as appropriate.

Added logging of new pointer events in PointerLocationView.

Fixed a problem in EventHub when a USB device is removed that
resulted in a long stream of ENODEV errors being logged until INotify
noticed the device was gone.

Note that the new events are not supported by wallpapers at this time
because the wallpaper engine only delivers touch events.

Make all mouse buttons behave identically. (Effectively we only
support one button.)

Change-Id: I9ab445ffb63c813fcb07db6693987b02475f3756
/frameworks/base/services/input/EventHub.cpp
cc0c159e9b3dd4e0f48da0ce3e33d2c68a651413 19-Feb-2011 Jeff Brown <jeffbrown@google.com> Add new hover move action and scroll wheel plumbing.

Added support for tracking the mouse position even when the mouse button
is not pressed. To avoid confusing existing applications, mouse movements
are reported using the new ACTION_HOVER_MOVE action when the mouse button
is not pressed.

Added some more plumbing for the scroll wheel axes. The values are
reported to Views but they are not yet handled by the framework.

Change-Id: I1706be850d25cf34e5adf880bbed5cc3265cf4b1
/frameworks/base/services/input/EventHub.cpp
6f2fba428ca5e77a26d991ad728e346cc47609ee 19-Feb-2011 Jeff Brown <jeffbrown@google.com> 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
/frameworks/base/services/input/EventHub.cpp
0a9f335e7088ade74d9e3fbc852d052de45603ca 26-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix build.

Change-Id: Id08f3ccced1281f1c6840cc67713bcedcf9a53c0
/frameworks/base/services/input/EventHub.cpp
ab2f09603079534b53499864a403d0ba16aad13b 26-Jan-2011 Jeff Brown <jeffbrown@google.com> am 12b2dc90: am b1e0a870: Merge "Fix crashes caused by some input devices." into honeycomb

* commit '12b2dc90883ef4f930a17907acdef3677b0598a5':
Fix crashes caused by some input devices.
58a2da843f2f22f406df8df1f011738eb8b7fcb1 26-Jan-2011 Jeff Brown <jeffbrown@google.com> Fix crashes caused by some input devices.

The touch screen sometimes reports more than 10 pointers even though that's
all we asked for. When this happens, we start dropping events with more
than 10 pointers. This confuses applications and causes them to crash.
Raised the limit to 16 pointers.
Bug: 3331247

The default behavior was to identify all touch devices as touch screens.
External devices that are plugged in are more likely to be touch pads
not attached to a screen. Changed the default to be a touch pad
and renamed some internal constants to avoid confusion.

A certain mouse happens to also behave like a touch pad. That caused
problems because we would see multiple concurrent traces of motion events
coming from the same input device so we would batch them up.
Added code to ensure that we don't batch events unless they come from
the same *source* in addition to coming from the same *device*.

Due to batching or misbehaving drivers, it's possible for the set of
pointer ids to be different from what we expect when it comes time to
split motion events across windows. As a result, we can generate motion
events with 0 pointers. When we try to deliver those events, we cause
an error in the InputTransport so we tear down the InputChannel and kill
the application.
Added code to check out assumption about pointer ids and drop the
event gracefully instead.

Patched up the tests to take into account the change in default behavior
for identifying touch screens and touch pads.

Change-Id: Ic364bd4cb4cc6335d4a1213a26d6bdadc7e33505
/frameworks/base/services/input/EventHub.cpp
cb1404e45639d20439d7700b06d57ca1a1aad1fa 16-Jan-2011 Jeff Brown <jeffbrown@google.com> Add joystick support to framework.

Change-Id: I95374436708752e1a9cff3f85c5b9bc3e0987961
/frameworks/base/services/input/EventHub.cpp
b4ff35df5c04aec71fce7e90a6d6f9ef7180c2ad 03-Jan-2011 Jeff Brown <jeffbrown@google.com> Mouse pointer integration.

Added support for loading the pointer icon from a resource.

Moved the system server related bits of the input manager out
of libui and into libinput since they do not need to be linked into
applications.

Change-Id: Iec11e0725b3add2b905c51f8ea2c3b4b0d1a2d67
/frameworks/base/services/input/EventHub.cpp