/* wsmouse events dump */ #include #include #include #include #include #include int main(int argc, char *argv[]) { int fd, n; char *dev; struct wscons_event event; if (argc == 2) { dev = argv[1]; } else { dev = "/dev/wsmouse"; } fd = open(dev, O_RDONLY); if (fd < 0) { perror("open"); exit(1); } while (1) { n = read(fd, &event, sizeof(struct wscons_event)); if (n <= 0) { perror("read"); } // printf("device: %#x: ", event.device); switch (event.type) { case WSCONS_EVENT_MOUSE_UP: printf("MOUSE_UP: 0x%x\n", event.value); break; case WSCONS_EVENT_MOUSE_DOWN: printf("MOUSE_DOWN: 0x%x\n", event.value); break; case WSCONS_EVENT_MOUSE_DELTA_X: printf("MOUSE_DELTA_X: %d\n", event.value); break; case WSCONS_EVENT_MOUSE_DELTA_Y: printf("MOUSE_DELTA_Y: %d\n", event.value); break; #ifdef WSCONS_EVENT_MOUSE_DELTA_Z case WSCONS_EVENT_MOUSE_DELTA_Z: printf("MOUSE_DELTA_Z: %d\n", event.value); break; #endif #ifdef WSCONS_EVENT_MOUSE_ABSOLUTE_Z case WSCONS_EVENT_MOUSE_ABSOLUTE_Z: printf("MOUSE_ABSOLUTE_Z: %d\n", event.value); break; #endif case WSCONS_EVENT_MOUSE_ABSOLUTE_X: printf("MOUSE_ABSOLUTE_X: %d\n", event.value); break; case WSCONS_EVENT_MOUSE_ABSOLUTE_Y: printf("MOUSE_ABSOLUTE_Y: %d\n", event.value); break; case WSCONS_EVENT_SYNC: printf("SYNC\n"); break; default: printf("unknown event type 0x%x, value 0x%x\n", event.type, event.value); } } }