diff --git a/source/InputUtils.cpp b/source/InputUtils.cpp index d910ba1..6eb73fb 100644 --- a/source/InputUtils.cpp +++ b/source/InputUtils.cpp @@ -1,4 +1,5 @@ #include "InputUtils.h" +#include #include #include #include @@ -97,11 +98,15 @@ InputUtils::InputData InputUtils::getControllerInput() { InputData inputData{}; VPADStatus vpadStatus{}; VPADReadError vpadError = VPAD_READ_UNINITIALIZED; - if (VPADRead(VPAD_CHAN_0, &vpadStatus, 1, &vpadError) > 0 && vpadError == VPAD_READ_SUCCESS) { - inputData.trigger = vpadStatus.trigger; - inputData.hold = vpadStatus.hold; - inputData.release = vpadStatus.release; - } + do { + if (VPADRead(VPAD_CHAN_0, &vpadStatus, 1, &vpadError) > 0 && vpadError == VPAD_READ_SUCCESS) { + inputData.trigger = vpadStatus.trigger; + inputData.hold = vpadStatus.hold; + inputData.release = vpadStatus.release; + } else { + OSSleepTicks(OSMillisecondsToTicks(1)); + } + } while (vpadError == VPAD_READ_NO_SAMPLES); KPADStatus kpadStatus{}; KPADError kpadError = KPAD_ERROR_UNINITIALIZED;