struct wmplugin_data *wmplugin_exec(int mesg_count, union cwiid_mesg mesg[], struct timespec *timestamp) { int i; enum cwiid_ext_type ext_type = CWIID_EXT_NONE; struct wmplugin_data *ret = NULL; for (i=0; i < mesg_count; i++) { switch (mesg[i].type) { case CWIID_MESG_STATUS: if ((mesg[i].status_mesg.ext_type == CWIID_EXT_NUNCHUK) && (ext_type != CWIID_EXT_NUNCHUK)) { if (cwiid_get_acc_cal(wiimote, CWIID_EXT_NUNCHUK, &acc_cal)) { wmplugin_err(plugin_id, "calibration error"); } } ext_type = mesg[i].status_mesg.ext_type; break; case CWIID_MESG_NUNCHUK: process_nunchuk(&mesg[i].nunchuk_mesg); ret = &data; break; default: break; } } return ret; }
struct wmplugin_data *wmplugin_exec(int mesg_count, union cwiid_mesg mesg[]) { int i; struct wmplugin_data *ret = NULL; for (i=0; i < mesg_count; i++) { switch (mesg[i].type) { case CWIID_MESG_NUNCHUK: process_nunchuk(&mesg[i].nunchuk_mesg); ret = &data; break; default: break; } } return ret; }