#include #include #include typedef struct { unsigned hid; signed int value; } hiddev_event; main(){ ssize_t bytesread; int FILEDES; hiddev_event *buffer; buffer=(hiddev_event *)malloc(sizeof(hiddev_event)); FILEDES=open("/dev/usb/hiddev0",O_RDONLY); bytesread=1; while(bytesread>0){ bytesread=read(FILEDES,buffer,sizeof(hiddev_event)); if(bytesread!=sizeof(hiddev_event)){ printf("Error in labtec-hid! Read %d of expected %d bytes!\n", bytesread,sizeof(hiddev_event)); exit(1); } if(buffer->hid == 786665) { if(buffer->value == 1 ) { /* printf("UP\n"); */ system("aumix -v +"); } } else if (buffer->hid == 786666) { if(buffer->value == 1 ) { /* printf("DOWN\n"); */ system("aumix -v -"); } } else { printf("Unknown event bytes=%d hid=%d value=%d\n", bytesread,buffer->hid,buffer->value); } } }