[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