| 10777 | } |
| 10778 | |
| 10779 | void inputdevice_draco_key(int kc) |
| 10780 | { |
| 10781 | #ifdef WITH_DRACO |
| 10782 | int state = (kc & 1) == 0; |
| 10783 | kc >>= 1; |
| 10784 | for (int i = 1; events[i].name; i++) { |
| 10785 | if (events[i].data == kc && events[i].data2 && events[i].allow_mask == AM_K) { |
| 10786 | int code = events[i].data2; |
| 10787 | if ((code & 0xff00) == 0xe000) { |
| 10788 | code = (code & 0xff) | 0x100; |
| 10789 | } else { |
| 10790 | code &= 0xff; |
| 10791 | } |
| 10792 | draco_keycode(code, state); |
| 10793 | if (state) { |
| 10794 | int rate = draco_keyboard_get_rate(); |
| 10795 | int init = ((rate >> 5) & 3) * 250 + 250; |
| 10796 | draco_keybord_repeat_cnt = (int)(vblank_hz * maxvpos * init / 1000); |
| 10797 | draco_keybord_repeat_code = code; |
| 10798 | } else { |
| 10799 | draco_keybord_repeat_code = 0; |
| 10800 | } |
| 10801 | } |
| 10802 | } |
| 10803 | #endif |
| 10804 | } |
no test coverage detected