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

Function inputdevice_do_keyboard

src/inputdevice.cpp:4641–4739  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4639}
4640
4641void inputdevice_do_keyboard(int code, int state)
4642{
4643#ifdef CDTV
4644 if (code >= 0x72 && code <= 0x77) { // CDTV keys
4645 if (cdtv_front_panel(-1)) {
4646 // front panel active
4647 if (!state)
4648 return;
4649 cdtv_front_panel(code - 0x72);
4650 return;
4651 }
4652 }
4653#endif
4654 if (code < 0x80) {
4655 uae_u8 key = code | (state ? 0x00 : 0x80);
4656 keybuf[key & 0x7f] = (key & 0x80) ? 0 : 1;
4657
4658 if (keyboard_reset_seq_mode > 0) {
4659 if (keyboard_reset_seq_mode == 3) {
4660 if (keyboard_reset_seq >= 15 * 50) {
4661 if (!keyboardresetkeys()) {
4662 keyboard_reset_seq_mode = 0;
4663 } else {
4664 keyboard_reset_seq_mode = 4;
4665 }
4666 keyboard_reset_seq = 0;
4667 }
4668 return;
4669 }
4670 if (!keyboardresetkeys()) {
4671 memset(keybuf, 0, sizeof(keybuf));
4672 if (keyboard_reset_seq >= 5 * 50 || keyboard_reset_seq_mode > 0) {
4673 send_internalevent(INTERNALEVENT_KBRESET);
4674 if (keyboard_reset_seq >= 5 * 50 || keyboard_reset_seq_mode == 2) {
4675 custom_reset(true, true);
4676 uae_reset(1, 1);
4677 } else {
4678 custom_reset(false, true);
4679 uae_reset(0, 1);
4680 }
4681 }
4682 keyboard_reset_seq = 0;
4683 keyboard_reset_seq_mode = 0;
4684 release_keys();
4685 }
4686 return;
4687 }
4688 if (currprefs.keyboard_mode > 0) {
4689 if (!currprefs.cs_resetwarning) {
4690 if (keyboardresetkeys() || key == AK_RESETWARNING) {
4691 int r = keybuf[AK_LALT] | keybuf[AK_RALT];
4692 if (r) {
4693 custom_reset(true, true);
4694 cpu_inreset();
4695 keyboard_reset_seq_mode = 2;
4696 } else {
4697 custom_reset(false, true);
4698 cpu_inreset();

Callers 7

handle_input_event2Function · 0.85
rqualifiersFunction · 0.85
HandleSendKeyFunction · 0.85
press_keyFunction · 0.85
release_keyFunction · 0.85
HandleSendKeyFunction · 0.85

Calls 11

cdtv_front_panelFunction · 0.85
keyboardresetkeysFunction · 0.85
send_internaleventFunction · 0.85
custom_resetFunction · 0.85
uae_resetFunction · 0.85
release_keysFunction · 0.85
cpu_inresetFunction · 0.85
resetwarning_doFunction · 0.85
record_keyFunction · 0.85
write_logFunction · 0.70

Tested by

no test coverage detected