73 lines
1.2 KiB
Rust
73 lines
1.2 KiB
Rust
static ENGLISH: [[char; 2]; 58] = [
|
|
['\0', '\0'],
|
|
['\x1B', '\x1B'],
|
|
['1', '!'],
|
|
['2', '@'],
|
|
['3', '#'],
|
|
['4', '$'],
|
|
['5', '%'],
|
|
['6', '^'],
|
|
['7', '&'],
|
|
['8', '*'],
|
|
['9', '('],
|
|
['0', ')'],
|
|
['-', '_'],
|
|
['=', '+'],
|
|
['\x7F', '\x7F'],
|
|
['\t', '\t'],
|
|
['q', 'Q'],
|
|
['w', 'W'],
|
|
['e', 'E'],
|
|
['r', 'R'],
|
|
['t', 'T'],
|
|
['y', 'Y'],
|
|
['u', 'U'],
|
|
['i', 'I'],
|
|
['o', 'O'],
|
|
['p', 'P'],
|
|
['[', '{'],
|
|
[']', '}'],
|
|
['\n', '\n'],
|
|
['\0', '\0'],
|
|
['a', 'A'],
|
|
['s', 'S'],
|
|
['d', 'D'],
|
|
['f', 'F'],
|
|
['g', 'G'],
|
|
['h', 'H'],
|
|
['j', 'J'],
|
|
['k', 'K'],
|
|
['l', 'L'],
|
|
[';', ':'],
|
|
['\'', '"'],
|
|
['`', '~'],
|
|
['\0', '\0'],
|
|
['\\', '|'],
|
|
['z', 'Z'],
|
|
['x', 'X'],
|
|
['c', 'C'],
|
|
['v', 'V'],
|
|
['b', 'B'],
|
|
['n', 'N'],
|
|
['m', 'M'],
|
|
[',', '<'],
|
|
['.', '>'],
|
|
['/', '?'],
|
|
['\0', '\0'],
|
|
['\0', '\0'],
|
|
['\0', '\0'],
|
|
[' ', ' ']
|
|
];
|
|
|
|
pub fn get_char(scancode: u8, shift: bool) -> char {
|
|
if let Some(c) = ENGLISH.get(scancode as usize) {
|
|
if shift {
|
|
c[1]
|
|
} else {
|
|
c[0]
|
|
}
|
|
} else {
|
|
'\0'
|
|
}
|
|
}
|