#include <stdio.h>
#include <string.h>
#include <fcntl.h>

#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/joystick.h>





int main();





int main()
{
        int             fd;
        struct js_event e;
        int             ret;
        char            number_of_axes;
        char            number_of_buttons;
        int             joy_driver_version;
        char            joy_name[255];


        fd = open("/dev/js0", O_RDONLY);
        if(fd == -1)
        {
                perror("FATAL ERROR while opening /dev/js0");
                exit(1);
        }

        printf("fd = %d\n", fd);

        ioctl(fd, JSIOCGAXES,    &number_of_axes);
        ioctl(fd, JSIOCGBUTTONS, &number_of_buttons);
        ioctl(fd, JSIOCGVERSION, &joy_driver_version);
        if(ioctl(fd, JSIOCGNAME(sizeof(joy_name)), joy_name) < 0)
                strncpy(joy_name, "Unknown", sizeof(joy_name));





        printf("axes    = %d\n", number_of_axes);
        printf("buttons = %d\n", number_of_buttons);
        printf("version = %x\n", joy_driver_version);
        printf("name    = %s\n\n", joy_name);


        for(;;)
        {

                ret = read(fd, &e, sizeof(struct js_event));

                printf("ret      = %d\n", ret);
                printf("e.time   = %d\n", e.time);
                printf("e.value  = %d\n", e.value);
                printf("e.type   = 0x%x\n", e.type);
                printf("e.number = %d\n\n", e.number);
        }


        return(0);

} /* int main() */
