MCPcopy Create free account
hub / github.com/doldecomp/mkdd / readPad

Method readPad

libs/JSystem/JUtility/JUTException.cpp:572–662  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

570}
571
572bool JUTException::readPad(u32 *out_trigger, u32 *out_button)
573{
574 bool result = false;
575 OSTime start_time = OSGetTime();
576 OSTime ms;
577 do
578 {
579 OSTime end_time = OSGetTime();
580 OSTime ticks = end_time - start_time;
581 ms = ticks / (OS_TIMER_CLOCK / 1000);
582 } while (ms < 0x32);
583
584 if (mGamePad == (JUTGamePad *)0xffffffff)
585 {
586 JUTGamePad gamePad0(JUTGamePad::Port1);
587 JUTGamePad gamePad1(JUTGamePad::Port2);
588 JUTGamePad gamePad2(JUTGamePad::Port3);
589 JUTGamePad gamePad3(JUTGamePad::Port4);
590 JUTGamePad::read();
591
592 c3bcnt[0] =
593 (gamePad0.isPushing3ButtonReset() ? (c3bcnt[0] != 0 ? c3bcnt[0] : OSGetTime()) : 0);
594 c3bcnt[1] =
595 (gamePad1.isPushing3ButtonReset() ? (c3bcnt[1] != 0 ? c3bcnt[1] : OSGetTime()) : 0);
596 c3bcnt[2] =
597 (gamePad2.isPushing3ButtonReset() ? (c3bcnt[2] != 0 ? c3bcnt[2] : OSGetTime()) : 0);
598 c3bcnt[3] =
599 (gamePad3.isPushing3ButtonReset() ? (c3bcnt[3] != 0 ? c3bcnt[3] : OSGetTime()) : 0);
600
601 OSTime resetTime0 = (c3bcnt[0] != 0) ? (OSGetTime() - c3bcnt[0]) : 0;
602 OSTime resetTime1 = (c3bcnt[1] != 0) ? (OSGetTime() - c3bcnt[1]) : 0;
603 OSTime resetTime2 = (c3bcnt[2] != 0) ? (OSGetTime() - c3bcnt[2]) : 0;
604 OSTime resetTime3 = (c3bcnt[3] != 0) ? (OSGetTime() - c3bcnt[3]) : 0;
605
606 gamePad0.checkResetCallback(resetTime0);
607 gamePad1.checkResetCallback(resetTime1);
608 gamePad2.checkResetCallback(resetTime2);
609 gamePad3.checkResetCallback(resetTime3);
610
611 if (out_trigger)
612 {
613 *out_trigger = gamePad0.getTrigger() | gamePad1.getTrigger() | gamePad2.getTrigger() |
614 gamePad3.getTrigger();
615 }
616 if (out_button)
617 {
618 *out_button = gamePad0.getButton() | gamePad1.getButton() | gamePad2.getButton() |
619 gamePad3.getButton();
620 }
621
622 result = true;
623 }
624 else if (mPadPort >= JUTGamePad::Port1)
625 {
626 JUTGamePad gamePad(mPadPort);
627 OSTime &gamePadTime = c3bcnt[0];
628 gamePadTime =
629 (gamePad.isPushing3ButtonReset() ? (gamePadTime != 0 ? gamePadTime : OSGetTime()) : 0);

Callers 1

callbackExceptionFunction · 0.80

Calls 6

OSGetTimeFunction · 0.85
readFunction · 0.85
isPushing3ButtonResetMethod · 0.80
checkResetCallbackMethod · 0.80
getTriggerMethod · 0.80
getButtonMethod · 0.45

Tested by

no test coverage detected