74 lines
2.1 KiB
Rust
74 lines
2.1 KiB
Rust
//! minifb::Key → Set-1 扫描码映射。返回 (扫描码, 是否扩展键)。
|
|
|
|
use minifb::Key;
|
|
|
|
pub fn map(k: Key) -> Option<(u16, bool)> {
|
|
use Key::*;
|
|
Some(match k {
|
|
A => (0x1E, false),
|
|
B => (0x30, false),
|
|
C => (0x2E, false),
|
|
D => (0x20, false),
|
|
E => (0x12, false),
|
|
F => (0x21, false),
|
|
G => (0x22, false),
|
|
H => (0x23, false),
|
|
I => (0x17, false),
|
|
J => (0x24, false),
|
|
K => (0x25, false),
|
|
L => (0x26, false),
|
|
M => (0x32, false),
|
|
N => (0x31, false),
|
|
O => (0x18, false),
|
|
P => (0x19, false),
|
|
Q => (0x10, false),
|
|
R => (0x13, false),
|
|
S => (0x1F, false),
|
|
T => (0x14, false),
|
|
U => (0x16, false),
|
|
V => (0x2F, false),
|
|
W => (0x11, false),
|
|
X => (0x2D, false),
|
|
Y => (0x15, false),
|
|
Z => (0x2C, false),
|
|
Key1 => (0x02, false),
|
|
Key2 => (0x03, false),
|
|
Key3 => (0x04, false),
|
|
Key4 => (0x05, false),
|
|
Key5 => (0x06, false),
|
|
Key6 => (0x07, false),
|
|
Key7 => (0x08, false),
|
|
Key8 => (0x09, false),
|
|
Key9 => (0x0A, false),
|
|
Key0 => (0x0B, false),
|
|
Space => (0x39, false),
|
|
Enter => (0x1C, false),
|
|
Backspace => (0x0E, false),
|
|
Tab => (0x0F, false),
|
|
CapsLock => (0x3A, false),
|
|
Backquote => (0x29, false),
|
|
Minus => (0x0C, false),
|
|
Equal => (0x0D, false),
|
|
Backslash => (0x2B, false),
|
|
Comma => (0x33, false),
|
|
Period => (0x34, false),
|
|
Slash => (0x35, false),
|
|
Semicolon => (0x27, false),
|
|
Apostrophe => (0x28, false),
|
|
LeftShift => (0x2A, false),
|
|
LeftCtrl => (0x1D, false),
|
|
LeftAlt => (0x38, false),
|
|
LeftSuper => (0x5B, true),
|
|
Up => (0x48, true),
|
|
Down => (0x50, true),
|
|
Left => (0x4B, true),
|
|
Right => (0x4D, true),
|
|
Home => (0x47, true),
|
|
End => (0x4F, true),
|
|
Delete => (0x53, true),
|
|
PageUp => (0x49, true),
|
|
PageDown => (0x51, true),
|
|
_ => return None,
|
|
})
|
|
}
|