void process_controller_events(gl_t *state, int controller_fd) { struct input_event events[10]; int bytes, i, length; // Read in events bytes = read(controller_fd, events, sizeof(events)); if(bytes > 0) { length = bytes/sizeof(struct input_event); // Process events based on type for(i=0; i<length; i++) { switch(events[i].type) { case EV_KEY: handle_key(state, &events[i]); break; case EV_ABS: handle_joystick(state, &events[i]); break; case EV_REL: handle_mouse(state, &events[i]); break; } } } }
void handle_joysticks() { for (unsigned i = 0; i < joysticks.size(); i++) if (joysticks[i]) handle_joystick(joysticks[i]); }