| 570 | } |
| 571 | |
| 572 | bool 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); |
no test coverage detected