From 7a92708fd394df421259caa73034062fbfec0a5a Mon Sep 17 00:00:00 2001 From: Deve Date: Thu, 20 Jul 2017 22:14:57 +0200 Subject: [PATCH] Use key names in wayland device --- .../source/Irrlicht/CIrrDeviceWayland.cpp | 278 +++++++++--------- 1 file changed, 134 insertions(+), 144 deletions(-) diff --git a/lib/irrlicht/source/Irrlicht/CIrrDeviceWayland.cpp b/lib/irrlicht/source/Irrlicht/CIrrDeviceWayland.cpp index 6026aaaa9..8493ecf5a 100644 --- a/lib/irrlicht/source/Irrlicht/CIrrDeviceWayland.cpp +++ b/lib/irrlicht/source/Irrlicht/CIrrDeviceWayland.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -30,18 +31,9 @@ #if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ #include #include - -// linux/joystick.h includes linux/input.h, which #defines values for various -// KEY_FOO keys. These override the irr::KEY_FOO equivalents, which stops key -// handling from working. As a workaround, defining _INPUT_H stops linux/input.h -// from being included; it doesn't actually seem to be necessary except to pull -// in sys/ioctl.h. -#define _INPUT_H -#include // Would normally be included in linux/input.h +#include #include -#undef _INPUT_H - -#endif // _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ +#endif #include "CColorConverter.h" #include "CContextEGL.h" @@ -132,7 +124,7 @@ public: switch (button) { - case 272: + case BTN_LEFT: if (state == WL_POINTER_BUTTON_STATE_PRESSED) { irrevent.MouseInput.Event = irr::EMIE_LMOUSE_PRESSED_DOWN; @@ -144,7 +136,7 @@ public: device->m_mouse_button_states &= ~(irr::EMBSM_LEFT); } break; - case 273: + case BTN_RIGHT: if (state == WL_POINTER_BUTTON_STATE_PRESSED) { irrevent.MouseInput.Event = irr::EMIE_RMOUSE_PRESSED_DOWN; @@ -156,7 +148,7 @@ public: device->m_mouse_button_states &= ~(irr::EMBSM_RIGHT); } break; - case 274: + case BTN_MIDDLE: if (state == WL_POINTER_BUTTON_STATE_PRESSED) { irrevent.MouseInput.Event = irr::EMIE_MMOUSE_PRESSED_DOWN; @@ -179,8 +171,6 @@ public: device->signalEvent(irrevent); - // It's not exactly true for middle/right button, but keep - // consistency with x11 device if (irrevent.MouseInput.Event >= EMIE_LMOUSE_PRESSED_DOWN && irrevent.MouseInput.Event <= EMIE_MMOUSE_PRESSED_DOWN) { @@ -196,7 +186,7 @@ public: device->signalEvent(irrevent); } - else if ( clicks == 3 ) + else if (clicks == 3) { irrevent.MouseInput.Event = (EMOUSE_INPUT_EVENT)(EMIE_LMOUSE_TRIPLE_CLICK + @@ -1085,133 +1075,133 @@ void CIrrDeviceWayland::clearSystemMessages() void CIrrDeviceWayland::createKeyMap() { - m_key_map[0] = IRR_KEY_UNKNOWN; //KEY_RESERVED - m_key_map[1] = IRR_KEY_ESCAPE; //KEY_ESC - m_key_map[2] = IRR_KEY_1; //KEY_1 - m_key_map[3] = IRR_KEY_2; //KEY_2 - m_key_map[4] = IRR_KEY_3; //KEY_3 - m_key_map[5] = IRR_KEY_4; //KEY_4 - m_key_map[6] = IRR_KEY_5; //KEY_5 - m_key_map[7] = IRR_KEY_6; //KEY_6 - m_key_map[8] = IRR_KEY_7; //KEY_7 - m_key_map[9] = IRR_KEY_8; //KEY_8 - m_key_map[10] = IRR_KEY_9; //KEY_9 - m_key_map[11] = IRR_KEY_0; //KEY_0 - m_key_map[12] = IRR_KEY_MINUS; //KEY_MINUS - m_key_map[13] = IRR_KEY_PLUS; //KEY_EQUAL - m_key_map[14] = IRR_KEY_BACK; //KEY_BACKSPACE - m_key_map[15] = IRR_KEY_TAB; //KEY_TAB - m_key_map[16] = IRR_KEY_Q; //KEY_Q - m_key_map[17] = IRR_KEY_W; //KEY_W - m_key_map[18] = IRR_KEY_E; //KEY_E - m_key_map[19] = IRR_KEY_R; //KEY_R - m_key_map[20] = IRR_KEY_T; //KEY_T - m_key_map[21] = IRR_KEY_Y; //KEY_Y - m_key_map[22] = IRR_KEY_U; //KEY_U - m_key_map[23] = IRR_KEY_I; //KEY_I - m_key_map[25] = IRR_KEY_P; //KEY_P - m_key_map[24] = IRR_KEY_O; //KEY_O - m_key_map[26] = IRR_KEY_OEM_4; //KEY_LEFTBRACE - m_key_map[27] = IRR_KEY_OEM_6; //KEY_RIGHTBRACE - m_key_map[28] = IRR_KEY_RETURN; //KEY_ENTER - m_key_map[29] = IRR_KEY_LCONTROL; //KEY_LEFTCTRL - m_key_map[30] = IRR_KEY_A; //KEY_A - m_key_map[31] = IRR_KEY_S; // KEY_S - m_key_map[32] = IRR_KEY_D; //KEY_D - m_key_map[33] = IRR_KEY_F; //KEY_F - m_key_map[34] = IRR_KEY_G; //KEY_G - m_key_map[35] = IRR_KEY_H; //KEY_H - m_key_map[36] = IRR_KEY_J; //KEY_J - m_key_map[37] = IRR_KEY_K; //KEY_K - m_key_map[38] = IRR_KEY_L; //KEY_L - m_key_map[39] = IRR_KEY_OEM_1; //KEY_SEMICOLON - m_key_map[40] = IRR_KEY_OEM_7; //KEY_APOSTROPHE - m_key_map[41] = IRR_KEY_OEM_3; //KEY_GRAVE - m_key_map[42] = IRR_KEY_LSHIFT; //KEY_LEFTSHIFT - m_key_map[43] = IRR_KEY_OEM_5; //KEY_BACKSLASH - m_key_map[44] = IRR_KEY_Z; //KEY_Z - m_key_map[45] = IRR_KEY_X; //KEY_X - m_key_map[46] = IRR_KEY_C; //KEY_C - m_key_map[47] = IRR_KEY_V; //KEY_V - m_key_map[48] = IRR_KEY_B; //KEY_B - m_key_map[49] = IRR_KEY_N; //KEY_N - m_key_map[50] = IRR_KEY_M; //KEY_M - m_key_map[51] = IRR_KEY_COMMA; //KEY_COMMA - m_key_map[52] = IRR_KEY_PERIOD; //KEY_DOT - m_key_map[53] = IRR_KEY_OEM_2; // KEY_SLASH - m_key_map[54] = IRR_KEY_RSHIFT; //KEY_RIGHTSHIFT - m_key_map[55] = IRR_KEY_MULTIPLY; //KEY_KPASTERISK - m_key_map[56] = IRR_KEY_LMENU; //KEY_LEFTALT - m_key_map[57] = IRR_KEY_SPACE; //KEY_SPACE - m_key_map[58] = IRR_KEY_CAPITAL; //KEY_CAPSLOCK - m_key_map[59] = IRR_KEY_F1; //KEY_F1 - m_key_map[60] = IRR_KEY_F2; //KEY_F2 - m_key_map[61] = IRR_KEY_F3; //KEY_F3 - m_key_map[62] = IRR_KEY_F4; //KEY_F4 - m_key_map[63] = IRR_KEY_F5; //KEY_F5 - m_key_map[64] = IRR_KEY_F6; //KEY_F6 - m_key_map[65] = IRR_KEY_F7; //KEY_F7 - m_key_map[66] = IRR_KEY_F8; //KEY_F8 - m_key_map[67] = IRR_KEY_F9; //KEY_F9 - m_key_map[68] = IRR_KEY_F10; //KEY_F10 - m_key_map[69] = IRR_KEY_NUMLOCK; //KEY_NUMLOCK - m_key_map[70] = IRR_KEY_SCROLL; //KEY_SCROLLLOCK - m_key_map[71] = IRR_KEY_NUMPAD7; //KEY_KP7 - m_key_map[72] = IRR_KEY_NUMPAD8; //KEY_KP8 - m_key_map[73] = IRR_KEY_NUMPAD9; //KEY_KP9 - m_key_map[74] = IRR_KEY_SUBTRACT; //KEY_KPMINUS - m_key_map[75] = IRR_KEY_NUMPAD4; //KEY_KP4 - m_key_map[76] = IRR_KEY_NUMPAD5; //KEY_KP5 - m_key_map[77] = IRR_KEY_NUMPAD6; //KEY_KP6 - m_key_map[78] = IRR_KEY_ADD; //KEY_KPPLUS - m_key_map[79] = IRR_KEY_NUMPAD1; //KEY_KP1 - m_key_map[80] = IRR_KEY_NUMPAD2; //KEY_KP2 - m_key_map[81] = IRR_KEY_NUMPAD3; //KEY_KP3 - m_key_map[82] = IRR_KEY_NUMPAD0; //KEY_KP0 - m_key_map[83] = IRR_KEY_SEPARATOR; //KEY_KPDOT - m_key_map[85] = IRR_KEY_UNKNOWN; //KEY_ZENKAKUHANKAKU - m_key_map[86] = IRR_KEY_OEM_102; //KEY_102ND - m_key_map[87] = IRR_KEY_F11; //KEY_F11 - m_key_map[88] = IRR_KEY_F12; //KEY_F12 - m_key_map[89] = IRR_KEY_UNKNOWN; //KEY_RO - m_key_map[90] = IRR_KEY_UNKNOWN; //KEY_KATAKANA - m_key_map[91] = IRR_KEY_UNKNOWN; //KEY_HIRAGANA - m_key_map[92] = IRR_KEY_UNKNOWN; //KEY_HENKAN - m_key_map[93] = IRR_KEY_UNKNOWN; //KEY_KATAKANAHIRAGANA - m_key_map[94] = IRR_KEY_UNKNOWN; //KEY_MUHENKAN - m_key_map[95] = IRR_KEY_SEPARATOR; //KEY_KPJPCOMMA - m_key_map[96] = IRR_KEY_RETURN; //KEY_KPENTER - m_key_map[97] = IRR_KEY_RCONTROL; //KEY_RIGHTCTRL - m_key_map[98] = IRR_KEY_DIVIDE; //KEY_KPSLASH - m_key_map[99] = IRR_KEY_UNKNOWN; //KEY_SYSRQ - m_key_map[100] = IRR_KEY_RMENU; //KEY_RIGHTALT - m_key_map[101] = IRR_KEY_UNKNOWN; //KEY_LINEFEED - m_key_map[102] = IRR_KEY_HOME; //KEY_HOME - m_key_map[103] = IRR_KEY_UP; //KEY_UP - m_key_map[104] = IRR_KEY_PRIOR; //KEY_PAGEUP - m_key_map[105] = IRR_KEY_LEFT; //KEY_LEFT - m_key_map[106] = IRR_KEY_RIGHT; //KEY_RIGHT - m_key_map[107] = IRR_KEY_END; //KEY_END - m_key_map[108] = IRR_KEY_DOWN; //KEY_DOWN - m_key_map[109] = IRR_KEY_NEXT; //KEY_PAGEDOWN - m_key_map[110] = IRR_KEY_INSERT; //KEY_INSERT - m_key_map[111] = IRR_KEY_DELETE; //KEY_DELETE - m_key_map[112] = IRR_KEY_UNKNOWN; //KEY_MACRO - m_key_map[113] = IRR_KEY_VOLUME_MUTE; //KEY_MUTE - m_key_map[114] = IRR_KEY_VOLUME_DOWN; //KEY_VOLUMEDOWN - m_key_map[115] = IRR_KEY_VOLUME_UP; //KEY_VOLUMEUP - m_key_map[116] = IRR_KEY_UNKNOWN; //KEY_POWER - m_key_map[117] = IRR_KEY_RETURN; //KEY_KPEQUAL - m_key_map[118] = IRR_KEY_PLUS; //KEY_KPPLUSMINUS - m_key_map[119] = IRR_KEY_PAUSE; //KEY_PAUSE - m_key_map[120] = IRR_KEY_UNKNOWN; //KEY_SCALE - m_key_map[121] = IRR_KEY_COMMA; //KEY_KPCOMMA - m_key_map[122] = IRR_KEY_UNKNOWN; //KEY_HANGEUL - m_key_map[123] = IRR_KEY_UNKNOWN; //KEY_HANJA - m_key_map[124] = IRR_KEY_UNKNOWN; //KEY_YEN - m_key_map[125] = IRR_KEY_LWIN; //KEY_LEFTMETA - m_key_map[126] = IRR_KEY_RWIN; //KEY_RIGHTMETA - m_key_map[127] = IRR_KEY_MENU; //KEY_COMPOSE + m_key_map[KEY_RESERVED] = IRR_KEY_UNKNOWN; + m_key_map[KEY_ESC] = IRR_KEY_ESCAPE; + m_key_map[KEY_1] = IRR_KEY_1; + m_key_map[KEY_2] = IRR_KEY_2; + m_key_map[KEY_3] = IRR_KEY_3; + m_key_map[KEY_4] = IRR_KEY_4; + m_key_map[KEY_5] = IRR_KEY_5; + m_key_map[KEY_6] = IRR_KEY_6; + m_key_map[KEY_7] = IRR_KEY_7; + m_key_map[KEY_8] = IRR_KEY_8; + m_key_map[KEY_9] = IRR_KEY_9; + m_key_map[KEY_0] = IRR_KEY_0; + m_key_map[KEY_MINUS] = IRR_KEY_MINUS; + m_key_map[KEY_EQUAL] = IRR_KEY_PLUS; + m_key_map[KEY_BACKSPACE] = IRR_KEY_BACK; + m_key_map[KEY_TAB] = IRR_KEY_TAB; + m_key_map[KEY_Q] = IRR_KEY_Q; + m_key_map[KEY_W] = IRR_KEY_W; + m_key_map[KEY_E] = IRR_KEY_E; + m_key_map[KEY_R] = IRR_KEY_R; + m_key_map[KEY_T] = IRR_KEY_T; + m_key_map[KEY_Y] = IRR_KEY_Y; + m_key_map[KEY_U] = IRR_KEY_U; + m_key_map[KEY_I] = IRR_KEY_I; + m_key_map[KEY_P] = IRR_KEY_P; + m_key_map[KEY_O] = IRR_KEY_O; + m_key_map[KEY_LEFTBRACE] = IRR_KEY_OEM_4; + m_key_map[KEY_RIGHTBRACE] = IRR_KEY_OEM_6; + m_key_map[KEY_ENTER] = IRR_KEY_RETURN; + m_key_map[KEY_LEFTCTRL] = IRR_KEY_LCONTROL; + m_key_map[KEY_A] = IRR_KEY_A; + m_key_map[KEY_S] = IRR_KEY_S; + m_key_map[KEY_D] = IRR_KEY_D; + m_key_map[KEY_F] = IRR_KEY_F; + m_key_map[KEY_G] = IRR_KEY_G; + m_key_map[KEY_H] = IRR_KEY_H; + m_key_map[KEY_J] = IRR_KEY_J; + m_key_map[KEY_K] = IRR_KEY_K; + m_key_map[KEY_L] = IRR_KEY_L; + m_key_map[KEY_SEMICOLON] = IRR_KEY_OEM_1; + m_key_map[KEY_APOSTROPHE] = IRR_KEY_OEM_7; + m_key_map[KEY_GRAVE] = IRR_KEY_OEM_3; + m_key_map[KEY_LEFTSHIFT] = IRR_KEY_LSHIFT; + m_key_map[KEY_BACKSLASH] = IRR_KEY_OEM_5; + m_key_map[KEY_Z] = IRR_KEY_Z; + m_key_map[KEY_X] = IRR_KEY_X; + m_key_map[KEY_C] = IRR_KEY_C; + m_key_map[KEY_V] = IRR_KEY_V; + m_key_map[KEY_B] = IRR_KEY_B; + m_key_map[KEY_N] = IRR_KEY_N; + m_key_map[KEY_M] = IRR_KEY_M; + m_key_map[KEY_COMMA] = IRR_KEY_COMMA; + m_key_map[KEY_DOT] = IRR_KEY_PERIOD; + m_key_map[KEY_SLASH] = IRR_KEY_OEM_2; + m_key_map[KEY_RIGHTSHIFT] = IRR_KEY_RSHIFT; + m_key_map[KEY_KPASTERISK] = IRR_KEY_MULTIPLY; + m_key_map[KEY_LEFTALT] = IRR_KEY_LMENU; + m_key_map[KEY_SPACE] = IRR_KEY_SPACE; + m_key_map[KEY_CAPSLOCK] = IRR_KEY_CAPITAL; + m_key_map[KEY_F1] = IRR_KEY_F1; + m_key_map[KEY_F2] = IRR_KEY_F2; + m_key_map[KEY_F3] = IRR_KEY_F3; + m_key_map[KEY_F4] = IRR_KEY_F4; + m_key_map[KEY_F5] = IRR_KEY_F5; + m_key_map[KEY_F6] = IRR_KEY_F6; + m_key_map[KEY_F7] = IRR_KEY_F7; + m_key_map[KEY_F8] = IRR_KEY_F8; + m_key_map[KEY_F9] = IRR_KEY_F9; + m_key_map[KEY_F10] = IRR_KEY_F10; + m_key_map[KEY_NUMLOCK] = IRR_KEY_NUMLOCK; + m_key_map[KEY_SCROLLLOCK] = IRR_KEY_SCROLL; + m_key_map[KEY_KP7] = IRR_KEY_NUMPAD7; + m_key_map[KEY_KP8] = IRR_KEY_NUMPAD8; + m_key_map[KEY_KP9] = IRR_KEY_NUMPAD9; + m_key_map[KEY_KPMINUS] = IRR_KEY_SUBTRACT; + m_key_map[KEY_KP4] = IRR_KEY_NUMPAD4; + m_key_map[KEY_KP5] = IRR_KEY_NUMPAD5; + m_key_map[KEY_KP6] = IRR_KEY_NUMPAD6; + m_key_map[KEY_KPPLUS] = IRR_KEY_ADD; + m_key_map[KEY_KP1] = IRR_KEY_NUMPAD1; + m_key_map[KEY_KP2] = IRR_KEY_NUMPAD2; + m_key_map[KEY_KP3] = IRR_KEY_NUMPAD3; + m_key_map[KEY_KP0] = IRR_KEY_NUMPAD0; + m_key_map[KEY_KPDOT] = IRR_KEY_SEPARATOR; + m_key_map[KEY_ZENKAKUHANKAKU] = IRR_KEY_UNKNOWN; + m_key_map[KEY_102ND] = IRR_KEY_OEM_102; + m_key_map[KEY_F11] = IRR_KEY_F11; + m_key_map[KEY_F12] = IRR_KEY_F12; + m_key_map[KEY_RO] = IRR_KEY_UNKNOWN; + m_key_map[KEY_KATAKANA] = IRR_KEY_UNKNOWN; + m_key_map[KEY_HIRAGANA] = IRR_KEY_UNKNOWN; + m_key_map[KEY_HENKAN] = IRR_KEY_UNKNOWN; + m_key_map[KEY_KATAKANAHIRAGANA] = IRR_KEY_UNKNOWN; + m_key_map[KEY_MUHENKAN] = IRR_KEY_UNKNOWN; + m_key_map[KEY_KPJPCOMMA] = IRR_KEY_SEPARATOR; + m_key_map[KEY_KPENTER] = IRR_KEY_RETURN; + m_key_map[KEY_RIGHTCTRL] = IRR_KEY_RCONTROL; + m_key_map[KEY_KPSLASH] = IRR_KEY_DIVIDE; + m_key_map[KEY_SYSRQ] = IRR_KEY_UNKNOWN; + m_key_map[KEY_RIGHTALT] = IRR_KEY_RMENU; + m_key_map[KEY_LINEFEED] = IRR_KEY_UNKNOWN; + m_key_map[KEY_HOME] = IRR_KEY_HOME; + m_key_map[KEY_UP] = IRR_KEY_UP; + m_key_map[KEY_PAGEUP] = IRR_KEY_PRIOR; + m_key_map[KEY_LEFT] = IRR_KEY_LEFT; + m_key_map[KEY_RIGHT] = IRR_KEY_RIGHT; + m_key_map[KEY_END] = IRR_KEY_END; + m_key_map[KEY_DOWN] = IRR_KEY_DOWN; + m_key_map[KEY_PAGEDOWN] = IRR_KEY_NEXT; + m_key_map[KEY_INSERT] = IRR_KEY_INSERT; + m_key_map[KEY_DELETE] = IRR_KEY_DELETE; + m_key_map[KEY_MACRO] = IRR_KEY_UNKNOWN; + m_key_map[KEY_MUTE] = IRR_KEY_VOLUME_MUTE; + m_key_map[KEY_VOLUMEDOWN] = IRR_KEY_VOLUME_DOWN; + m_key_map[KEY_VOLUMEUP] = IRR_KEY_VOLUME_UP; + m_key_map[KEY_POWER] = IRR_KEY_UNKNOWN; + m_key_map[KEY_KPEQUAL] = IRR_KEY_RETURN; + m_key_map[KEY_KPPLUSMINUS] = IRR_KEY_PLUS; + m_key_map[KEY_PAUSE] = IRR_KEY_PAUSE; + m_key_map[KEY_SCALE] = IRR_KEY_UNKNOWN; + m_key_map[KEY_KPCOMMA] = IRR_KEY_COMMA; + m_key_map[KEY_HANGEUL] = IRR_KEY_UNKNOWN; + m_key_map[KEY_HANJA] = IRR_KEY_UNKNOWN; + m_key_map[KEY_YEN] = IRR_KEY_UNKNOWN; + m_key_map[KEY_LEFTMETA] = IRR_KEY_LWIN; + m_key_map[KEY_RIGHTMETA] = IRR_KEY_RWIN; + m_key_map[KEY_COMPOSE] = IRR_KEY_MENU; } // The joystick code is mostly copied from CIrrDeviceLinux.