#include #include #include #include #include #include #include static int fd = -1; static void send_event(int fd, int type, int code, int value, int sec, int usec); static int setup(struct uinput_user_dev *dev, int fd) { ]]> 0) usleep(newtime - last_time); if (write(fd, &event, sizeof(event)) < sizeof(event)) perror("Send event failed."); last_time = newtime; } int main (int argc, char **argv) { if (init_uinput() < 0) { fprintf(stderr, "Failed to initialize /dev/input/uinput. Exiting.\n"); return -1; } printf("Device created. Press CTRL+C to terminate.\n"); run(fd); cleanup_uinput(); return 0; } ]]> if (ioctl(fd, UI_SET_EVBIT, ) == -1) goto error; if (ioctl(fd, UI_SET_KEYBIT, ) == -1) goto error; if (ioctl(fd, UI_SET_RELBIT, ) == -1) goto error; if (ioctl(fd, UI_SET_MSCBIT, ) == -1) goto error; if (ioctl(fd, UI_SET_ABSBIT, ) == -1) goto error; else { int idx = ; dev->absmin[idx] = ; dev->absmax[idx] = ; dev->absfuzz[idx] = ; dev->absflat[idx] = ; if (dev->absmin[idx] == dev->absmax[idx]) dev->absmax[idx]++; } strcpy(dev->name, ""); dev->id.bustype = ; dev->id.vendor = ; dev->id.product = ; dev->id.version = ; send_event(fd, , , , , );