translate keyboard scancode
This commit is contained in:
36
kernel/src/userinput/keyboard.cpp
Normal file
36
kernel/src/userinput/keyboard.cpp
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user