os/src/keyboard.rs

298 lines
8.2 KiB
XML

// #[derive(Debug)]
// pub struct KeyPress {
// released: bool,
// key: Key
// }
// #[derive(Debug)]
// pub enum Key {
// Char(char),
// Control(ControlKey),
// Escape,
// Unknown(u8)
// }
// #[derive(Debug)]
// pub enum ControlKey {
// Escape,
// Backspace,
// Tab,
// Enter,
// LControl,
// LShift,
// RShift,
// LAlt,
// CapsLock,
// F(u8),
// NumberLock,
// ScrollLock,
// }
// pub fn get_key_from_scancode(scancode: u8) -> KeyPress {
// if scancode == 0xe0 {
// return KeyPress {
// released: false,
// key: Key::Escape
// }
// }
// let released = (scancode >> 7) == 1;
// let scancode = scancode & 0b01111111;
// let key = match scancode {
// 0x01 => Key::Control(ControlKey::Escape),
// 0x02 => Key::Char('1'),
// 0x03 => Key::Char('2'),
// 0x04 => Key::Char('3'),
// 0x05 => Key::Char('4'),
// 0x06 => Key::Char('5'),
// 0x07 => Key::Char('6'),
// 0x08 => Key::Char('7'),
// 0x09 => Key::Char('8'),
// 0x0A => Key::Char('9'),
// 0x0B => Key::Char('0'),
// 0x0C => Key::Char('-'),
// 0x0D => Key::Char('='),
// 0x0E => Key::Control(ControlKey::Backspace),
// 0x0F => Key::Control(ControlKey::Tab),
// 0x10 => Key::Char('Q'),
// 0x11 => Key::Char('W'),
// 0x12 => Key::Char('E'),
// 0x13 => Key::Char('R'),
// 0x14 => Key::Char('T'),
// 0x15 => Key::Char('Y'),
// 0x16 => Key::Char('U'),
// 0x17 => Key::Char('I'),
// 0x18 => Key::Char('O'),
// 0x19 => Key::Char('P'),
// 0x1A => Key::Char('['),
// 0x1B => Key::Char(']'),
// 0x1C => Key::Control(ControlKey::Enter),
// 0x1D => Key::Control(ControlKey::LControl),
// 0x1E => Key::Char('A'),
// 0x1F => Key::Char('S'),
// 0x20 => Key::Char('D'),
// 0x21 => Key::Char('F'),
// 0x22 => Key::Char('G'),
// 0x23 => Key::Char('H'),
// 0x24 => Key::Char('J'),
// 0x25 => Key::Char('K'),
// 0x26 => Key::Char('L'),
// 0x27 => Key::Char(';'),
// 0x28 => Key::Char('\''),
// 0x29 => Key::Char('`'),
// 0x2A => Key::Control(ControlKey::LShift),
// 0x2B => Key::Char('\\'),
// 0x2C => Key::Char('Z'),
// 0x2D => Key::Char('X'),
// 0x2E => Key::Char('C'),
// 0x2F => Key::Char('V'),
// 0x30 => Key::Char('B'),
// 0x31 => Key::Char('N'),
// 0x32 => Key::Char('M'),
// 0x33 => Key::Char(','),
// 0x34 => Key::Char('.'),
// 0x35 => Key::Char('/'),
// 0x36 => Key::Control(ControlKey::RShift),
// 0x37 => Key::Char('*'),
// 0x38 => Key::Control(ControlKey::LAlt),
// 0x39 => Key::Char(' '),
// 0x3A => Key::Control(ControlKey::CapsLock),
// 0x3B => Key::Control(ControlKey::F(1)),
// 0x3C => Key::Control(ControlKey::F(2)),
// 0x3D => Key::Control(ControlKey::F(3)),
// 0x3E => Key::Control(ControlKey::F(4)),
// 0x3F => Key::Control(ControlKey::F(5)),
// 0x40 => Key::Control(ControlKey::F(6)),
// 0x41 => Key::Control(ControlKey::F(7)),
// 0x42 => Key::Control(ControlKey::F(8)),
// 0x43 => Key::Control(ControlKey::F(9)),
// 0x44 => Key::Control(ControlKey::F(10 )),
// 0x45 => Key::Control(ControlKey::NumberLock),
// 0x46 => Key::Control(ControlKey::ScrollLock),
// 0x47 => Key::Char('7'), // keypad
// 0x48 => Key::Char('8'), // keypad
// 0x49 => Key::Char('9'), // keypad
// 0x4A => Key::Char('-'), // keypad
// 0x4B => Key::Char('4'), // keypad
// 0x4C => Key::Char('5'), // keypad
// 0x4D => Key::Char('6'), // keypad
// 0x4E => Key::Char('+'), // keypad
// 0x4F => Key::Char('1'), // keypad
// 0x50 => Key::Char('2'), // keypad
// 0x51 => Key::Char('3'), // keypad
// 0x52 => Key::Char('0'), // keypad
// 0x53 => Key::Char('.'), // keypad
// // 3 missing here?
// 0x57 => Key::Control(ControlKey::F(11)),
// 0x58 => Key::Control(ControlKey::F(12)),
// _ => Key::Unknown(scancode)
// };
// KeyPress {
// released,
// key
// }
// /*
// 0xE0, 0x10
// (multimedia) previous track pressed
// 0xE0, 0x19
// (multimedia) next track pressed
// 0xE0, 0x1C
// (keypad) enter pressed
// 0xE0, 0x1D
// right control pressed
// 0xE0, 0x20
// (multimedia) mute pressed
// 0xE0, 0x21
// (multimedia) calculator pressed
// 0xE0, 0x22
// (multimedia) play pressed
// 0xE0, 0x24
// (multimedia) stop pressed
// 0xE0, 0x2E
// (multimedia) volume down pressed
// 0xE0, 0x30
// (multimedia) volume up pressed
// 0xE0, 0x32
// (multimedia) WWW home pressed
// 0xE0, 0x35
// (keypad) / pressed
// 0xE0, 0x38
// right alt (or altGr) pressed
// 0xE0, 0x47
// home pressed
// 0xE0, 0x48
// cursor up pressed
// 0xE0, 0x49
// page up pressed
// 0xE0, 0x4B
// cursor left pressed
// 0xE0, 0x4D
// cursor right pressed
// 0xE0, 0x4F
// end pressed
// 0xE0, 0x50
// cursor down pressed
// 0xE0, 0x51
// page down pressed
// 0xE0, 0x52
// insert pressed
// 0xE0, 0x53
// delete pressed
// 0xE0, 0x5B
// left GUI pressed
// 0xE0, 0x5C
// right GUI pressed
// 0xE0, 0x5D
// "apps" pressed
// 0xE0, 0x5E
// (ACPI) power pressed
// 0xE0, 0x5F
// (ACPI) sleep pressed
// 0xE0, 0x63
// (ACPI) wake pressed
// 0xE0, 0x65
// (multimedia) WWW search pressed
// 0xE0, 0x66
// (multimedia) WWW favorites pressed
// 0xE0, 0x67
// (multimedia) WWW refresh pressed
// 0xE0, 0x68
// (multimedia) WWW stop pressed
// 0xE0, 0x69
// (multimedia) WWW forward pressed
// 0xE0, 0x6A
// (multimedia) WWW back pressed
// 0xE0, 0x6B
// (multimedia) my computer pressed
// 0xE0, 0x6C
// (multimedia) email pressed
// 0xE0, 0x6D
// (multimedia) media select pressed
// 0xE0, 0x90
// (multimedia) previous track released
// 0xE0, 0x99
// (multimedia) next track released
// 0xE0, 0x9C
// (keypad) enter released
// 0xE0, 0x9D
// right control released
// 0xE0, 0xA0
// (multimedia) mute released
// 0xE0, 0xA1
// (multimedia) calculator released
// 0xE0, 0xA2
// (multimedia) play released
// 0xE0, 0xA4
// (multimedia) stop released
// 0xE0, 0xAE
// (multimedia) volume down released
// 0xE0, 0xB0
// (multimedia) volume up released
// 0xE0, 0xB2
// (multimedia) WWW home released
// 0xE0, 0xB5
// (keypad) / released
// 0xE0, 0xB8
// right alt (or altGr) released
// 0xE0, 0xC7
// home released
// 0xE0, 0xC8
// cursor up released
// 0xE0, 0xC9
// page up released
// 0xE0, 0xCB
// cursor left released
// 0xE0, 0xCD
// cursor right released
// 0xE0, 0xCF
// end released
// 0xE0, 0xD0
// cursor down released
// 0xE0, 0xD1
// page down released
// 0xE0, 0xD2
// insert released
// 0xE0, 0xD3
// delete released
// 0xE0, 0xDB
// left GUI released
// 0xE0, 0xDC
// right GUI released
// 0xE0, 0xDD
// "apps" released
// 0xE0, 0xDE
// (ACPI) power released
// 0xE0, 0xDF
// (ACPI) sleep released
// 0xE0, 0xE3
// (ACPI) wake released
// 0xE0, 0xE5
// (multimedia) WWW search released
// 0xE0, 0xE6
// (multimedia) WWW favorites released
// 0xE0, 0xE7
// (multimedia) WWW refresh released
// 0xE0, 0xE8
// (multimedia) WWW stop released
// 0xE0, 0xE9
// (multimedia) WWW forward released
// 0xE0, 0xEA
// (multimedia) WWW back released
// 0xE0, 0xEB
// (multimedia) my computer released
// 0xE0, 0xEC
// (multimedia) email released
// 0xE0, 0xED
// (multimedia) media select released
// 0xE0, 0x2A, 0xE0, 0x37
// print screen pressed
// 0xE0, 0xB7, 0xE0, 0xAA
// print screen released
// 0xE1, 0x1D, 0x45, 0xE1, 0x9D, 0xC5
// pause pressed
// */
// }