#include "lib/src/libultra_internal.h" #include "lib/src/osContInternal.h" #include "controller_recorded_tas.h" #include "controller_keyboard.h" #include "controller_sdl.h" #include "controller_tas_recorder.h" static struct ControllerAPI *controller_implementations[] = { &controller_recorded_tas, &controller_sdl, &controller_keyboard, &controller_tas_recorder, }; s32 osContInit(OSMesgQueue *mq, u8 *controllerBits, OSContStatus *status) { for (size_t i = 0; i < sizeof(controller_implementations) / sizeof(struct ControllerAPI *); i++) { controller_implementations[i]->init(); } *controllerBits = 1; return 0; } s32 osContStartReadData(OSMesgQueue *mesg) { return 0; } void osContGetReadData(OSContPad *pad) { pad->button = 0; pad->stick_x = 0; pad->stick_y = 0; pad->errnum = 0; for (size_t i = 0; i < sizeof(controller_implementations) / sizeof(struct ControllerAPI *); i++) { controller_implementations[i]->read(pad); } }