/* * joystick utility functions */ #include #include #include #include #include #include "joyutils.h" /* ----------------------------------------------------------------- */ static char *type2txt(unsigned char type) { static char temp[100]; if (!(type & JS_EVENT_INIT)) { switch(type) { case JS_EVENT_BUTTON: return "button"; case JS_EVENT_AXIS: return "axis"; } } else { sprintf(temp, "init %d", type & 0x7f); return temp; } return "???"; } void dump_my_joystick(char *joy_device) { int joy_fd, foo; struct js_event js; int flag = 0; unsigned long debut; if( ( joy_fd = open(joy_device , O_RDONLY)) == -1 ) { fprintf(stderr, "%s: couldn't open %s\n", __func__, joy_device); exit(1); } for (;;) { foo = read(joy_fd, &js, sizeof(struct js_event)); if ( ! flag ) { debut = js.time; flag = 1; } if (8 != foo) { fprintf(stderr, "%s: err reading joy\n", __func__); exit(1); } printf("%8lu %4d / %-8s %2d %7d\n", js.time-debut, js.type, type2txt(js.type), js.number, js.value); } } /* ----------------------------------------------------------------- */ /* ----------------------------------------------------------------- */