Merge lp://qastaging/~andreas-pokorny/mir/evdev-input-platform into lp://qastaging/mir
Status: | Work in progress |
---|---|
Proposed branch: | lp://qastaging/~andreas-pokorny/mir/evdev-input-platform |
Merge into: | lp://qastaging/mir |
Diff against target: |
3273 lines (+2839/-12) 54 files modified
include/platform/mir/input/device_capability.h (+50/-0) include/platform/mir/input/input_device.h (+60/-0) include/platform/mir/input/input_device_registry.h (+49/-0) include/platform/mir/input/input_event_handler_register.h (+80/-0) include/platform/mir/input/input_report.h (+8/-4) include/platform/mir/input/input_sink.h (+43/-0) include/platform/mir/input/platform.h (+128/-0) platform-ABI-sha1sums (+7/-0) server-ABI-sha1sums (+7/-0) src/CMakeLists.txt (+4/-0) src/include/common/mir/find_best.h (+67/-0) src/include/common/mir/flags.h (+118/-0) src/platform/CMakeLists.txt (+2/-0) src/platforms/CMakeLists.txt (+13/-0) src/platforms/evdev/CMakeLists.txt (+24/-0) src/platforms/evdev/android_device_provider.cpp (+48/-0) src/platforms/evdev/android_device_provider.h (+42/-0) src/platforms/evdev/evdev_device_detection.cpp (+163/-0) src/platforms/evdev/evdev_device_detection.h (+35/-0) src/platforms/evdev/evdev_input_device_factory.cpp (+58/-0) src/platforms/evdev/evdev_input_device_factory.h (+52/-0) src/platforms/evdev/input_device_factory.h (+50/-0) src/platforms/evdev/input_device_provider.h (+59/-0) src/platforms/evdev/libinput_device_provider.cpp (+67/-0) src/platforms/evdev/libinput_device_provider.h (+42/-0) src/platforms/evdev/platform.cpp (+179/-0) src/platforms/evdev/platform.h (+69/-0) src/platforms/input-platform-symbols.map (+7/-0) src/server/report/logging/input_report.cpp (+18/-0) src/server/report/logging/input_report.h (+4/-0) src/server/report/lttng/input_report.cpp (+10/-0) src/server/report/lttng/input_report.h (+3/-0) src/server/report/lttng/input_report_tp.h (+19/-1) src/server/report/null/input_report.cpp (+8/-0) src/server/report/null/input_report.h (+3/-0) tests/include/mir_test_doubles/mock_input_device_registry.h (+46/-0) tests/include/mir_test_doubles/mock_input_event_handler_register.h (+62/-0) tests/include/mir_test_framework/executable_path.h (+2/-0) tests/mir_test_framework/CMakeLists.txt (+6/-0) tests/mir_test_framework/executable_path.cpp (+27/-0) tests/mir_test_framework/udev_recordings/joystick-detection.ioctl (+25/-0) tests/mir_test_framework/udev_recordings/joystick-detection.umockdev (+351/-0) tests/mir_test_framework/udev_recordings/mt-screen-detection.ioctl (+28/-0) tests/mir_test_framework/udev_recordings/mt-screen-detection.umockdev (+44/-0) tests/mir_test_framework/udev_recordings/synaptics-touchpad.ioctl (+0/-7) tests/unit-tests/CMakeLists.txt (+2/-0) tests/unit-tests/input/CMakeLists.txt (+1/-0) tests/unit-tests/input/evdev/CMakeLists.txt (+13/-0) tests/unit-tests/input/evdev/test_android_device_provider.cpp (+83/-0) tests/unit-tests/input/evdev/test_evdev_device_detection.cpp (+86/-0) tests/unit-tests/input/evdev/test_evdev_input_device_factory.cpp (+106/-0) tests/unit-tests/input/evdev/test_libinput_device_provider.cpp (+82/-0) tests/unit-tests/input/evdev/test_platform.cpp (+207/-0) tests/unit-tests/test_find_best.cpp (+72/-0) |
To merge this branch: | bzr merge lp://qastaging/~andreas-pokorny/mir/evdev-input-platform |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt | Needs Fixing | ||
Cemil Azizoglu (community) | Needs Resubmitting | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Robert Carr (community) | Needs Information | ||
Kevin DuBois (community) | Abstain | ||
Review via email:
|
Commit message
Adds the first pieces of the evdev input platform.
Those include platform interfaces for dealing with added and removed devices, and sending input events into the system. Evdev device detection to decide which code base should be used for handling the event stream. The decision is made between the android input code already existing in mir and libinput. Many of the added tests make use of recorded umockdev files. This commit fixes empty ioctl return values from the recorded synaptic touch pad and adds a multi touch screen and a joystick to the devices.
The evdev input platform is not installed until the input parts of libmirserver are changed to make use of it.
Description of the change
This change adds the basic interfaces for having input platforms, and implements the framework for an evdev input platform. Several parts are still left out, and the input platform is not yet loaded by the DefaultServerCo
Relevant Interfaces:
* mir::input::Plaform - the entry point for the server to deal with a input platform
* mir::input:
* mir::input:
* mir::input:
* mir::input:
Those three interfaces above are part of the input mocking/stubbing story for acceptance testing the server or possible shells.
Follow up steps:
* libinput integration through the LibInputDeviceP
lp:~andreas-pokorny/mir/libinput-integration)
* similar integration of the EventHub/
* Smaller cleanup of EventHub and InputReader
Unmerged revisions
- 2127. By Andreas Pokorny
-
merge sha1sums conflicts
- 2126. By Andreas Pokorny
-
do not install evdev platform yet
- 2125. By Andreas Pokorny
-
Temporary move the evdev platform test to unit-tests until we have a better solution for running umockdev tests
- 2124. By Andreas Pokorny
-
merge lp:mir
- 2123. By Andreas Pokorny
-
add flags template and rename DeviceClass enumeration
- 2122. By Andreas Pokorny
-
reame EventSink to the more specific InputSink
- 2121. By Andreas Pokorny
-
install to install
- 2120. By Andreas Pokorny
-
install evdev recordings for integration tests
- 2119. By Andreas Pokorny
-
deactivating keyboard support for now - in later mps this would interfere
with cross-device modifier handling, which is currently burried inside EventHub
and needs lifting to a more central location. - 2118. By Andreas Pokorny
-
borrowed path resolution functions from lp:server-platform-probing.
input-evdev is as an intermediate step only installed with mir-test-tools
64 +++ include/ platform/ mir/input/ event_sink. h event_sink. h
this is the same interface as
src/client/
364 +extern "C" typedef std::unique_ ptr<Platform> (*CreatePlatofr m)(
153 + // add devie info here..
typos
264 + std::initialize r_list< int> fds,
Fds should be mir::Fd to better manage the lifetime of the FD.
145 +class InputDevice
class name doesnt make sense to me for what the group of functions is doing, but this might be a side effect of the "Multiplexer" naming comment.
349 + * The \a input_device_ registry should be informed about input device changes using the MainLoop \a loop. devices( Multiplexer& loop, std::shared_ ptr<InputDevice Registry> const& input_device_ registry) = 0;
350 + */
351 + virtual void start_monitor_
Does the comment need updating? MainLoop doesn't seem related