MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / inputdevice_draco_key

Function inputdevice_draco_key

src/inputdevice.cpp:10779–10804  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10777}
10778
10779void 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}

Callers 1

record_key_directFunction · 0.85

Calls 2

draco_keycodeFunction · 0.85
draco_keyboard_get_rateFunction · 0.85

Tested by

no test coverage detected