#include #include #include #include /* struct input_event { struct timeval time; unsigned short type; // EV_REL, REL_KEY unsigned short code; // REL_X KEY_BACKSPACE unsigned int value; }; */ int main (int argc, char *argv[]) { FILE *f; struct input_event e; int fd; char name[256] = ""; fd = open (argv[1], O_RDWR | O_NONBLOCK); if (fd == -1) exit (1); ioctl (fd, EVIOCGNAME (sizeof(name)), name); printf ("\"%s\"\n", name); close (fd); if (!(f = fopen (argv[1], "r"))) exit (1); printf ("opened event1"); do { if (fread (&e, sizeof(e), 1, f) != 1) break; printf ("%d\t", e.time); switch (e.type) { case EV_SYN: printf ("EV_SYN"); break; case EV_KEY: printf ("EV_KEY"); break; case EV_REL: printf ("EV_REL"); break; case EV_ABS: printf ("EV_ABS"); break; case EV_MSC: printf ("EV_MSC"); break; case EV_LED: printf ("EV_LED"); break; case EV_SND: printf ("EV_SND"); break; case EV_REP: printf ("EV_REP"); break; case EV_FF: printf ("EV_FF "); break; case EV_PWR: printf ("EV_PWR"); break; case EV_FF_STATUS: printf ("EV_FF_STATUS"); break; case EV_MAX: printf ("EV_MAX"); break; default: printf ("%04x", e.type); break; } printf ("\t"); printf ("%04x\t%d\n", e.code, e.value); } while (1); fclose (f); return 0; }