Files
ac-decomp/src/TRK/mainloop.c
T
2023-06-18 18:07:06 +02:00

49 lines
1.2 KiB
C

#include "TRK/mainloop.h"
#include "TRK/nubevent.h"
#include "TRK/dispatch.h"
#include "TRK/targimpl.h"
#include "TRK/serpoll.h"
void TRKNubMainLoop(void){
MessageBuffer* msg;
TRKEvent event;
BOOL loop = FALSE;
BOOL statInput = FALSE;
while(loop == FALSE){
if(TRKGetNextEvent(&event) != FALSE){
statInput = FALSE;
switch(event.mEventType){
case 0:
break;
case 2:
msg = TRKGetBuffer(event.mBufferIndex);
TRKDispatchMessage(msg);
break;
case 1:
loop = TRUE;
break;
case 3:
case 4:
TRKTargetInterrupt(&event);
break;
case 5:
TRKTargetSupportRequest();
break;
}
TRKDestructEvent(&event);
}
else if((statInput == FALSE) || ((u8)*gTRKInputPendingPtr != 0)){
statInput = TRUE;
TRKGetInput();
}
else{
if(TRKTargetStopped() == FALSE){
TRKTargetContinue();
}
statInput = FALSE;
}
}
}