diff options
Diffstat (limited to 'contrib/SDL-3.2.8/src/video/haiku/SDL_bkeyboard.cc')
| -rw-r--r-- | contrib/SDL-3.2.8/src/video/haiku/SDL_bkeyboard.cc | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/contrib/SDL-3.2.8/src/video/haiku/SDL_bkeyboard.cc b/contrib/SDL-3.2.8/src/video/haiku/SDL_bkeyboard.cc new file mode 100644 index 0000000..c4f364e --- /dev/null +++ b/contrib/SDL-3.2.8/src/video/haiku/SDL_bkeyboard.cc | |||
| @@ -0,0 +1,168 @@ | |||
| 1 | /* | ||
| 2 | Simple DirectMedia Layer | ||
| 3 | Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org> | ||
| 4 | |||
| 5 | This software is provided 'as-is', without any express or implied | ||
| 6 | warranty. In no event will the authors be held liable for any damages | ||
| 7 | arising from the use of this software. | ||
| 8 | |||
| 9 | Permission is granted to anyone to use this software for any purpose, | ||
| 10 | including commercial applications, and to alter it and redistribute it | ||
| 11 | freely, subject to the following restrictions: | ||
| 12 | |||
| 13 | 1. The origin of this software must not be misrepresented; you must not | ||
| 14 | claim that you wrote the original software. If you use this software | ||
| 15 | in a product, an acknowledgment in the product documentation would be | ||
| 16 | appreciated but is not required. | ||
| 17 | 2. Altered source versions must be plainly marked as such, and must not be | ||
| 18 | misrepresented as being the original software. | ||
| 19 | 3. This notice may not be removed or altered from any source distribution. | ||
| 20 | */ | ||
| 21 | #include "SDL_internal.h" | ||
| 22 | |||
| 23 | #ifdef SDL_VIDEO_DRIVER_HAIKU | ||
| 24 | |||
| 25 | #include <SupportDefs.h> | ||
| 26 | #include <support/UTF8.h> | ||
| 27 | |||
| 28 | #ifdef __cplusplus | ||
| 29 | extern "C" { | ||
| 30 | #endif | ||
| 31 | |||
| 32 | |||
| 33 | #include "SDL_bkeyboard.h" | ||
| 34 | |||
| 35 | |||
| 36 | #define KEYMAP_SIZE 128 | ||
| 37 | |||
| 38 | |||
| 39 | static SDL_Scancode keymap[KEYMAP_SIZE]; | ||
| 40 | |||
| 41 | void HAIKU_InitOSKeymap(void) | ||
| 42 | { | ||
| 43 | for ( uint i = 0; i < SDL_arraysize(keymap); ++i ) { | ||
| 44 | keymap[i] = SDL_SCANCODE_UNKNOWN; | ||
| 45 | } | ||
| 46 | |||
| 47 | keymap[0x01] = SDL_SCANCODE_ESCAPE; | ||
| 48 | keymap[B_F1_KEY] = SDL_SCANCODE_F1; | ||
| 49 | keymap[B_F2_KEY] = SDL_SCANCODE_F2; | ||
| 50 | keymap[B_F3_KEY] = SDL_SCANCODE_F3; | ||
| 51 | keymap[B_F4_KEY] = SDL_SCANCODE_F4; | ||
| 52 | keymap[B_F5_KEY] = SDL_SCANCODE_F5; | ||
| 53 | keymap[B_F6_KEY] = SDL_SCANCODE_F6; | ||
| 54 | keymap[B_F7_KEY] = SDL_SCANCODE_F7; | ||
| 55 | keymap[B_F8_KEY] = SDL_SCANCODE_F8; | ||
| 56 | keymap[B_F9_KEY] = SDL_SCANCODE_F9; | ||
| 57 | keymap[B_F10_KEY] = SDL_SCANCODE_F10; | ||
| 58 | keymap[B_F11_KEY] = SDL_SCANCODE_F11; | ||
| 59 | keymap[B_F12_KEY] = SDL_SCANCODE_F12; | ||
| 60 | keymap[B_PRINT_KEY] = SDL_SCANCODE_PRINTSCREEN; | ||
| 61 | keymap[B_SCROLL_KEY]= SDL_SCANCODE_SCROLLLOCK; | ||
| 62 | keymap[B_PAUSE_KEY] = SDL_SCANCODE_PAUSE; | ||
| 63 | keymap[0x11] = SDL_SCANCODE_GRAVE; | ||
| 64 | keymap[0x12] = SDL_SCANCODE_1; | ||
| 65 | keymap[0x13] = SDL_SCANCODE_2; | ||
| 66 | keymap[0x14] = SDL_SCANCODE_3; | ||
| 67 | keymap[0x15] = SDL_SCANCODE_4; | ||
| 68 | keymap[0x16] = SDL_SCANCODE_5; | ||
| 69 | keymap[0x17] = SDL_SCANCODE_6; | ||
| 70 | keymap[0x18] = SDL_SCANCODE_7; | ||
| 71 | keymap[0x19] = SDL_SCANCODE_8; | ||
| 72 | keymap[0x1a] = SDL_SCANCODE_9; | ||
| 73 | keymap[0x1b] = SDL_SCANCODE_0; | ||
| 74 | keymap[0x1c] = SDL_SCANCODE_MINUS; | ||
| 75 | keymap[0x1d] = SDL_SCANCODE_EQUALS; | ||
| 76 | keymap[0x1e] = SDL_SCANCODE_BACKSPACE; | ||
| 77 | keymap[0x1f] = SDL_SCANCODE_INSERT; | ||
| 78 | keymap[0x20] = SDL_SCANCODE_HOME; | ||
| 79 | keymap[0x21] = SDL_SCANCODE_PAGEUP; | ||
| 80 | keymap[0x22] = SDL_SCANCODE_NUMLOCKCLEAR; | ||
| 81 | keymap[0x23] = SDL_SCANCODE_KP_DIVIDE; | ||
| 82 | keymap[0x24] = SDL_SCANCODE_KP_MULTIPLY; | ||
| 83 | keymap[0x25] = SDL_SCANCODE_KP_MINUS; | ||
| 84 | keymap[0x26] = SDL_SCANCODE_TAB; | ||
| 85 | keymap[0x27] = SDL_SCANCODE_Q; | ||
| 86 | keymap[0x28] = SDL_SCANCODE_W; | ||
| 87 | keymap[0x29] = SDL_SCANCODE_E; | ||
| 88 | keymap[0x2a] = SDL_SCANCODE_R; | ||
| 89 | keymap[0x2b] = SDL_SCANCODE_T; | ||
| 90 | keymap[0x2c] = SDL_SCANCODE_Y; | ||
| 91 | keymap[0x2d] = SDL_SCANCODE_U; | ||
| 92 | keymap[0x2e] = SDL_SCANCODE_I; | ||
| 93 | keymap[0x2f] = SDL_SCANCODE_O; | ||
| 94 | keymap[0x30] = SDL_SCANCODE_P; | ||
| 95 | keymap[0x31] = SDL_SCANCODE_LEFTBRACKET; | ||
| 96 | keymap[0x32] = SDL_SCANCODE_RIGHTBRACKET; | ||
| 97 | keymap[0x33] = SDL_SCANCODE_BACKSLASH; | ||
| 98 | keymap[0x34] = SDL_SCANCODE_DELETE; | ||
| 99 | keymap[0x35] = SDL_SCANCODE_END; | ||
| 100 | keymap[0x36] = SDL_SCANCODE_PAGEDOWN; | ||
| 101 | keymap[0x37] = SDL_SCANCODE_KP_7; | ||
| 102 | keymap[0x38] = SDL_SCANCODE_KP_8; | ||
| 103 | keymap[0x39] = SDL_SCANCODE_KP_9; | ||
| 104 | keymap[0x3a] = SDL_SCANCODE_KP_PLUS; | ||
| 105 | keymap[0x3b] = SDL_SCANCODE_CAPSLOCK; | ||
| 106 | keymap[0x3c] = SDL_SCANCODE_A; | ||
| 107 | keymap[0x3d] = SDL_SCANCODE_S; | ||
| 108 | keymap[0x3e] = SDL_SCANCODE_D; | ||
| 109 | keymap[0x3f] = SDL_SCANCODE_F; | ||
| 110 | keymap[0x40] = SDL_SCANCODE_G; | ||
| 111 | keymap[0x41] = SDL_SCANCODE_H; | ||
| 112 | keymap[0x42] = SDL_SCANCODE_J; | ||
| 113 | keymap[0x43] = SDL_SCANCODE_K; | ||
| 114 | keymap[0x44] = SDL_SCANCODE_L; | ||
| 115 | keymap[0x45] = SDL_SCANCODE_SEMICOLON; | ||
| 116 | keymap[0x46] = SDL_SCANCODE_APOSTROPHE; | ||
| 117 | keymap[0x47] = SDL_SCANCODE_RETURN; | ||
| 118 | keymap[0x48] = SDL_SCANCODE_KP_4; | ||
| 119 | keymap[0x49] = SDL_SCANCODE_KP_5; | ||
| 120 | keymap[0x4a] = SDL_SCANCODE_KP_6; | ||
| 121 | keymap[0x4b] = SDL_SCANCODE_LSHIFT; | ||
| 122 | keymap[0x4c] = SDL_SCANCODE_Z; | ||
| 123 | keymap[0x4d] = SDL_SCANCODE_X; | ||
| 124 | keymap[0x4e] = SDL_SCANCODE_C; | ||
| 125 | keymap[0x4f] = SDL_SCANCODE_V; | ||
| 126 | keymap[0x50] = SDL_SCANCODE_B; | ||
| 127 | keymap[0x51] = SDL_SCANCODE_N; | ||
| 128 | keymap[0x52] = SDL_SCANCODE_M; | ||
| 129 | keymap[0x53] = SDL_SCANCODE_COMMA; | ||
| 130 | keymap[0x54] = SDL_SCANCODE_PERIOD; | ||
| 131 | keymap[0x55] = SDL_SCANCODE_SLASH; | ||
| 132 | keymap[0x56] = SDL_SCANCODE_RSHIFT; | ||
| 133 | keymap[0x57] = SDL_SCANCODE_UP; | ||
| 134 | keymap[0x58] = SDL_SCANCODE_KP_1; | ||
| 135 | keymap[0x59] = SDL_SCANCODE_KP_2; | ||
| 136 | keymap[0x5a] = SDL_SCANCODE_KP_3; | ||
| 137 | keymap[0x5b] = SDL_SCANCODE_KP_ENTER; | ||
| 138 | keymap[0x5c] = SDL_SCANCODE_LCTRL; | ||
| 139 | keymap[0x5d] = SDL_SCANCODE_LALT; | ||
| 140 | keymap[0x5e] = SDL_SCANCODE_SPACE; | ||
| 141 | keymap[0x5f] = SDL_SCANCODE_RALT; | ||
| 142 | keymap[0x60] = SDL_SCANCODE_RCTRL; | ||
| 143 | keymap[0x61] = SDL_SCANCODE_LEFT; | ||
| 144 | keymap[0x62] = SDL_SCANCODE_DOWN; | ||
| 145 | keymap[0x63] = SDL_SCANCODE_RIGHT; | ||
| 146 | keymap[0x64] = SDL_SCANCODE_KP_0; | ||
| 147 | keymap[0x65] = SDL_SCANCODE_KP_PERIOD; | ||
| 148 | keymap[0x66] = SDL_SCANCODE_LGUI; | ||
| 149 | keymap[0x67] = SDL_SCANCODE_RGUI; | ||
| 150 | keymap[0x68] = SDL_SCANCODE_MENU; | ||
| 151 | keymap[0x69] = SDL_SCANCODE_2; // SDLK_EURO | ||
| 152 | keymap[0x6a] = SDL_SCANCODE_KP_EQUALS; | ||
| 153 | keymap[0x6b] = SDL_SCANCODE_POWER; | ||
| 154 | } | ||
| 155 | |||
| 156 | SDL_Scancode HAIKU_GetScancodeFromBeKey(int32 bkey) { | ||
| 157 | if (bkey > 0 && bkey < (int32)SDL_arraysize(keymap)) { | ||
| 158 | return keymap[bkey]; | ||
| 159 | } else { | ||
| 160 | return SDL_SCANCODE_UNKNOWN; | ||
| 161 | } | ||
| 162 | } | ||
| 163 | |||
| 164 | #ifdef __cplusplus | ||
| 165 | } | ||
| 166 | #endif | ||
| 167 | |||
| 168 | #endif // SDL_VIDEO_DRIVER_HAIKU | ||
