From 5bffb9fb6340d9daecb40e9f753608abb0c79ec5 Mon Sep 17 00:00:00 2001 From: Patrick Desaulniers Date: Tue, 30 Jul 2019 08:52:45 -0400 Subject: [PATCH 1/5] Fix comment --- dgl/src/pugl/pugl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dgl/src/pugl/pugl.h b/dgl/src/pugl/pugl.h index e02c4d92..90f516e9 100644 --- a/dgl/src/pugl/pugl.h +++ b/dgl/src/pugl/pugl.h @@ -125,7 +125,7 @@ typedef enum { /** Layout-independent keycodes. These keycodes are relative to an US QWERTY keyboard. - Therefore, the keycode for the letter 'A' on an AZERTY keyboard will be equal to PUGL_VK_Q. + Therefore, the keycode for the letter 'A' on an AZERTY keyboard will be equal to PUGL_KC_Q. */ typedef enum { /* Zero, does not correspond to any key. */ From cb5517b550476c51f33771f4d490a58ff042d1b9 Mon Sep 17 00:00:00 2001 From: Patrick Desaulniers Date: Tue, 30 Jul 2019 09:16:23 -0400 Subject: [PATCH 2/5] Add some comments --- dgl/src/pugl/pugl_osx.m | 3 +++ dgl/src/pugl/pugl_win.cpp | 3 +++ dgl/src/pugl/pugl_x11.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/dgl/src/pugl/pugl_osx.m b/dgl/src/pugl/pugl_osx.m index ea1b16b1..0bc54534 100644 --- a/dgl/src/pugl/pugl_osx.m +++ b/dgl/src/pugl/pugl_osx.m @@ -121,6 +121,9 @@ getModifiers(PuglView* view, NSEvent* ev) return mods; } +/** + Convert system specific keycodes into system independent ones (PuglKeyCodes) +*/ static unsigned scancodeToHID(unsigned scancode) { diff --git a/dgl/src/pugl/pugl_win.cpp b/dgl/src/pugl/pugl_win.cpp index 4dd43ca9..1e03f483 100644 --- a/dgl/src/pugl/pugl_win.cpp +++ b/dgl/src/pugl/pugl_win.cpp @@ -377,6 +377,9 @@ setModifiers(PuglView* view) view->mods |= (GetKeyState(VK_RWIN) < 0) ? PUGL_MOD_SUPER : 0; } +/** + Convert system specific keycodes into system independent ones (PuglKeyCodes) +*/ static unsigned keycodeToHID(unsigned keycode) { diff --git a/dgl/src/pugl/pugl_x11.c b/dgl/src/pugl/pugl_x11.c index 0f7f0460..e80105af 100644 --- a/dgl/src/pugl/pugl_x11.c +++ b/dgl/src/pugl/pugl_x11.c @@ -486,6 +486,9 @@ setModifiers(PuglView* view, unsigned xstate, unsigned xtime) view->mods |= (xstate & Mod4Mask) ? PUGL_MOD_SUPER : 0; } +/** + convert system specific keycodes into system independent ones (PuglKeyCodes) + */ static unsigned scancodeToHID(unsigned scancode) { From 07c65851ba7bb19f9b64638ea3e9b8e3f41eb9cd Mon Sep 17 00:00:00 2001 From: Patrick Desaulniers Date: Mon, 26 Aug 2019 17:46:08 -0400 Subject: [PATCH 3/5] Adjustments to keycode support --- dgl/src/pugl/{COPYING => COPYING.keycode} | 0 dgl/src/pugl/pugl_osx.m | 2 +- dgl/src/pugl/pugl_win.cpp | 2 +- dgl/src/pugl/pugl_x11.c | 7 +++++-- 4 files changed, 7 insertions(+), 4 deletions(-) rename dgl/src/pugl/{COPYING => COPYING.keycode} (100%) diff --git a/dgl/src/pugl/COPYING b/dgl/src/pugl/COPYING.keycode similarity index 100% rename from dgl/src/pugl/COPYING rename to dgl/src/pugl/COPYING.keycode diff --git a/dgl/src/pugl/pugl_osx.m b/dgl/src/pugl/pugl_osx.m index 0bc54534..5662079e 100644 --- a/dgl/src/pugl/pugl_osx.m +++ b/dgl/src/pugl/pugl_osx.m @@ -127,7 +127,7 @@ getModifiers(PuglView* view, NSEvent* ev) static unsigned scancodeToHID(unsigned scancode) { - const unsigned char KEYCODE_MACOS_TO_HID[128] = { + static const unsigned char KEYCODE_MACOS_TO_HID[128] = { 4,22,7,9,11,10,29,27,6,25,0,5,20,26,8,21,28,23,30,31,32,33,35,34,46,38,36, 45,37,39,48,18,24,47,12,19,158,15,13,52,14,51,49,54,56,17,16,55,43,44,53,42, 0,41,231,227,225,57,226,224,229,230,228,0,108,220,0,85,0,87,0,216,0,0,127, diff --git a/dgl/src/pugl/pugl_win.cpp b/dgl/src/pugl/pugl_win.cpp index 1e03f483..50e03986 100644 --- a/dgl/src/pugl/pugl_win.cpp +++ b/dgl/src/pugl/pugl_win.cpp @@ -383,7 +383,7 @@ setModifiers(PuglView* view) static unsigned keycodeToHID(unsigned keycode) { - const unsigned char KEYCODE_WINDOWS_TO_HID[256] = { + static const unsigned char KEYCODE_WINDOWS_TO_HID[256] = { 0,41,30,31,32,33,34,35,36,37,38,39,45,46,42,43,20,26,8,21,23,28,24,12,18,19, 47,48,158,224,4,22,7,9,10,11,13,14,15,51,52,53,225,49,29,27,6,25,5,17,16,54, 55,56,229,0,226,0,57,58,59,60,61,62,63,64,65,66,67,72,71,0,0,0,0,0,0,0,0,0, diff --git a/dgl/src/pugl/pugl_x11.c b/dgl/src/pugl/pugl_x11.c index e80105af..62274c25 100644 --- a/dgl/src/pugl/pugl_x11.c +++ b/dgl/src/pugl/pugl_x11.c @@ -492,7 +492,7 @@ setModifiers(PuglView* view, unsigned xstate, unsigned xtime) static unsigned scancodeToHID(unsigned scancode) { - const unsigned char KEYCODE_LINUX_TO_HID[256] = { + static const unsigned char KEYCODE_LINUX_TO_HID[256] = { 0,41,30,31,32,33,34,35,36,37,38,39,45,46,42,43,20,26,8,21,23,28,24,12,18,19, 47,48,158,224,4,22,7,9,10,11,13,14,15,51,52,53,225,49,29,27,6,25,5,17,16,54, 55,56,229,85,226,44,57,58,59,60,61,62,63,64,65,66,67,83,71,95,96,97,86,92, @@ -505,8 +505,11 @@ scancodeToHID(unsigned scancode) }; //On Linux, the keycodes are offset by KEYCODE_EVDEV_OFFSET when they are sent by evdev - const unsigned KEYCODE_EVDEV_OFFSET = 8; + static const unsigned KEYCODE_EVDEV_OFFSET = 8; + if (scancode < KEYCODE_EVDEV_OFFSET) + return 0; + scancode -= KEYCODE_EVDEV_OFFSET; if (scancode >= 256) From 86c40bc5294174d71b93dcb8ca6d2a6164797569 Mon Sep 17 00:00:00 2001 From: Patrick Desaulniers Date: Mon, 26 Aug 2019 17:59:20 -0400 Subject: [PATCH 4/5] Tweak indentation --- dgl/src/pugl/pugl.h | 256 +++++++++++++++++++------------------- dgl/src/pugl/pugl_osx.m | 20 +-- dgl/src/pugl/pugl_win.cpp | 22 ++-- dgl/src/pugl/pugl_x11.c | 30 ++--- 4 files changed, 164 insertions(+), 164 deletions(-) diff --git a/dgl/src/pugl/pugl.h b/dgl/src/pugl/pugl.h index 90f516e9..b22a704d 100644 --- a/dgl/src/pugl/pugl.h +++ b/dgl/src/pugl/pugl.h @@ -124,136 +124,136 @@ typedef enum { /** Layout-independent keycodes. - These keycodes are relative to an US QWERTY keyboard. + These keycodes are relative to an US QWERTY keyboard. Therefore, the keycode for the letter 'A' on an AZERTY keyboard will be equal to PUGL_KC_Q. - */ +*/ typedef enum { - /* Zero, does not correspond to any key. */ - PUGL_KC_None = 0, - - PUGL_KC_A = 4, - PUGL_KC_B = 5, - PUGL_KC_C = 6, - PUGL_KC_D = 7, - PUGL_KC_E = 8, - PUGL_KC_F = 9, - PUGL_KC_G = 10, - PUGL_KC_H = 11, - PUGL_KC_I = 12, - PUGL_KC_J = 13, - PUGL_KC_K = 14, - PUGL_KC_L = 15, - PUGL_KC_M = 16, - PUGL_KC_N = 17, - PUGL_KC_O = 18, - PUGL_KC_P = 19, - PUGL_KC_Q = 20, - PUGL_KC_R = 21, - PUGL_KC_S = 22, - PUGL_KC_T = 23, - PUGL_KC_U = 24, - PUGL_KC_V = 25, - PUGL_KC_W = 26, - PUGL_KC_X = 27, - PUGL_KC_Y = 28, - PUGL_KC_Z = 29, - PUGL_KC_1 = 30, - PUGL_KC_2 = 31, - PUGL_KC_3 = 32, - PUGL_KC_4 = 33, - PUGL_KC_5 = 34, - PUGL_KC_6 = 35, - PUGL_KC_7 = 36, - PUGL_KC_8 = 37, - PUGL_KC_9 = 38, - PUGL_KC_0 = 39, - PUGL_KC_Escape = 41, - PUGL_KC_Delete = 42, - PUGL_KC_Tab = 43, - PUGL_KC_Space = 44, - PUGL_KC_Minus = 45, - PUGL_KC_Equals = 46, - PUGL_KC_LeftBracket = 47, - PUGL_KC_RightBracket = 48, - PUGL_KC_Backslash = 49, - PUGL_KC_Semicolon = 51, - PUGL_KC_Quote = 52, - PUGL_KC_Grave = 53, - PUGL_KC_Comma = 54, - PUGL_KC_Period = 55, - PUGL_KC_Slash = 56, - PUGL_KC_CapsLock = 57, - PUGL_KC_F1 = 58, - PUGL_KC_F2 = 59, - PUGL_KC_F3 = 60, - PUGL_KC_F4 = 61, - PUGL_KC_F5 = 62, - PUGL_KC_F6 = 63, - PUGL_KC_F7 = 64, - PUGL_KC_F8 = 65, - PUGL_KC_F9 = 66, - PUGL_KC_F10 = 67, - PUGL_KC_F11 = 68, - PUGL_KC_F12 = 69, - PUGL_KC_PrintScreen = 70, - PUGL_KC_ScrollLock = 71, - PUGL_KC_Pause = 72, - PUGL_KC_Insert = 73, - PUGL_KC_Home = 74, - PUGL_KC_PageUp = 75, - PUGL_KC_DeleteForward = 76, - PUGL_KC_End = 77, - PUGL_KC_PageDown = 78, - PUGL_KC_Right = 79, - PUGL_KC_Left = 80, - PUGL_KC_Down = 81, - PUGL_KC_Up = 82, - PUGL_KC_KP_NumLock = 83, - PUGL_KC_KP_Divide = 84, - PUGL_KC_KP_Multiply = 85, - PUGL_KC_KP_Subtract = 86, - PUGL_KC_KP_Add = 87, - PUGL_KC_KP_Enter = 88, - PUGL_KC_KP_1 = 89, - PUGL_KC_KP_2 = 90, - PUGL_KC_KP_3 = 91, - PUGL_KC_KP_4 = 92, - PUGL_KC_KP_5 = 93, - PUGL_KC_KP_6 = 94, - PUGL_KC_KP_7 = 95, - PUGL_KC_KP_8 = 96, - PUGL_KC_KP_9 = 97, - PUGL_KC_KP_0 = 98, - PUGL_KC_Point = 99, - PUGL_KC_NonUSBackslash = 100, - PUGL_KC_KP_Equals = 103, - PUGL_KC_F13 = 104, - PUGL_KC_F14 = 105, - PUGL_KC_F15 = 106, - PUGL_KC_F16 = 107, - PUGL_KC_F17 = 108, - PUGL_KC_F18 = 109, - PUGL_KC_F19 = 110, - PUGL_KC_F20 = 111, - PUGL_KC_F21 = 112, - PUGL_KC_F22 = 113, - PUGL_KC_F23 = 114, - PUGL_KC_F24 = 115, - PUGL_KC_Help = 117, - PUGL_KC_Menu = 118, - PUGL_KC_Mute = 127, - PUGL_KC_SysReq = 154, - PUGL_KC_Return = 158, - PUGL_KC_KP_Clear = 216, - PUGL_KC_KP_Decimal = 220, - PUGL_KC_LeftControl = 224, - PUGL_KC_LeftShift = 225, - PUGL_KC_LeftAlt = 226, - PUGL_KC_LeftGUI = 227, - PUGL_KC_RightControl = 228, - PUGL_KC_RightShift = 229, - PUGL_KC_RightAlt = 230, - PUGL_KC_RightGUI = 231 + /* Zero, does not correspond to any key. */ + PUGL_KC_None = 0, + + PUGL_KC_A = 4, + PUGL_KC_B = 5, + PUGL_KC_C = 6, + PUGL_KC_D = 7, + PUGL_KC_E = 8, + PUGL_KC_F = 9, + PUGL_KC_G = 10, + PUGL_KC_H = 11, + PUGL_KC_I = 12, + PUGL_KC_J = 13, + PUGL_KC_K = 14, + PUGL_KC_L = 15, + PUGL_KC_M = 16, + PUGL_KC_N = 17, + PUGL_KC_O = 18, + PUGL_KC_P = 19, + PUGL_KC_Q = 20, + PUGL_KC_R = 21, + PUGL_KC_S = 22, + PUGL_KC_T = 23, + PUGL_KC_U = 24, + PUGL_KC_V = 25, + PUGL_KC_W = 26, + PUGL_KC_X = 27, + PUGL_KC_Y = 28, + PUGL_KC_Z = 29, + PUGL_KC_1 = 30, + PUGL_KC_2 = 31, + PUGL_KC_3 = 32, + PUGL_KC_4 = 33, + PUGL_KC_5 = 34, + PUGL_KC_6 = 35, + PUGL_KC_7 = 36, + PUGL_KC_8 = 37, + PUGL_KC_9 = 38, + PUGL_KC_0 = 39, + PUGL_KC_Escape = 41, + PUGL_KC_Delete = 42, + PUGL_KC_Tab = 43, + PUGL_KC_Space = 44, + PUGL_KC_Minus = 45, + PUGL_KC_Equals = 46, + PUGL_KC_LeftBracket = 47, + PUGL_KC_RightBracket = 48, + PUGL_KC_Backslash = 49, + PUGL_KC_Semicolon = 51, + PUGL_KC_Quote = 52, + PUGL_KC_Grave = 53, + PUGL_KC_Comma = 54, + PUGL_KC_Period = 55, + PUGL_KC_Slash = 56, + PUGL_KC_CapsLock = 57, + PUGL_KC_F1 = 58, + PUGL_KC_F2 = 59, + PUGL_KC_F3 = 60, + PUGL_KC_F4 = 61, + PUGL_KC_F5 = 62, + PUGL_KC_F6 = 63, + PUGL_KC_F7 = 64, + PUGL_KC_F8 = 65, + PUGL_KC_F9 = 66, + PUGL_KC_F10 = 67, + PUGL_KC_F11 = 68, + PUGL_KC_F12 = 69, + PUGL_KC_PrintScreen = 70, + PUGL_KC_ScrollLock = 71, + PUGL_KC_Pause = 72, + PUGL_KC_Insert = 73, + PUGL_KC_Home = 74, + PUGL_KC_PageUp = 75, + PUGL_KC_DeleteForward = 76, + PUGL_KC_End = 77, + PUGL_KC_PageDown = 78, + PUGL_KC_Right = 79, + PUGL_KC_Left = 80, + PUGL_KC_Down = 81, + PUGL_KC_Up = 82, + PUGL_KC_KP_NumLock = 83, + PUGL_KC_KP_Divide = 84, + PUGL_KC_KP_Multiply = 85, + PUGL_KC_KP_Subtract = 86, + PUGL_KC_KP_Add = 87, + PUGL_KC_KP_Enter = 88, + PUGL_KC_KP_1 = 89, + PUGL_KC_KP_2 = 90, + PUGL_KC_KP_3 = 91, + PUGL_KC_KP_4 = 92, + PUGL_KC_KP_5 = 93, + PUGL_KC_KP_6 = 94, + PUGL_KC_KP_7 = 95, + PUGL_KC_KP_8 = 96, + PUGL_KC_KP_9 = 97, + PUGL_KC_KP_0 = 98, + PUGL_KC_Point = 99, + PUGL_KC_NonUSBackslash = 100, + PUGL_KC_KP_Equals = 103, + PUGL_KC_F13 = 104, + PUGL_KC_F14 = 105, + PUGL_KC_F15 = 106, + PUGL_KC_F16 = 107, + PUGL_KC_F17 = 108, + PUGL_KC_F18 = 109, + PUGL_KC_F19 = 110, + PUGL_KC_F20 = 111, + PUGL_KC_F21 = 112, + PUGL_KC_F22 = 113, + PUGL_KC_F23 = 114, + PUGL_KC_F24 = 115, + PUGL_KC_Help = 117, + PUGL_KC_Menu = 118, + PUGL_KC_Mute = 127, + PUGL_KC_SysReq = 154, + PUGL_KC_Return = 158, + PUGL_KC_KP_Clear = 216, + PUGL_KC_KP_Decimal = 220, + PUGL_KC_LeftControl = 224, + PUGL_KC_LeftShift = 225, + PUGL_KC_LeftAlt = 226, + PUGL_KC_LeftGUI = 227, + PUGL_KC_RightControl = 228, + PUGL_KC_RightShift = 229, + PUGL_KC_RightAlt = 230, + PUGL_KC_RightGUI = 231 } PuglKeyCodes; /** diff --git a/dgl/src/pugl/pugl_osx.m b/dgl/src/pugl/pugl_osx.m index 5662079e..8b14cdeb 100644 --- a/dgl/src/pugl/pugl_osx.m +++ b/dgl/src/pugl/pugl_osx.m @@ -124,22 +124,22 @@ getModifiers(PuglView* view, NSEvent* ev) /** Convert system specific keycodes into system independent ones (PuglKeyCodes) */ -static unsigned +static unsigned scancodeToHID(unsigned scancode) { static const unsigned char KEYCODE_MACOS_TO_HID[128] = { - 4,22,7,9,11,10,29,27,6,25,0,5,20,26,8,21,28,23,30,31,32,33,35,34,46,38,36, - 45,37,39,48,18,24,47,12,19,158,15,13,52,14,51,49,54,56,17,16,55,43,44,53,42, - 0,41,231,227,225,57,226,224,229,230,228,0,108,220,0,85,0,87,0,216,0,0,127, - 84,88,0,86,109,110,103,98,89,90,91,92,93,94,95,111,96,97,0,0,0,62,63,64,60, - 65,66,0,68,0,104,107,105,0,67,0,69,0,106,117,74,75,76,61,77,59,78,58,80,79, - 81,82,0 + 4,22,7,9,11,10,29,27,6,25,0,5,20,26,8,21,28,23,30,31,32,33,35,34,46,38,36, + 45,37,39,48,18,24,47,12,19,158,15,13,52,14,51,49,54,56,17,16,55,43,44,53,42, + 0,41,231,227,225,57,226,224,229,230,228,0,108,220,0,85,0,87,0,216,0,0,127, + 84,88,0,86,109,110,103,98,89,90,91,92,93,94,95,111,96,97,0,0,0,62,63,64,60, + 65,66,0,68,0,104,107,105,0,67,0,69,0,106,117,74,75,76,61,77,59,78,58,80,79, + 81,82,0 }; - if (scancode >= 128) - return 0; + if (scancode >= 128) + return 0; - return KEYCODE_MACOS_TO_HID[scancode]; + return KEYCODE_MACOS_TO_HID[scancode]; } static int diff --git a/dgl/src/pugl/pugl_win.cpp b/dgl/src/pugl/pugl_win.cpp index 50e03986..ba961cd7 100644 --- a/dgl/src/pugl/pugl_win.cpp +++ b/dgl/src/pugl/pugl_win.cpp @@ -384,20 +384,20 @@ static unsigned keycodeToHID(unsigned keycode) { static const unsigned char KEYCODE_WINDOWS_TO_HID[256] = { - 0,41,30,31,32,33,34,35,36,37,38,39,45,46,42,43,20,26,8,21,23,28,24,12,18,19, - 47,48,158,224,4,22,7,9,10,11,13,14,15,51,52,53,225,49,29,27,6,25,5,17,16,54, - 55,56,229,0,226,0,57,58,59,60,61,62,63,64,65,66,67,72,71,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,68,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,230,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,74,82,75,0,80,0,79,0,77,81,78,73,76,0,0,0,0,0,0,0,227,231, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,41,30,31,32,33,34,35,36,37,38,39,45,46,42,43,20,26,8,21,23,28,24,12,18,19, + 47,48,158,224,4,22,7,9,10,11,13,14,15,51,52,53,225,49,29,27,6,25,5,17,16,54, + 55,56,229,0,226,0,57,58,59,60,61,62,63,64,65,66,67,72,71,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,68,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,230,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,74,82,75,0,80,0,79,0,77,81,78,73,76,0,0,0,0,0,0,0,227,231, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; - if (keycode >= 256) - return 0; + if (keycode >= 256) + return 0; - return KEYCODE_WINDOWS_TO_HID[keycode]; + return KEYCODE_WINDOWS_TO_HID[keycode]; } static LRESULT diff --git a/dgl/src/pugl/pugl_x11.c b/dgl/src/pugl/pugl_x11.c index 62274c25..1d4c40dc 100644 --- a/dgl/src/pugl/pugl_x11.c +++ b/dgl/src/pugl/pugl_x11.c @@ -493,29 +493,29 @@ static unsigned scancodeToHID(unsigned scancode) { static const unsigned char KEYCODE_LINUX_TO_HID[256] = { - 0,41,30,31,32,33,34,35,36,37,38,39,45,46,42,43,20,26,8,21,23,28,24,12,18,19, - 47,48,158,224,4,22,7,9,10,11,13,14,15,51,52,53,225,49,29,27,6,25,5,17,16,54, - 55,56,229,85,226,44,57,58,59,60,61,62,63,64,65,66,67,83,71,95,96,97,86,92, - 93,94,87,89,90,91,98,99,0,0,100,68,69,0,0,0,0,0,0,0,88,228,84,154,230,0,74, - 82,75,80,79,77,81,78,73,76,0,0,0,0,0,103,0,72,0,0,0,0,0,227,231,0,0,0,0,0,0, - 0,0,0,0,0,0,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,104,105,106,107,108,109,110,111,112,113,114,115,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + 0,41,30,31,32,33,34,35,36,37,38,39,45,46,42,43,20,26,8,21,23,28,24,12,18,19, + 47,48,158,224,4,22,7,9,10,11,13,14,15,51,52,53,225,49,29,27,6,25,5,17,16,54, + 55,56,229,85,226,44,57,58,59,60,61,62,63,64,65,66,67,83,71,95,96,97,86,92, + 93,94,87,89,90,91,98,99,0,0,100,68,69,0,0,0,0,0,0,0,88,228,84,154,230,0,74, + 82,75,80,79,77,81,78,73,76,0,0,0,0,0,103,0,72,0,0,0,0,0,227,231,0,0,0,0,0,0, + 0,0,0,0,0,0,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,104,105,106,107,108,109,110,111,112,113,114,115,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; //On Linux, the keycodes are offset by KEYCODE_EVDEV_OFFSET when they are sent by evdev static const unsigned KEYCODE_EVDEV_OFFSET = 8; - if (scancode < KEYCODE_EVDEV_OFFSET) - return 0; - + if (scancode < KEYCODE_EVDEV_OFFSET) + return 0; + scancode -= KEYCODE_EVDEV_OFFSET; - if (scancode >= 256) - return 0; + if (scancode >= 256) + return 0; - return KEYCODE_LINUX_TO_HID[scancode]; + return KEYCODE_LINUX_TO_HID[scancode]; } static void From b34b29cf277ff068c53cf5e3730419685ca44dee Mon Sep 17 00:00:00 2001 From: Patrick Desaulniers Date: Mon, 26 Aug 2019 18:21:46 -0400 Subject: [PATCH 5/5] Expose keycodes in Base.hpp --- dgl/Base.hpp | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/dgl/Base.hpp b/dgl/Base.hpp index 90377883..0feda98a 100644 --- a/dgl/Base.hpp +++ b/dgl/Base.hpp @@ -86,6 +86,140 @@ enum Key { kKeySuper }; +/** + Layout-independent keycodes. + These keycodes are relative to an US QWERTY keyboard. + Therefore, the keycode for the letter 'A' on an AZERTY keyboard will be equal to kKeyCodeQ. + */ +enum KeyCode { + /* Zero, does not correspond to any key. */ + kKeyCodeNone = 0, + + kKeyCodeA = 4, + kKeyCodeB = 5, + kKeyCodeC = 6, + kKeyCodeD = 7, + kKeyCodeE = 8, + kKeyCodeF = 9, + kKeyCodeG = 10, + kKeyCodeH = 11, + kKeyCodeI = 12, + kKeyCodeJ = 13, + kKeyCodeK = 14, + kKeyCodeL = 15, + kKeyCodeM = 16, + kKeyCodeN = 17, + kKeyCodeO = 18, + kKeyCodeP = 19, + kKeyCodeQ = 20, + kKeyCodeR = 21, + kKeyCodeS = 22, + kKeyCodeT = 23, + kKeyCodeU = 24, + kKeyCodeV = 25, + kKeyCodeW = 26, + kKeyCodeX = 27, + kKeyCodeY = 28, + kKeyCodeZ = 29, + kKeyCode1 = 30, + kKeyCode2 = 31, + kKeyCode3 = 32, + kKeyCode4 = 33, + kKeyCode5 = 34, + kKeyCode6 = 35, + kKeyCode7 = 36, + kKeyCode8 = 37, + kKeyCode9 = 38, + kKeyCode0 = 39, + kKeyCodeEscape = 41, + kKeyCodeDelete = 42, + kKeyCodeTab = 43, + kKeyCodeSpace = 44, + kKeyCodeMinus = 45, + kKeyCodeEquals = 46, + kKeyCodeLeftBracket = 47, + kKeyCodeRightBracket = 48, + kKeyCodeBackslash = 49, + kKeyCodeSemicolon = 51, + kKeyCodeQuote = 52, + kKeyCodeGrave = 53, + kKeyCodeComma = 54, + kKeyCodePeriod = 55, + kKeyCodeSlash = 56, + kKeyCodeCapsLock = 57, + kKeyCodeF1 = 58, + kKeyCodeF2 = 59, + kKeyCodeF3 = 60, + kKeyCodeF4 = 61, + kKeyCodeF5 = 62, + kKeyCodeF6 = 63, + kKeyCodeF7 = 64, + kKeyCodeF8 = 65, + kKeyCodeF9 = 66, + kKeyCodeF10 = 67, + kKeyCodeF11 = 68, + kKeyCodeF12 = 69, + kKeyCodePrintScreen = 70, + kKeyCodeScrollLock = 71, + kKeyCodePause = 72, + kKeyCodeInsert = 73, + kKeyCodeHome = 74, + kKeyCodePageUp = 75, + kKeyCodeDeleteForward = 76, + kKeyCodeEnd = 77, + kKeyCodePageDown = 78, + kKeyCodeRight = 79, + kKeyCodeLeft = 80, + kKeyCodeDown = 81, + kKeyCodeUp = 82, + kKeyCodeKP_NumLock = 83, + kKeyCodeKP_Divide = 84, + kKeyCodeKP_Multiply = 85, + kKeyCodeKP_Subtract = 86, + kKeyCodeKP_Add = 87, + kKeyCodeKP_Enter = 88, + kKeyCodeKP_1 = 89, + kKeyCodeKP_2 = 90, + kKeyCodeKP_3 = 91, + kKeyCodeKP_4 = 92, + kKeyCodeKP_5 = 93, + kKeyCodeKP_6 = 94, + kKeyCodeKP_7 = 95, + kKeyCodeKP_8 = 96, + kKeyCodeKP_9 = 97, + kKeyCodeKP_0 = 98, + kKeyCodePoint = 99, + kKeyCodeNonUSBackslash = 100, + kKeyCodeKP_Equals = 103, + kKeyCodeF13 = 104, + kKeyCodeF14 = 105, + kKeyCodeF15 = 106, + kKeyCodeF16 = 107, + kKeyCodeF17 = 108, + kKeyCodeF18 = 109, + kKeyCodeF19 = 110, + kKeyCodeF20 = 111, + kKeyCodeF21 = 112, + kKeyCodeF22 = 113, + kKeyCodeF23 = 114, + kKeyCodeF24 = 115, + kKeyCodeHelp = 117, + kKeyCodeMenu = 118, + kKeyCodeMute = 127, + kKeyCodeSysReq = 154, + kKeyCodeReturn = 158, + kKeyCodeKP_Clear = 216, + kKeyCodeKP_Decimal = 220, + kKeyCodeLeftControl = 224, + kKeyCodeLeftShift = 225, + kKeyCodeLeftAlt = 226, + kKeyCodeLeftGUI = 227, + kKeyCodeRightControl = 228, + kKeyCodeRightShift = 229, + kKeyCodeRightAlt = 230, + kKeyCodeRightGUI = 231 +}; + // ----------------------------------------------------------------------- // Base DGL classes