Commit Graph

11 Commits

Author SHA1 Message Date
Peter Hutterer bffe41fbb6 protocol: handle 0xb3 automatically
0xb3 is the generic error code (or success, where applicable). Let's handle
those by default so that the rest of the messages only have to care about
replies with message-specific opcodes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-29 12:38:21 +10:00
Peter Hutterer 6e4b190169 protocol: rename a few protocol messages to better reflect what they do
0xc3 is 'download the oldest file'
0xca is 'delete the oldest file' (usually the one we just received) from the tablet.
0xc1 is 'how many files are there'

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-22 09:59:14 +10:00
Peter Hutterer 8690e305cf test: ignore empty files
Some raw log files may be empty if we cancelled tuhi at the wrong time. Skip
over those while testing

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-22 09:50:40 +10:00
Peter Hutterer 6c94898458 test: print the file name that triggered an exception on error
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-22 09:50:40 +10:00
Peter Hutterer 31d352bb1f test: remove unused idx variable
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-22 09:50:40 +10:00
Peter Hutterer e420b04fda protocol: add stroke parsing
This is a slightly different model as the messages, primarily because it's not
quite as model-specific. So there's only one parse function and it can handle
both file types that we currently support (intuos pro and the spark/slate
bits).

All wrapped into their own classes to make future extensions a bit easier.
It's not a 1:1 implementation of the tuhi/wacom.py bits either because we now
know about a few extra bits like the flags in stroke headers.

Most importantly though, this can be easily tested now, with one test case
searching for raw logs in $XDG_DATA_HOME/tuhi/raw and parsing all of those. So
the more files are sitting in there (i.e. the more the tablet is used), the
better the test suite becomes.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-21 09:31:52 +02:00
Peter Hutterer 643dd34476 protocol: add the message for getting the point size
The dimensions of the tablet are in device units, the point size tells us how
big the actual tablet is.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-20 12:02:30 +10:00
Peter Hutterer 57aa0de954 protocol: the spark doesn't support get width/height
Let's make those noop messages that return the hardcoded width/height instead.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-20 12:02:30 +10:00
Peter Hutterer ff2618e68a protocol: add helper functions for converting to/from little endians
A few messages where we assumed the argument is a single byte are actually
little-endian 16 bits. let's add easy-to-use wrappers.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-20 12:02:30 +10:00
Peter Hutterer d73da09e26 protocol: 0xc7 on the spark seems to be in big-endian
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-15 15:10:25 +10:00
Peter Hutterer 3d5c0aa23c test: add unit-testing for the various protocol messages
This only tests for the success cases, but at least we know that path is
executed.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2019-08-14 07:37:30 +10:00