History log of /frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
7b5be760f13cbec3ee4996016d7a609174ccd8ce 26-Jul-2017 Kevin Schoedel <kpschoedel@google.com> Remove constraint on touch location.

InputFlinger does accept and handle 'off-screen' touch input,
and it is sometimes useful, for instance for drag scrolling.

Bug: 64063111
Test: manual on device
Change-Id: I62baf4e01c583c10853518de4b87769aad29dab7
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
b2990034866e4f2cce6166b1c1d77dec27770686 15-Jun-2017 Kevin Schoedel <kpschoedel@google.com> Fix virtual touchpad scroll events.

1. Correctly configure the uinput device to pass REL_*WHEEL events.

2. Configure the virtual touchpad as a 'rotary encoder', which is
an inputflinger device class originally provided for the G1 scroll
ball. This provides two advantages over the default mouse-wheel
interpretation:
- It works without an associated mouse pointer to determine the
event target.
- It allows for higher resolution through a scale factor (the
scaling here is chosen by experiment to feel no worse than wheel
mode, but might benefit from future adjustment).
There is one accompanying disadvantage: inputflinger only handles
vertical scrolling (REL_WHEEL) and ignores the horizontal axis
(REL_HWHEEL).

Bug: 62632827
Test: manual on sailfish
Change-Id: Ic8edad01796d75e8c94fa20f05a5badb0727a948
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
d8fccf0124b78230ae2071fecc6bc6aebe8c540c 05-Jun-2017 Kevin Schoedel <kpschoedel@google.com> Add DVR API for scroll event injection.

Bug: 62226675
Test: manual, vrcore build
Change-Id: Ic7d329eba8003b0e294b3a11a83ed5f868b801f8
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
fa5cf46ac7b84cc20bf29e5b8c298a84b407b1e3 05-Apr-2017 Santos Cordon <santoscordon@google.com> Add uniqueId to Virtual Display and pass through to inputflinger (2/2)

This CL adds:
1) Adds uniqueId (protected via system/sig permission) to virtual
displays.
2) Add support for N virtual display viewports into inputflinger.
3) Set the virtual display's viewports in inputflinger if it has the
uniqueId value set to non-null. (a) Moving the new viewport from java to
native inputflinger and (b) adding "uniqueId" value to viewports makes
up the great majority of this change.
4) From the inputflinger side, we also read in a new value from the
input device configuration files called 'touch.displayId'.
5) When touch.displayId and the virtual display's uniqueId match,
inputflinger links the two.

Test: Start VR and ensure that the virtual viewport shows up when running
'adb shell dump input". Run a VR app, and ensure that the virtual input
device is associated with the new virtual viewport.

Bug: 36051620
Change-Id: I662f09f863a3dc94c570e7e7f30b83888b3f514c
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
de1cdaebc9b8fdbc5348e6c07f849b74bacc485d 17-Mar-2017 Kevin Schoedel <kpschoedel@google.com> Add C interface for virtual touchpad client.

For use by the dvr api.

Changes VrWindowManager::ShellView to exercise this change,
and because it will be used when that code relocates to VrCore.

Bug: 36050790
Test: use in vr_wm.
Change-Id: I0fa67d19f94939ae41ef0ea2338f92f6147a4111
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
0108af72a8d8d2ee2af127b4c099b340ad63e3f8 09-Mar-2017 Kevin Schoedel <kpschoedel@google.com> Support multiple virtual touchpads.

The service now creates two uinput devices, named
"vr virtual touchpad 0" for VirtualTouchpad::PRIMARY
and "vr virtual touchpad 1" for VirtualTouchpad::VIRTUAL.

Bug: b/35992608
Test: expanded VirtualTouchpad_test unit test
Change-Id: I8749d559a56cfa9c8ec9a039ff7ad44d16f81915
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
4b64dd48b6896d6b963f0a3a0259d3d2a7076a9e 07-Mar-2017 Kevin Schoedel <kpschoedel@google.com> Revise virtual touchpad interface.

- Explicit start and stop, outside of which the evdev devices
don't exist.
- Permission test (not compiled by default pending build & SELinux
support for temporarily retaining a second copy of the service
for vr_wm).
- Enforce a single user of the touchpad.
- Support 'dumpsys'.

Bug: 36051900
Test: log inspection
Change-Id: I038ed2632d5adf50a3565a981031691d5dc5f7cd
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
3002b8a74431dd7c005269cf9306443a4b4963f1 06-Mar-2017 Kevin Schoedel <kpschoedel@google.com> Interface for multiple virtual touchpads.

This passes the touchpad selection across binder, but does not yet
actually implement multiple touchpad devices.

Bug: b/35992608
Test: primary only in VirtualTouchpad_test
Change-Id: I7529735362e0e38805b9c0e52e07b5efc86bd535
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp
89af70bce420f011adfeb0f80984b3895c4d7d9b 04-Mar-2017 Kevin Schoedel <kpschoedel@google.com> Provide a library interface to the virtual touchpad service.

And make VrWindowManager pay for^H^H^H^H^H^H^H^H use it. The library
interface is a step toward moving 2D embedding into VrCore because it
hides the binder connection that isn't directly accessible to VrCore.

As a matter of implementation, the touchpad-service client library
and the low-level evdev touchpad are derived from the same interface.

Bug: b/35990873
Test: VirtualTouchpad_test; integration TBD.
Change-Id: Ic922ff223ddd5a44f6fb4433a271f8341e93a0e7
/frameworks/native/services/vr/virtual_touchpad/VirtualTouchpadEvdev.cpp