[PATCH weston 00/25] A new touchscreen calibrator

Jason Gerecke killertofu at gmail.com
Fri Mar 23 16:33:10 UTC 2018


Nice! Do you think its reasonable to extend the allowed use of this
protocol to other kinds of direct-input devices? I don't see anything
which would prevent this protocol from working equally well to
calibrate the pen input for a tablet PC or Cintiq for example. The
compositor would need to obviously have pen support and notify the
client of the device in a "touch_device" event, but otherwise it looks
like the client doesn't really have to care about the underlying
device -- the protocol provides its own definition of down/up/motion
events. Just the documentation would need to be tweaked.

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one  /
(That is to say, eight) to the two,     /
But you can’t take seven from three,    /
So you look at the sixty-fours....


On Fri, Mar 23, 2018 at 5:00 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>
> Hi all,
>
> the existing touchscreen calibrator in Weston has several problems. This
> proposal intends to solve them all by introducing a new protocol
> extension for touchscreen calibration and a new calibrator tool.
>
> The benefits of the new tool, which the old tool lacks, are:
>
> - You can unambiguously pick a physical touch device to calibrate.
>
> - You can be sure your touch events come only from that particular
>   device, and that you cannot miss touch events even if the current
>   calibration is horribly wrong.
>
> - You can be sure the calibration window (pattern) is shown on the right
>   output with the right coordinates.
>
> - You can unambiguously calibrate even multiple touchscreens that are
>   all cloned (showing the same image).
>
> - You get a libinput style calibation matrix instead of the
>   WL_CALIBRATION format which depends on output resolution.
>
> - You can load a new calibration into the compositor without playing
>   tricks with udev or restarting the compositor.
>
> There is more discussion about the topic at:
> https://phabricator.freedesktop.org/T7868
>
> This patch series depends on the clone mode series:
> https://patchwork.freedesktop.org/series/32898/
>
> There is a full branch available at:
> https://gitlab.collabora.com/pq/weston/commits/touchcalib-1
>
> This series contains many patches that could be landed separately, but I
> have not pulled them out at this point.
>
> A notable single patch is patch 3 which deprecates the udev property
> WL_CALIBRATION. It is completely already superseded by
> LIBINPUT_CALIBRATION_MATRIX property. I would hope to remove
> WL_CALIBRATION support after few releases and the old calibrator tool
> with it.
>
> Patch 21 adds the touchscreen calibration protocol, patch 24 adds the
> new calibrator tool, and patch 25 gives suggestions on how to let the
> server permanently store a new calibration into udev rules.
>
> As LIBINPUT_CALIBRATION_MATRIX is automatically handled by libinput,
> being a description of the physical input device (like e.g. mouse dpi),
> it perfectly possible to run Weston and the calibrator once to calibrate
> your touchscreens, and then run whatever compositor you want.
>
> One major thing this patch series does not address is how a Wayland
> client gets authorized to use the touchscreen calibration interface. The
> interface offers two privileged actions: the ability to grab all touch
> input (but with provision for the server to cancel at will - not
> implemented in weston so far), and the ability to upload a new
> calibration for a touch device. Obviously these should not be free for
> all. The method implemented here is a simple global configuration
> setting to advertise or not the touchscreen calibration interface. If
> advertised, it is free for all. Therefore it is not advertised by
> default.
>
>
> Thanks,
> pq
>
>
> Louis-Francis Ratté-Boulianne (7):
>   input: introduce weston_touch_device
>   libweston: fix weston_touch_start_grab() arg name
>   input: move touchpoint counting up
>   input: introduce touch event mode for calibrator
>   libweston: implement touch calibration protocol
>   weston: add touchscreen_calibrator option
>   clients: add a new touchscreen calibrator
>
> Pekka Paalanen (18):
>   libinput: remove evdev_device::devnode
>   libinput: note if calibrating without an output
>   libinput: deprecate WL_CALIBRATION
>   libinput: log input device to output associations
>   libinput: make setting the same output a no-op
>   libinput: allow evdev_device_set_output(dev, NULL)
>   libinput: use head names for output matching
>   libweston: require connected heads for input devices
>   libinput: do not switch output associations on disable
>   man: document WESTON_LIBINPUT_LOG_PRIORITY env
>   tests: add test_seat_release() for symmetry
>   libinput: move calibration printing into do_set_calibration()
>   libweston: notify_touch API to use weston_touch_device
>   libweston: unexport weston_{pointer,keyboard,touch}_{create,destroy}()
>   libweston: introduce notify_touch_cal() and doc
>   input: do not forward unmatched touch-ups
>   protocol: add weston_touch_calibration
>   doc: add example calibration-helper script
>
>  .gitignore                            |   1 +
>  Makefile.am                           |  21 +-
>  clients/touch-calibrator.c            | 774 ++++++++++++++++++++++++++++++++++
>  clients/window.c                      |   4 +-
>  clients/window.h                      |   4 +
>  compositor/main.c                     |  68 +++
>  doc/calibration-helper.bash           |  44 ++
>  libweston/compositor-wayland.c        |  31 +-
>  libweston/compositor.c                |  32 ++
>  libweston/compositor.h                | 174 +++++++-
>  libweston/input.c                     | 330 +++++++++++++--
>  libweston/libinput-device.c           | 238 ++++++++---
>  libweston/libinput-device.h           |   4 +-
>  libweston/libinput-seat.c             |  88 +++-
>  libweston/libinput-seat.h             |   1 +
>  libweston/touch-calibration.c         | 667 +++++++++++++++++++++++++++++
>  man/weston-drm.man                    |   4 +
>  man/weston.ini.man                    |  36 ++
>  protocol/weston-touch-calibration.xml | 320 ++++++++++++++
>  tests/weston-test.c                   |  64 ++-
>  20 files changed, 2771 insertions(+), 134 deletions(-)
>  create mode 100644 clients/touch-calibrator.c
>  create mode 100755 doc/calibration-helper.bash
>  create mode 100644 libweston/touch-calibration.c
>  create mode 100644 protocol/weston-touch-calibration.xml
>
> --
> 2.16.1
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list