Skip to content
  • Louis-Francis Ratté-Boulianne's avatar
    clients: add a new touchscreen calibrator · b79dead1
    Louis-Francis Ratté-Boulianne authored and Pekka Paalanen's avatar Pekka Paalanen committed
    
    
    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: default avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
    Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    v1 Tested-by: default avatarMatt Hoosier <matt.hoosier@gmail.com>
    Reviewed-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
    b79dead1