diff --git a/src/drivers/keyboard/KeyboardDriver.cpp b/src/drivers/keyboard/KeyboardDriver.cpp index 2a0fdfaee2..95a4b938c0 100644 --- a/src/drivers/keyboard/KeyboardDriver.cpp +++ b/src/drivers/keyboard/KeyboardDriver.cpp @@ -116,7 +116,7 @@ bool KeyboardDriver::process(Gamepad * gamepad) { // If we had a keycode but now have a multimedia key OR report is different if (keyboard_report_size != last_report_size || - memcmp(last_report, &keyboardReport, last_report_size) != 0) { + memcmp(last_report, keyboard_report_payload, last_report_size) != 0) { if (tud_hid_ready()) { if ( tud_hid_report(keyboardReport.reportId, keyboard_report_payload, keyboard_report_size) ) { memcpy(last_report, keyboard_report_payload, keyboard_report_size); diff --git a/www/src/Data/Keyboard.js b/www/src/Data/Keyboard.js index 7ba7b6faf9..311df028dc 100644 --- a/www/src/Data/Keyboard.js +++ b/www/src/Data/Keyboard.js @@ -35,63 +35,6 @@ export const DEFAULT_KEYBOARD_MAPPING = { export const KEY_CODES = [ { label: 'None', value: 0x00 }, - { label: 'Alt Left', value: 0xe2 }, - { label: 'Alt Right', value: 0xe6 }, - { label: 'Arrow Down', value: 0x51 }, - { label: 'Arrow Left', value: 0x50 }, - { label: 'Arrow Right', value: 0x4f }, - { label: 'Arrow Up', value: 0x52 }, - { label: 'Backquote (Grave/Tilde)', value: 0x35 }, - { label: 'Backslash', value: 0x31 }, - { label: 'Backspace', value: 0x2a }, - { label: 'Bracket Left', value: 0x2f }, - { label: 'Bracket Right', value: 0x30 }, - { label: 'CapsLock', value: 0x39 }, - { label: 'Comma', value: 0x36 }, - { label: 'Control Left', value: 0xe0 }, - { label: 'Control Right', value: 0xe4 }, - { label: 'Delete', value: 0x4c }, - { label: '0', value: 0x27 }, - { label: '1', value: 0x1e }, - { label: '2', value: 0x1f }, - { label: '3', value: 0x20 }, - { label: '4', value: 0x21 }, - { label: '5', value: 0x22 }, - { label: '6', value: 0x23 }, - { label: '7', value: 0x24 }, - { label: '8', value: 0x25 }, - { label: '9', value: 0x26 }, - { label: 'End', value: 0x4d }, - { label: 'Enter', value: 0x28 }, - { label: 'Equal', value: 0x2e }, - { label: 'Escape', value: 0x29 }, - { label: 'F1', value: 0x3a }, - { label: 'F2', value: 0x3b }, - { label: 'F3', value: 0x3c }, - { label: 'F4', value: 0x3d }, - { label: 'F5', value: 0x3e }, - { label: 'F6', value: 0x3f }, - { label: 'F7', value: 0x40 }, - { label: 'F8', value: 0x41 }, - { label: 'F9', value: 0x42 }, - { label: 'F10', value: 0x43 }, - { label: 'F11', value: 0x44 }, - { label: 'F12', value: 0x45 }, - { label: 'F13', value: 0x68 }, - { label: 'F14', value: 0x69 }, - { label: 'F15', value: 0x6a }, - { label: 'F16', value: 0x6b }, - { label: 'F17', value: 0x6c }, - { label: 'F18', value: 0x6d }, - { label: 'F19', value: 0x6e }, - { label: 'F20', value: 0x6f }, - { label: 'F21', value: 0x70 }, - { label: 'F22', value: 0x71 }, - { label: 'F23', value: 0x72 }, - { label: 'F24', value: 0x73 }, - { label: 'Insert', value: 0x49 }, - { label: 'Home', value: 0x4a }, - { label: 'Intl Backslash', value: 0x31 }, { label: 'A', value: 0x04 }, { label: 'B', value: 0x05 }, { label: 'C', value: 0x06 }, @@ -118,9 +61,60 @@ export const KEY_CODES = [ { label: 'X', value: 0x1b }, { label: 'Y', value: 0x1c }, { label: 'Z', value: 0x1d }, - { label: 'Meta Left', value: 0xe3 }, - { label: 'Meta Right', value: 0xe7 }, + { label: '1', value: 0x1e }, + { label: '2', value: 0x1f }, + { label: '3', value: 0x20 }, + { label: '4', value: 0x21 }, + { label: '5', value: 0x22 }, + { label: '6', value: 0x23 }, + { label: '7', value: 0x24 }, + { label: '8', value: 0x25 }, + { label: '9', value: 0x26 }, + { label: '0', value: 0x27 }, + { label: 'Enter', value: 0x28 }, + { label: 'Escape', value: 0x29 }, + { label: 'Backspace', value: 0x2a }, + { label: 'Tab', value: 0x2b }, + { label: 'Space', value: 0x2c }, { label: 'Minus', value: 0x2d }, + { label: 'Equal', value: 0x2e }, + { label: 'Bracket Left', value: 0x2f }, + { label: 'Bracket Right', value: 0x30 }, + { label: 'Backslash', value: 0x31 }, + { label: 'Intl Hash', value: 0x32 }, + { label: 'Semicolon', value: 0x33 }, + { label: 'Quote', value: 0x34 }, + { label: 'Backquote (Grave/Tilde)', value: 0x35 }, + { label: 'Comma', value: 0x36 }, + { label: 'Period', value: 0x37 }, + { label: 'Slash', value: 0x38 }, + { label: 'CapsLock', value: 0x39 }, + { label: 'F1', value: 0x3a }, + { label: 'F2', value: 0x3b }, + { label: 'F3', value: 0x3c }, + { label: 'F4', value: 0x3d }, + { label: 'F5', value: 0x3e }, + { label: 'F6', value: 0x3f }, + { label: 'F7', value: 0x40 }, + { label: 'F8', value: 0x41 }, + { label: 'F9', value: 0x42 }, + { label: 'F10', value: 0x43 }, + { label: 'F11', value: 0x44 }, + { label: 'F12', value: 0x45 }, + { label: 'Print Screen', value: 0x46 }, + { label: 'Scroll Lock', value: 0x47 }, + { label: 'Pause', value: 0x48 }, + { label: 'Insert', value: 0x49 }, + { label: 'Home', value: 0x4a }, + { label: 'Page Up', value: 0x4b }, + { label: 'Delete', value: 0x4c }, + { label: 'End', value: 0x4d }, + { label: 'Page Down', value: 0x4e }, + { label: 'Arrow Right', value: 0x4f }, + { label: 'Arrow Left', value: 0x50 }, + { label: 'Arrow Down', value: 0x51 }, + { label: 'Arrow Up', value: 0x52 }, + { label: 'NumLock', value: 0x53 }, { label: 'Numpad Slash', value: 0x54 }, { label: 'Numpad Asterisk', value: 0x55 }, { label: 'Numpad Minus', value: 0x56 }, @@ -137,16 +131,28 @@ export const KEY_CODES = [ { label: 'Numpad 9', value: 0x61 }, { label: 'Numpad 0', value: 0x62 }, { label: 'Numpad Period', value: 0x63 }, - { label: 'Page Down', value: 0x4e }, - { label: 'Page Up', value: 0x4b }, - { label: 'Period', value: 0x37 }, - { label: 'Quote', value: 0x34 }, - { label: 'Semicolon', value: 0x33 }, + { label: 'Intl Backslash', value: 0x64 }, + { label: 'Numpad Equals', value: 0x67 }, + { label: 'F13', value: 0x68 }, + { label: 'F14', value: 0x69 }, + { label: 'F15', value: 0x6a }, + { label: 'F16', value: 0x6b }, + { label: 'F17', value: 0x6c }, + { label: 'F18', value: 0x6d }, + { label: 'F19', value: 0x6e }, + { label: 'F20', value: 0x6f }, + { label: 'F21', value: 0x70 }, + { label: 'F22', value: 0x71 }, + { label: 'F23', value: 0x72 }, + { label: 'F24', value: 0x73 }, + { label: 'Control Left', value: 0xe0 }, { label: 'Shift Left', value: 0xe1 }, + { label: 'Alt Left', value: 0xe2 }, + { label: 'Meta Left', value: 0xe3 }, + { label: 'Control Right', value: 0xe4 }, { label: 'Shift Right', value: 0xe5 }, - { label: 'Slash', value: 0x38 }, - { label: 'Space', value: 0x2c }, - { label: 'Tab', value: 0x2b }, + { label: 'Alt Right', value: 0xe6 }, + { label: 'Meta Right', value: 0xe7 }, { label: 'Next Track', value: 0xe8 }, // (Scan Next Track) { label: 'Prev Track', value: 0xe9 }, // (Scan Previous Track) { label: 'Stop', value: 0xf0 }, // (Stop)