7 #include <linux/input.h>
9 int main(int argc, char **argv)
12 struct input_event iev;
16 fprintf(stderr, "usage: evcat [-gd] FILE\n");
20 while((c = getopt(argc, argv, "gd")) > 0) {
32 if((fd = open(argv[optind], O_RDONLY)) < 0) {
36 if(grab && ioctl(fd, EVIOCGRAB, 1)) {
41 ret = read(fd, &iev, sizeof(iev));
49 printf("%010lu.%06lu:\t", iev.time.tv_sec, iev.time.tv_usec);
61 printf("%04x", iev.code);
65 printf("key\t%i\t%i", iev.code, iev.value);
71 printf("x\t%04i", iev.value);
74 printf("y\t%04i", iev.value);
77 printf("z\t%04i", iev.value);
80 printf("rx\t%04i", iev.value);
83 printf("ry\t%04i", iev.value);
86 printf("rz\t%04i", iev.value);
89 printf("hwheel\t%04i", iev.value);
92 printf("dial\t%04i", iev.value);
95 printf("wheel\t%04i", iev.value);
98 printf("misc\t%04i", iev.value);
106 printf("x\t%04i", iev.value);
109 printf("y\t%04i", iev.value);
112 printf("z\t%04i", iev.value);
115 printf("rx\t%04i", iev.value);
118 printf("ry\t%04i", iev.value);
121 printf("rz\t%04i", iev.value);
124 printf("throttle\t%04i", iev.value);
127 printf("rudder\t%04i", iev.value);
130 printf("wheel\t%04i", iev.value);
133 printf("gas\t%04i", iev.value);
136 printf("brake\t%04i", iev.value);
139 printf("pressure\t%04i", iev.value);
142 printf("distance\t%04i", iev.value);
145 printf("tilt-x\t%04i", iev.value);
148 printf("tilt-y\t%04i", iev.value);
151 printf("width\t%04i", iev.value);
154 printf("volume\t%04i", iev.value);
157 printf("misc\t%04i", iev.value);
165 printf("serial\t%i", iev.value);
168 printf("pled\t%i", iev.value);
171 printf("gesture\t%i", iev.value);
174 printf("raw\t%i", iev.value);
177 printf("scan\t%i", iev.value);
194 printf("%i\t", iev.code);
197 printf("%i", iev.value);
200 printf("sound\t%i\t%i", iev.code, iev.value);
212 printf("%i\t", iev.code);
215 printf("%i", iev.value);
218 printf("%04x %04x %08x", iev.type, iev.code, iev.value);
223 printf("%010lu.%06lu: %04x %04x %08x\n", iev.time.tv_sec, iev.time.tv_usec, iev.type, iev.code, iev.value);
227 if(grab && ioctl(fd, EVIOCGRAB, 0)) {
228 perror("EVIOC(un)GRAB");