Minor simplification to ctrl buffer updates.

This commit is contained in:
Unknown W. Brackets 2013-11-16 14:00:42 -08:00
parent 39cd7f812a
commit d7d0242225

View file

@ -195,10 +195,8 @@ void __CtrlSetRapidFire(bool state)
emuRapidFire = state;
}
int __CtrlReadSingleBuffer(u32 ctrlDataPtr, bool negative)
int __CtrlReadSingleBuffer(PSPPointer<_ctrl_data> data, bool negative)
{
PSPPointer<_ctrl_data> data;
data = ctrlDataPtr;
if (data.IsValid())
{
*data = ctrlBufs[ctrlBufRead];
@ -238,11 +236,10 @@ int __CtrlReadBuffer(u32 ctrlDataPtr, u32 nBufs, bool negative, bool peek)
ctrlBufRead = (ctrlBuf - availBufs + NUM_CTRL_BUFFERS) % NUM_CTRL_BUFFERS;
int done = 0;
PSPPointer<_ctrl_data> data;
data = ctrlDataPtr;
for (u32 i = 0; i < availBufs; ++i)
{
done += __CtrlReadSingleBuffer(ctrlDataPtr, negative);
ctrlDataPtr += sizeof(_ctrl_data);
}
done += __CtrlReadSingleBuffer(data++, negative);
if (peek)
ctrlBufRead = resetRead;
@ -268,7 +265,8 @@ retry:
if (wVal == 0)
goto retry;
u32 ctrlDataPtr = __KernelGetWaitValue(threadID, error);
PSPPointer<_ctrl_data> ctrlDataPtr;
ctrlDataPtr = __KernelGetWaitValue(threadID, error);
int retVal = __CtrlReadSingleBuffer(ctrlDataPtr, wVal == CTRL_WAIT_NEGATIVE);
__KernelResumeThreadFromWait(threadID, retVal);
}