translate keyboard scancode

This commit is contained in:
2026-01-29 12:20:41 +11:00
parent 341018d6d1
commit 7ee5ff5bd4
31 changed files with 142 additions and 11 deletions

View File

@@ -0,0 +1,36 @@
#include "keyboard.h"
bool isLeftShiftPressed = false;
bool isRightShiftPressed = false;
void HandleKeyboard(uint8_t scancode) {
switch (scancode) {
case LeftShift:
isLeftShiftPressed = true;
return;
case LeftShift + 0x80:
isLeftShiftPressed = false;
return;
case RightShift:
isRightShiftPressed = true;
return;
case RightShift + 0x80:
isRightShiftPressed = false;
return;
case Enter:
GlobalRenderer->Next();
return;
case Spacebar:
GlobalRenderer->PutChar(' ');
return;
case Backspace:
GlobalRenderer->ClearChar();
break;
}
char ascii = QWERTYKeyboard::Translate(scancode, isLeftShiftPressed || isRightShiftPressed);
if (ascii != 0) {
GlobalRenderer->PutChar(ascii);
}
}