1 /* 2 * This file is part of EasyRPG Player. 3 * 4 * EasyRPG Player is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * EasyRPG Player is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with EasyRPG Player. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef EP_KEYS_H 19 #define EP_KEYS_H 20 21 // Headers 22 #include "system.h" 23 #include <lcf/enum_tags.h> 24 25 namespace Input { 26 /** 27 * Keys namespace 28 */ 29 namespace Keys { 30 enum InputKey : uint8_t { 31 NONE, 32 BACKSPACE, 33 TAB, 34 CLEAR, 35 RETURN, 36 PAUSE, 37 ESCAPE, 38 SPACE, 39 PGUP, 40 PGDN, 41 ENDS, 42 HOME, 43 LEFT, 44 UP, 45 RIGHT, 46 DOWN, 47 SNAPSHOT, 48 INSERT, 49 DEL, 50 SHIFT, 51 LSHIFT, 52 RSHIFT, 53 CTRL, 54 LCTRL, 55 RCTRL, 56 ALT, 57 LALT, 58 RALT, 59 N0, 60 N1, 61 N2, 62 N3, 63 N4, 64 N5, 65 N6, 66 N7, 67 N8, 68 N9, 69 A, 70 B, 71 C, 72 D, 73 E, 74 F, 75 G, 76 H, 77 I, 78 J, 79 K, 80 L, 81 M, 82 N, 83 O, 84 P, 85 Q, 86 R, 87 S, 88 T, 89 U, 90 V, 91 W, 92 X, 93 Y, 94 Z, 95 LOS, 96 ROS, 97 MENU, 98 KP0, 99 KP1, 100 KP2, 101 KP3, 102 KP4, 103 KP5, 104 KP6, 105 KP7, 106 KP8, 107 KP9, 108 KP_MULTIPLY, 109 KP_ADD, 110 KP_SUBTRACT, 111 KP_PERIOD, 112 KP_DIVIDE, 113 COMMA, 114 PERIOD, 115 SLASH, // After "." 116 F1, 117 F2, 118 F3, 119 F4, 120 F5, 121 F6, 122 F7, 123 F8, 124 F9, 125 F10, 126 F11, 127 F12, 128 CAPS_LOCK, 129 NUM_LOCK, 130 SCROLL_LOCK, 131 AC_BACK, 132 SELECT, 133 LEFT_BRACKET, // After P: [, ], '\' 134 RIGHT_BRACKET, 135 BACKSLASH, // On some keyboards after ' 136 SEMICOLON, // After L: ;, ' 137 APOSTROPH, 138 139 #if defined(USE_MOUSE) && defined(SUPPORT_MOUSE) 140 MOUSE_LEFT, 141 MOUSE_RIGHT, 142 MOUSE_MIDDLE, 143 MOUSE_XBUTTON1, 144 MOUSE_XBUTTON2, 145 MOUSE_SCROLLUP, 146 MOUSE_SCROLLDOWN, 147 #endif 148 149 #if defined(USE_JOYSTICK) && defined(SUPPORT_JOYSTICK) 150 JOY_0, 151 JOY_1, 152 JOY_2, 153 JOY_3, 154 JOY_4, 155 JOY_5, 156 JOY_6, 157 JOY_7, 158 JOY_8, 159 JOY_9, 160 JOY_10, 161 JOY_11, 162 JOY_12, 163 JOY_13, 164 JOY_14, 165 JOY_15, 166 JOY_16, 167 JOY_17, 168 JOY_18, 169 JOY_19, 170 JOY_20, 171 JOY_21, 172 JOY_22, 173 JOY_23, 174 JOY_24, 175 JOY_25, 176 JOY_26, 177 JOY_27, 178 JOY_28, 179 JOY_29, 180 JOY_30, 181 JOY_31, 182 #endif 183 184 #if defined(USE_JOYSTICK_HAT) && defined(SUPPORT_JOYSTICK_HAT) 185 JOY_HAT_LOWER_LEFT, 186 JOY_HAT_DOWN, 187 JOY_HAT_LOWER_RIGHT, 188 JOY_HAT_LEFT, 189 JOY_HAT_RIGHT, 190 JOY_HAT_UPPER_LEFT, 191 JOY_HAT_UP, 192 JOY_HAT_UPPER_RIGHT, 193 #endif 194 195 #if defined(USE_JOYSTICK_AXIS) && defined(SUPPORT_JOYSTICK_AXIS) 196 JOY_AXIS_X_LEFT, 197 JOY_AXIS_X_RIGHT, 198 JOY_AXIS_Y_DOWN, 199 JOY_AXIS_Y_UP, 200 #endif 201 202 #if defined(USE_TOUCH) && defined(SUPPORT_TOUCH) 203 ONE_FINGER, 204 TWO_FINGERS, 205 #endif 206 207 KEYS_COUNT 208 }; 209 210 constexpr auto kNames = lcf::makeEnumTags<InputKey>( 211 "NONE", 212 "BACKSPACE", 213 "TAB", 214 "CLEAR", 215 "RETURN", 216 "PAUSE", 217 "ESCAPE", 218 "SPACE", 219 "PGUP", 220 "PGDN", 221 "ENDS", 222 "HOME", 223 "LEFT", 224 "UP", 225 "RIGHT", 226 "DOWN", 227 "SNAPSHOT", 228 "INSERT", 229 "DEL", 230 "SHIFT", 231 "LSHIFT", 232 "RSHIFT", 233 "CTRL", 234 "LCTRL", 235 "RCTRL", 236 "ALT", 237 "LALT", 238 "RALT", 239 "N0", 240 "N1", 241 "N2", 242 "N3", 243 "N4", 244 "N5", 245 "N6", 246 "N7", 247 "N8", 248 "N9", 249 "A", 250 "B", 251 "C", 252 "D", 253 "E", 254 "F", 255 "G", 256 "H", 257 "I", 258 "J", 259 "K", 260 "L", 261 "M", 262 "N", 263 "O", 264 "P", 265 "Q", 266 "R", 267 "S", 268 "T", 269 "U", 270 "V", 271 "W", 272 "X", 273 "Y", 274 "Z", 275 "LOS", 276 "ROS", 277 "MENU", 278 "KP0", 279 "KP1", 280 "KP2", 281 "KP3", 282 "KP4", 283 "KP5", 284 "KP6", 285 "KP7", 286 "KP8", 287 "KP9", 288 "MULTIPLY", 289 "ADD", 290 "SUBTRACT", 291 "PERIOD", 292 "DIVIDE", 293 "F1", 294 "F2", 295 "F3", 296 "F4", 297 "F5", 298 "F6", 299 "F7", 300 "F8", 301 "F9", 302 "F10", 303 "F11", 304 "F12", 305 "CAPS_LOCK", 306 "NUM_LOCK", 307 "SCROLL_LOCK", 308 "AC_BACK", 309 "SELECT", 310 311 #if defined(USE_MOUSE) && defined(SUPPORT_MOUSE) 312 "MOUSE_LEFT", 313 "MOUSE_RIGHT", 314 "MOUSE_MIDDLE", 315 "MOUSE_XBUTTON1", 316 "MOUSE_XBUTTON2", 317 "MOUSE_SCROLLUP", 318 "MOUSE_SCROLLDOWN", 319 #endif 320 321 #if defined(USE_JOYSTICK) && defined(SUPPORT_JOYSTICK) 322 "JOY_0", 323 "JOY_1", 324 "JOY_2", 325 "JOY_3", 326 "JOY_4", 327 "JOY_5", 328 "JOY_6", 329 "JOY_7", 330 "JOY_8", 331 "JOY_9", 332 "JOY_10", 333 "JOY_11", 334 "JOY_12", 335 "JOY_13", 336 "JOY_14", 337 "JOY_15", 338 "JOY_16", 339 "JOY_17", 340 "JOY_18", 341 "JOY_19", 342 "JOY_20", 343 "JOY_21", 344 "JOY_22", 345 "JOY_23", 346 "JOY_24", 347 "JOY_25", 348 "JOY_26", 349 "JOY_27", 350 "JOY_28", 351 "JOY_29", 352 "JOY_30", 353 "JOY_31", 354 #endif 355 356 #if defined(USE_JOYSTICK_HAT) && defined(SUPPORT_JOYSTICK_HAT) 357 "JOY_HAT_LOWER_LEFT", 358 "JOY_HAT_DOWN", 359 "JOY_HAT_LOWER_RIGHT", 360 "JOY_HAT_LEFT", 361 "JOY_HAT_RIGHT", 362 "JOY_HAT_UPPER_LEFT", 363 "JOY_HAT_UP", 364 "JOY_HAT_UPPER_RIGHT", 365 #endif 366 367 #if defined(USE_JOYSTICK_AXIS) && defined(SUPPORT_JOYSTICK_AXIS) 368 "JOY_AXIS_X_LEFT", 369 "JOY_AXIS_X_RIGHT", 370 "JOY_AXIS_Y_DOWN", 371 "JOY_AXIS_Y_UP", 372 #endif 373 374 #if defined(USE_TOUCH) && defined(SUPPORT_TOUCH) 375 "ONE_FINGER", 376 "TWO_FINGERS", 377 #endif 378 "KEYS_COUNT" 379 ); 380 } 381 } 382 383 #endif 384