Print EV_REP properties and values of those properties
Needs a bit of special treatment, EV_REP bits are not set by the kernel on EVIOCGBIT as properties between 0 and REP_MAX are always set. Hack around that so the output is preventing EV_REP to appear as an event. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
65520efa7e
commit
a79bb44230
20
evtest.c
20
evtest.c
|
@ -729,6 +729,20 @@ static void print_absdata(int fd, int axis)
|
||||||
printf(" %s %6d\n", absval[k], abs[k]);
|
printf(" %s %6d\n", absval[k], abs[k]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void print_repdata(int fd)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
unsigned int rep[2];
|
||||||
|
|
||||||
|
ioctl(fd, EVIOCGREP, rep);
|
||||||
|
|
||||||
|
for (i = 0; i <= REP_MAX; i++) {
|
||||||
|
printf(" Property code %d (%s)\n", i, names[EV_REP] ? (names[EV_REP][i] ? names[EV_REP][i] : "?") : "?");
|
||||||
|
printf(" Value %6d\n", rep[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print static device information (no events). This information includes
|
* Print static device information (no events). This information includes
|
||||||
* version numbers, device name and all bits supported by this device.
|
* version numbers, device name and all bits supported by this device.
|
||||||
|
@ -767,7 +781,7 @@ static int print_device_info(int fd)
|
||||||
printf("Supported events:\n");
|
printf("Supported events:\n");
|
||||||
|
|
||||||
for (i = 0; i < EV_MAX; i++)
|
for (i = 0; i < EV_MAX; i++)
|
||||||
if (test_bit(i, bit[0])) {
|
if (test_bit(i, bit[0]) && i != EV_REP) {
|
||||||
printf(" Event type %d (%s)\n", i, events[i] ? events[i] : "?");
|
printf(" Event type %d (%s)\n", i, events[i] ? events[i] : "?");
|
||||||
if (!i) continue;
|
if (!i) continue;
|
||||||
ioctl(fd, EVIOCGBIT(i, KEY_MAX), bit[i]);
|
ioctl(fd, EVIOCGBIT(i, KEY_MAX), bit[i]);
|
||||||
|
@ -783,6 +797,10 @@ static int print_device_info(int fd)
|
||||||
memset(propbits, 0, sizeof(propbits));
|
memset(propbits, 0, sizeof(propbits));
|
||||||
ioctl(fd, EVIOCGPROP(sizeof(propbits)), propbits);
|
ioctl(fd, EVIOCGPROP(sizeof(propbits)), propbits);
|
||||||
printf("Properties:\n");
|
printf("Properties:\n");
|
||||||
|
if (test_bit(EV_REP, bit[0])) {
|
||||||
|
printf(" Property type %d (%s)\n", EV_REP, events[EV_REP] ? events[EV_REP] : "?");
|
||||||
|
print_repdata(fd);
|
||||||
|
}
|
||||||
for (i = 0; i < INPUT_PROP_MAX; i++) {
|
for (i = 0; i < INPUT_PROP_MAX; i++) {
|
||||||
if (test_bit(i, propbits))
|
if (test_bit(i, propbits))
|
||||||
printf(" Property type %d (%s)\n", i, props[i] ? props[i] : "?");
|
printf(" Property type %d (%s)\n", i, props[i] ? props[i] : "?");
|
||||||
|
|
Loading…
Reference in New Issue