tools/record: add support for hidraw recording
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 18 Feb 2021 04:20:22 +0000 (14:20 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 5 May 2021 03:59:34 +0000 (03:59 +0000)
commitcf1abf08186f607b20bd7fdec32b7ab16378f1aa
treeb60c100ba9874b697b706679fa51e43f13890373
parentf1b16c18e5f33c590e8c9e643ed53effe73cbc51
tools/record: add support for hidraw recording

New commandline switch --with-hidraw. This will open all hidraw devices
associated with this device and add any reports to the output in the
form:

  events:
    - hid:
        time: [0, 0]
        hidraw1: [0x01, 0x02, 0x03, 0x05, 0x06]
hidraw2: [0x07, 0x08, 0x09, 0x0a, 0x0b]
    - evdev:
      ...

i.e. there's a nesting of `hid` with a list of reports, each with the hidraw
node as dictionary entry.

Because hidraw events do not have timestamps and always occur before the evdev
events, they are in a separate frame (as shown above). We could try to figure
out how to match them with the upcoming evdev frame but it's not worth it for
now.

The timestamp itself is a special key in the hidraw with the timestamp from
clock_gettime.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
completion/zsh/_libinput
tools/libinput-record.c
tools/libinput-record.man
tools/test_tool_option_parsing.py