143 lines
4.3 KiB
C
143 lines
4.3 KiB
C
/* This file contains a Keymap for German Layout and yep i did it mostly by hand bcs ai could just not do it*/
|
||
|
||
// Missing Key may be adding in future
|
||
// #'
|
||
// <>
|
||
// STRG
|
||
// FN
|
||
// MENU
|
||
|
||
const char* keycodeToAscii(uint8_t keycode, bool shift, bool altGr) {
|
||
|
||
if (altGr) {
|
||
switch (keycode) {
|
||
case 0x14: return "@";
|
||
case 0x1E: return "¹";
|
||
case 0x1F: return "²";
|
||
case 0x20: return "³";
|
||
case 0x21: return "¼";
|
||
case 0x22: return "½";
|
||
case 0x23: return "¬";
|
||
case 0x24: return "{";
|
||
case 0x25: return "[";
|
||
case 0x26: return "]";
|
||
case 0x27: return "}";
|
||
case 0x2D: return "\\";
|
||
case 0x2E: return "~";
|
||
case 0x2F: return "[";
|
||
case 0x30: return "~";
|
||
case 0x31: return "|";
|
||
case 0x35: return "|";
|
||
case 0x08: return "€";
|
||
|
||
default: break;
|
||
}
|
||
}
|
||
|
||
switch (keycode) {
|
||
|
||
case 0x04: return shift ? "A" : "a";
|
||
case 0x05: return shift ? "B" : "b";
|
||
case 0x06: return shift ? "C" : "c";
|
||
case 0x07: return shift ? "D" : "d";
|
||
case 0x08: return shift ? "E" : "e";
|
||
case 0x09: return shift ? "F" : "f";
|
||
case 0x0A: return shift ? "G" : "g";
|
||
case 0x0B: return shift ? "H" : "h";
|
||
case 0x0C: return shift ? "I" : "i";
|
||
case 0x0D: return shift ? "J" : "j";
|
||
case 0x0E: return shift ? "K" : "k";
|
||
case 0x0F: return shift ? "L" : "l";
|
||
case 0x10: return shift ? "M" : "m";
|
||
case 0x11: return shift ? "N" : "n";
|
||
case 0x12: return shift ? "O" : "o";
|
||
case 0x13: return shift ? "P" : "p";
|
||
case 0x14: return shift ? "Q" : "q";
|
||
case 0x15: return shift ? "R" : "r";
|
||
case 0x16: return shift ? "S" : "s";
|
||
case 0x17: return shift ? "T" : "t";
|
||
case 0x18: return shift ? "U" : "u";
|
||
case 0x19: return shift ? "V" : "v";
|
||
case 0x1A: return shift ? "W" : "w";
|
||
case 0x1B: return shift ? "X" : "x";
|
||
case 0x1C: return shift ? "Z" : "z";
|
||
case 0x1D: return shift ? "Y" : "y";
|
||
|
||
case 0x1E: return shift ? "!" : "1";
|
||
case 0x1F: return shift ? "\"" : "2";
|
||
case 0x20: return shift ? "§" : "3";
|
||
case 0x21: return shift ? "$" : "4";
|
||
case 0x22: return shift ? "%" : "5";
|
||
case 0x23: return shift ? "&" : "6";
|
||
case 0x24: return shift ? "/" : "7";
|
||
case 0x25: return shift ? "(" : "8";
|
||
case 0x26: return shift ? ")" : "9";
|
||
case 0x27: return shift ? "=" : "0";
|
||
case 0x2D: return shift ? "?" : "ß";
|
||
case 0x2E: return shift ? "`" : "´";
|
||
case 0x2F: return shift ? "Ü" : "ü";
|
||
case 0x30: return shift ? "*" : "+";
|
||
case 0x31: return shift ? "'" : "#";
|
||
case 0x33: return shift ? "Ö" : "ö";
|
||
|
||
case 0x28: return "[ENTER]";
|
||
case 0x29: return "[ESC]";
|
||
case 0x2A: return "[BACKSPACE]";
|
||
case 0x2B: return "[TAB]";
|
||
case 0x2C: return "[SPACE]";
|
||
|
||
case 0x34: return shift ? "Ä" : "ä";
|
||
case 0x35: return shift ? "°" : "^";
|
||
case 0x36: return shift ? ";" : ",";
|
||
case 0x37: return shift ? ":" : ".";
|
||
case 0x38: return shift ? "_" : "-";
|
||
|
||
case 0x3A: return "[F1]";
|
||
case 0x3B: return "[F2]";
|
||
case 0x3C: return "[F3]";
|
||
case 0x3D: return "[F4]";
|
||
case 0x3E: return "[F5]";
|
||
case 0x3F: return "[F6]";
|
||
case 0x40: return "[F7]";
|
||
case 0x41: return "[F8]";
|
||
case 0x42: return "[F9]";
|
||
case 0x43: return "[F10]";
|
||
case 0x44: return "[F11]";
|
||
case 0x45: return "[F12]";
|
||
|
||
case 0x39: return "[CAPS_LOCK]";
|
||
case 0x46: return "[DRUCK]";
|
||
case 0x47: return "[SCROLL_LOCK]";
|
||
case 0x48: return "[PAUSE]";
|
||
|
||
case 0x49: return "[INSERT]";
|
||
case 0x4A: return "[HOME]";
|
||
case 0x4B: return "[PAGE_UP]";
|
||
case 0x4C: return "[DELETE]";
|
||
case 0x4D: return "[END]";
|
||
case 0x4E: return "[PAGE_DOWN]";
|
||
case 0x4F: return "[RIGHT]";
|
||
case 0x50: return "[LEFT]";
|
||
case 0x51: return "[DOWN]";
|
||
case 0x52: return "[UP]";
|
||
|
||
case 0x59: return "1";
|
||
case 0x5A: return "2";
|
||
case 0x5B: return "3";
|
||
case 0x5C: return "4";
|
||
case 0x5D: return "5";
|
||
case 0x5E: return "6";
|
||
case 0x5F: return "7";
|
||
case 0x60: return "8";
|
||
case 0x61: return "9";
|
||
case 0x62: return "0";
|
||
case 0x63: return ",";
|
||
case 0x57: return "*";
|
||
case 0x58: return "+";
|
||
case 0x65: return "-";
|
||
case 0x66: return "/";
|
||
case 0x67: return "[ENTER]";
|
||
|
||
default: return nullptr;
|
||
}
|
||
} |