}
usleep(30 * 1000);
+
trace(1, "Sending: ");
- if (trace_level >= 3)
- print_hex(msg->data + 1, datalen(msg->data) - 1);
- if (trace_level >= 2)
- print_ascii(msg->data + 1, datalen(msg->data) - 1);
+ print_hex(3, msg->data + 1, datalen(msg->data) - 1);
+ print_ascii(2, msg->data + 1, datalen(msg->data) - 1);
ret = hiddev_write(msg->data, fd, usage_code);
if (ret)
memcpy(msg->data, buf, sizeof(buf));
memset(&msg->data[sizeof(buf)], 0, sizeof(msg->data)-sizeof(buf));
+
trace(2, "Got data %d: ", datalen(buf));
- if (trace_level >= 3)
- print_hex(buf, datalen(buf));
- if (trace_level >= 2)
- print_ascii(buf, datalen(buf));
+ print_hex(3, buf, datalen(buf));
+ print_ascii(2, buf, datalen(buf));
err:
return 0;
}
return 0;
err2:
- printf("HIDIOCSREPORT\n");
+ trace(0, "HIDIOCSREPORT\n");
err:
- printf("Error in IOCTL: %m\n");
+ trace(0, "Error in IOCTL: %m\n");
return rc;
}
rc = ioctl(fd, HIDIOCGUCODE, &uref);
if (rc < 0) {
- printf("Error gettin usage code: %m\n");
+ trace(0, "Error gettin usage code: %m\n");
return rc;
}
return len + 1;
}
-void print_hex(const unsigned char *data, int len)
+void print_hex(int level, const unsigned char *data, int len)
{
int i;
for (i = 0; i < len; i++)
- printf("0x%02x ", data[i]);
+ trace(level, "0x%02x ", data[i]);
- printf("\n");
+ trace(level, "\n");
}
-void print_ascii(const unsigned char *data, int len)
+void print_ascii(int level, const unsigned char *data, int len)
{
int i;
for (i = 0; i < len; i++)
- printf("%c", is_printable(data[i]) ? data[i] : '.');
+ trace(level, "%c", is_printable(data[i]) ? data[i] : '.');
- printf("\n");
+ trace(level, "\n");
}
void sanitize_ascii(unsigned char *data, int len)
} while (0)
int datalen(const unsigned char *data);
-void print_hex(const unsigned char *data, int len);
-void print_ascii(const unsigned char *data, int len);
+void print_hex(int level, const unsigned char *data, int len);
+void print_ascii(int level, const unsigned char *data, int len);
void sanitize_ascii(unsigned char *data, int len);
#endif