| 582 | } |
| 583 | |
| 584 | void GetDelta(dmHID::GamepadPacket* prev_packet, dmHID::GamepadPacket* packet, dmInputDDF::GamepadType* gamepad_type, uint32_t* index, float* value, float* delta) |
| 585 | { |
| 586 | float max_delta = -1.0f; |
| 587 | for (uint32_t i = 0; i < dmHID::MAX_GAMEPAD_AXIS_COUNT; ++i) |
| 588 | { |
| 589 | if (dmMath::Abs(packet->m_Axis[i] - prev_packet->m_Axis[i]) > max_delta) |
| 590 | { |
| 591 | max_delta = dmMath::Abs(packet->m_Axis[i] - prev_packet->m_Axis[i]); |
| 592 | if (gamepad_type != 0x0) |
| 593 | *gamepad_type = dmInputDDF::GAMEPAD_TYPE_AXIS; |
| 594 | if (index != 0x0) |
| 595 | *index = i; |
| 596 | if (value != 0x0) |
| 597 | *value = packet->m_Axis[i]; |
| 598 | if (delta != 0x0) |
| 599 | { |
| 600 | *delta = packet->m_Axis[i] - prev_packet->m_Axis[i]; |
| 601 | } |
| 602 | } |
| 603 | } |
| 604 | for (uint32_t i = 0; i < dmHID::MAX_GAMEPAD_HAT_COUNT; ++i) |
| 605 | { |
| 606 | if (prev_packet->m_Hat[i] != packet->m_Hat[i]) { |
| 607 | if (gamepad_type != 0x0) |
| 608 | *gamepad_type = dmInputDDF::GAMEPAD_TYPE_HAT; |
| 609 | if (index != 0x0) |
| 610 | *index = i; |
| 611 | if (value != 0x0) |
| 612 | *value = packet->m_Hat[i]; |
| 613 | if (delta != 0x0) |
| 614 | { |
| 615 | *delta = 1.0f; |
| 616 | } |
| 617 | } |
| 618 | } |
| 619 | for (uint32_t i = 0; i < dmHID::MAX_GAMEPAD_BUTTON_COUNT; ++i) |
| 620 | { |
| 621 | if (dmHID::GetGamepadButton(packet, i)) |
| 622 | { |
| 623 | if (gamepad_type != 0x0) |
| 624 | *gamepad_type = dmInputDDF::GAMEPAD_TYPE_BUTTON; |
| 625 | if (index != 0x0) |
| 626 | *index = i; |
| 627 | if (value != 0x0) |
| 628 | *value = 1.0f; |
| 629 | if (delta != 0x0) |
| 630 | { |
| 631 | *delta = 1.0f; |
| 632 | } |
| 633 | } |
| 634 | } |
| 635 | } |
| 636 | |
| 637 | void DumpDriver(FILE* out, Driver* driver) |
| 638 | { |
no test coverage detected