MCPcopy Create free account
hub / github.com/Zalafina/QKeyMapper / initVK2HIDCodeMap

Method initVK2HIDCodeMap

QKeyMapper/qkeymapper_worker.cpp:5743–5845  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5741}
5742
5743void QKeyMapper_Worker::initVK2HIDCodeMap()
5744{
5745 // Initialize VK to HID Usage Code mapping
5746 // Based on USB HID Usage Tables (https://www.usb.org/sites/default/files/hut1_22.pdf)
5747
5748 s_VK2HIDCodeMap.clear();
5749 s_VK2HIDModifierMap.clear();
5750
5751 // Modifier keys -> HID Modifier flags
5752 s_VK2HIDModifierMap.insert(VK_LCONTROL, KBD_LCONTROL_BIT); // 0xA2 -> Left Control
5753 s_VK2HIDModifierMap.insert(VK_RCONTROL, KBD_RCONTROL_BIT); // 0xA3 -> Right Control
5754 s_VK2HIDModifierMap.insert(VK_LSHIFT, KBD_LSHIFT_BIT); // 0xA0 -> Left Shift
5755 s_VK2HIDModifierMap.insert(VK_RSHIFT, KBD_RSHIFT_BIT); // 0xA1 -> Right Shift
5756 s_VK2HIDModifierMap.insert(VK_LMENU, KBD_LALT_BIT); // 0xA4 -> Left Alt
5757 s_VK2HIDModifierMap.insert(VK_RMENU, KBD_RALT_BIT); // 0xA5 -> Right Alt
5758 s_VK2HIDModifierMap.insert(VK_LWIN, KBD_LGUI_BIT); // 0x5B -> Left GUI (Win)
5759 s_VK2HIDModifierMap.insert(VK_RWIN, KBD_RGUI_BIT); // 0x5C -> Right GUI (Win)
5760
5761 // Letter keys A-Z -> HID 0x04 - 0x1D
5762 for (int i = 0; i < 26; i++) {
5763 s_VK2HIDCodeMap.insert(VK_A + i, 0x04 + i);
5764 }
5765
5766 // Number keys 1-9 -> HID 0x1E - 0x26
5767 for (int i = 0; i < 9; i++) {
5768 s_VK2HIDCodeMap.insert(VK_1 + i, 0x1E + i);
5769 }
5770 // Number 0 -> HID 0x27
5771 s_VK2HIDCodeMap.insert(VK_0, 0x27);
5772
5773 // Function keys F1-F12 -> HID 0x3A - 0x45
5774 for (int i = 0; i < 12; i++) {
5775 s_VK2HIDCodeMap.insert(VK_F1 + i, 0x3A + i);
5776 }
5777 // Function keys F13-F24 -> HID 0x68 - 0x73
5778 for (int i = 0; i < 12; i++) {
5779 s_VK2HIDCodeMap.insert(VK_F13 + i, 0x68 + i);
5780 }
5781
5782 // Special keys
5783 s_VK2HIDCodeMap.insert(VK_ESCAPE, 0x29); // Escape
5784 s_VK2HIDCodeMap.insert(VK_BACK, 0x2A); // Backspace
5785 s_VK2HIDCodeMap.insert(VK_TAB, 0x2B); // Tab
5786 s_VK2HIDCodeMap.insert(VK_SPACE, 0x2C); // Space
5787 s_VK2HIDCodeMap.insert(VK_RETURN, 0x28); // Enter
5788 s_VK2HIDCodeMap.insert(VK_CAPITAL, 0x39); // CapsLock
5789 s_VK2HIDCodeMap.insert(VK_SNAPSHOT, 0x46); // PrintScreen
5790 s_VK2HIDCodeMap.insert(VK_SCROLL, 0x47); // ScrollLock
5791 s_VK2HIDCodeMap.insert(VK_PAUSE, 0x48); // Pause
5792
5793 // Navigation keys
5794 s_VK2HIDCodeMap.insert(VK_INSERT, 0x49); // Insert
5795 s_VK2HIDCodeMap.insert(VK_HOME, 0x4A); // Home
5796 s_VK2HIDCodeMap.insert(VK_PRIOR, 0x4B); // PageUp
5797 s_VK2HIDCodeMap.insert(VK_DELETE, 0x4C); // Delete
5798 s_VK2HIDCodeMap.insert(VK_END, 0x4D); // End
5799 s_VK2HIDCodeMap.insert(VK_NEXT, 0x4E); // PageDown
5800

Callers

nothing calls this directly

Calls 3

insertMethod · 0.80
sizeMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected