| 547 | } |
| 548 | |
| 549 | void gamepad_function_key_t::updateStatus(void) |
| 550 | { |
| 551 | int state_lp[2], state[2]; |
| 552 | |
| 553 | state_lp[0] = bmap[0].state; |
| 554 | state_lp[1] = bmap[1].state; |
| 555 | |
| 556 | state[0] = DTestButton(&bmap[0]); |
| 557 | state[1] = DTestButton(&bmap[1]); |
| 558 | |
| 559 | if ((bmap[0].ButtonNum >= 0) && (bmap[1].ButtonNum >= 0)) |
| 560 | { |
| 561 | int s, lp; |
| 562 | |
| 563 | s = state[0] && state[1]; |
| 564 | lp = state_lp[0] && state_lp[1]; |
| 565 | |
| 566 | if (s && !lp) |
| 567 | { |
| 568 | sendKeyPressEvent(0); |
| 569 | } |
| 570 | else if (!s && lp) |
| 571 | { |
| 572 | sendKeyReleaseEvent(0); |
| 573 | sendKeyPressEvent(1); |
| 574 | sendKeyReleaseEvent(1); |
| 575 | } |
| 576 | } |
| 577 | else if (bmap[1].ButtonNum >= 0) |
| 578 | { |
| 579 | if (state[1] && !state_lp[1]) |
| 580 | { |
| 581 | sendKeyPressEvent(0); |
| 582 | } |
| 583 | else if (!state[1] && state_lp[1]) |
| 584 | { |
| 585 | sendKeyReleaseEvent(0); |
| 586 | sendKeyPressEvent(1); |
| 587 | sendKeyReleaseEvent(1); |
| 588 | } |
| 589 | } |
| 590 | } |
| 591 | |
| 592 | /*** |
| 593 | * This function is a wrapper for FCEUI_ToggleEmulationPause that handles |
no test coverage detected