New output:
hid: [
0x05, 0x0d, 0x09, 0x04, 0xa1, 0x01, 0x85, 0x01, 0x09, 0x22, 0xa1, 0x02, 0x09, 0x42, 0x15, 0x00,
0x25, 0x01, 0x75, 0x01, 0x95, 0x01, 0x81, 0x02, 0x75, 0x01, 0x81, 0x03, 0x75, 0x06, 0x09, 0x51,
0x25, 0x3f, 0x81, 0x02, 0x26, 0xff, 0x00, 0x75, 0x08, 0x09, 0x48, 0x81, 0x02, 0x09, 0x49, 0x81,
...
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
while ((len = read(fd, buf, sizeof(buf))) > 0) {
for (int i = 0; i < len; i++) {
- iprintf(dev->fp, I_NONE, "%s0x%02x", sep, buf[i]);
+ /* We can't have a trailing comma, so our line-break
+ * handling is awkward.
+ * For a linebreak: print the comma, break, indent,
+ * then just the hex code.
+ * For the other values: print the comma plus the
+ * hex code, unindented.
+ */
+ if (i % 16 == 0) {
+ iprintf(dev->fp, I_NONE, "%s\n", sep);
+ iprintf(dev->fp, I_DEVICE, " ");
+ iprintf(dev->fp, I_NONE, "0x%02x", buf[i]);
+ } else {
+ iprintf(dev->fp, I_NONE, "%s0x%02x", sep, buf[i]);
+ }
sep = ", ";
}
}
- iprintf(dev->fp, I_NONE, "]\n");
+ iprintf(dev->fp, I_NONE, "\n");
+ iprintf(dev->fp, I_DEVICE, "]\n");
close(fd);
}