weston/clients
Louis-Francis Ratté-Boulianne b79dead1dd clients: add a new touchscreen calibrator
The new calibrator uses weston_touch_calibration protocol extension and
provides the following features:

- chooses the physical touch device to be calibrated by DEVPATH or by
  the output/head name; device enumeration provided

- the compositor ensures the calibrator window is shown in the correct
  position and size

- no matter how wrong the old calibration is, the touch events will
  always arrive in the application

- the calibration is complete, not incremental; the received touch
  events are guaranteed to be unmodified

- computes a libinput style calibration matrix directly, not the
  WL_CALIBRATION format

- supports multiple touch devices: calibrate one device at a time, and
  show user feedback on touching a wrong device instead of recording bad
  data

- uses four touch point samples: three to compute the calibration, and
  one to verify the calibration is roughly correct

- consistent exit codes

- upload the new calibration into the server after successful
  and verified calibration

Due to using special touchscreen calibration protocol extension, this
application cannot be tested without touch input from the compositor.

Practically all of the above mentioned are unlike how the old
calibrator client worked.

Co-developed by Louis-Francis and Pekka.

v2:
- improve help() text
- rename wrong_touch_handler() to invalid_touch_handler()
- improve debug prints by adding sample number
- reorganize code into sample funcs vs. touch funcs
- add a state machine to properly process touch and related events

Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb@collabora.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
v1 Tested-by: Matt Hoosier <matt.hoosier@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-30 14:46:24 +03:00
..
calibrator.c calibrator: Make mouse button optional 2017-09-18 12:16:49 +03:00
clickdot.c clients: consolidate timer code part 1 2018-03-12 10:17:18 +02:00
cliptest.c Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
confine.c clients: consolidate timer code part 2 2018-03-12 10:17:22 +02:00
desktop-shell.c clients: consolidate timer code part 2 2018-03-12 10:17:22 +02:00
dnd.c dnd: Abort with an error message if compositor doesn't support drag and drop 2017-12-04 19:03:29 +00:00
editor.c clients: Don't crash when compositor doesn't support drag and drop 2017-12-04 19:03:22 +00:00
eventdemo.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
flower.c client: fix spelling mistake 2016-04-05 16:00:21 -07:00
fullscreen.c clients: Use zalloc 2016-03-09 22:54:54 -08:00
gears.c clients: Update boilerplate from MIT X11 license to MIT Expat licenses 2015-06-15 13:04:18 -07:00
image.c cosmetic: Remove a few double semicolons 2015-10-07 11:22:03 -07:00
ivi-shell-user-interface.c shared: Update all users of DATADIR 2018-02-07 11:39:36 +02:00
keyboard.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
multi-resource.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
nested-client.c clients/nested-client: call eglTerminate/eglReleaseThread at exit 2016-11-21 16:07:32 +00:00
nested.c compositor: fix starvation of wl_buffer::release 2017-09-26 11:22:45 -05:00
presentation-shm.c shared: Add timespec_from_proto helper function 2017-12-18 11:27:43 +02:00
resizor.c weston-resizor: Don't add new frame callbacks every click 2017-12-04 19:21:11 +00:00
scaler.c clients: Fix weston-scaler source-only mode to use integer width and height 2016-11-16 14:46:22 +00:00
screenshot.c screenshot: save screenshot files in XDG_PICTURES_DIR 2018-02-09 15:16:07 +00:00
simple-damage.c clients/simple-damage: Port to xdg_shell unstable v6 2016-08-15 20:15:58 +08:00
simple-dmabuf-drm-data.h clients/simple-dmabuf-drm: import with dmabuf modifiers 2017-06-12 10:39:01 +01:00
simple-dmabuf-drm.c simple-dmabuf-drm: support DRM_FORMAT_LINEAR for NV12 as well 2018-05-29 11:43:03 +03:00
simple-dmabuf-v4l.c simple-dmabuf-v4l: Remove incorrect assert 2017-03-17 13:53:46 +02:00
simple-egl.c clients: simple-egl: Restore window size when un-maximized 2017-12-04 19:40:31 +00:00
simple-im.c simple-im: Rename source file to be consistent with other client tools 2016-10-12 14:03:11 -07:00
simple-shm.c clients/simple-shm: Port to xdg_shell unstable v6 2016-08-15 20:15:58 +08:00
simple-touch.c include stdint.h for int32_t/uint32_t 2016-07-26 16:26:08 -07:00
smoke.c client: fix spelling mistake 2016-04-05 16:00:21 -07:00
stacking.c editor: Drop g_type_init() call 2017-01-16 16:22:13 +01:00
subsurfaces.c clients/subsurfaces: use weston_platform_destroy_egl_surface wrapper 2016-11-21 16:07:19 +00:00
terminal.c terminal: Fix unintended fallthrough to cursor restore 2018-04-05 10:31:20 -05:00
touch-calibrator.c clients: add a new touchscreen calibrator 2018-05-30 14:46:24 +03:00
transformed.c clients: Update boilerplate from MIT X11 license to MIT Expat licenses 2015-06-15 13:04:18 -07:00
weston-info.c weston-info: destroy wl_keyboard 2018-05-29 13:34:46 +03:00
window.c clients: add a new touchscreen calibrator 2018-05-30 14:46:24 +03:00
window.h clients: add a new touchscreen calibrator 2018-05-30 14:46:24 +03:00