551 lines
20 KiB
C
551 lines
20 KiB
C
/**
|
|
* Copyright (c) 2026 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "input/input.h"
|
|
|
|
inputbuttondata_t INPUT_BUTTON_DATA[] = {
|
|
#ifdef DUSK_INPUT_GAMEPAD
|
|
{ .name = "gamepad_a", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_A } },
|
|
{ .name = "gamepad_b", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_B } },
|
|
{ .name = "gamepad_x", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_X } },
|
|
{ .name = "gamepad_y", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_Y } },
|
|
{ .name = "gamepad_start", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_START } },
|
|
{ .name = "gamepad_back", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_BACK } },
|
|
{ .name = "gamepad_up", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_DPAD_UP } },
|
|
{ .name = "gamepad_down", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_DPAD_DOWN } },
|
|
{ .name = "gamepad_left", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_DPAD_LEFT } },
|
|
{ .name = "gamepad_right", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_DPAD_RIGHT } },
|
|
{ .name = "gamepad_l1", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_LEFTSHOULDER } },
|
|
{ .name = "gamepad_r1", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER } },
|
|
{ .name = "gamepad_l3", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_LEFTSTICK } },
|
|
{ .name = "gamepad_r3", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD,
|
|
.gpButton = SDL_CONTROLLER_BUTTON_RIGHTSTICK } },
|
|
{ .name = "gamepad_lstick_down", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_LEFTY, .positive = true } } },
|
|
{ .name = "gamepad_lstick_up", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_LEFTY, .positive = false } } },
|
|
{ .name = "gamepad_lstick_right", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_LEFTX, .positive = true } } },
|
|
{ .name = "gamepad_lstick_left", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_LEFTX, .positive = false } } },
|
|
{ .name = "gamepad_rstick_down", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_RIGHTY, .positive = true } } },
|
|
{ .name = "gamepad_rstick_up", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_RIGHTY, .positive = false } } },
|
|
{ .name = "gamepad_rstick_right", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_RIGHTX, .positive = true } } },
|
|
{ .name = "gamepad_rstick_left", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = { .axis = SDL_CONTROLLER_AXIS_RIGHTX, .positive = false } } },
|
|
{ .name = "gamepad_l2", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = {
|
|
.axis = SDL_CONTROLLER_AXIS_TRIGGERLEFT,
|
|
.positive = true } } },
|
|
{ .name = "gamepad_r2", {
|
|
.type = INPUT_BUTTON_TYPE_GAMEPAD_AXIS,
|
|
.gpAxis = {
|
|
.axis = SDL_CONTROLLER_AXIS_TRIGGERRIGHT,
|
|
.positive = true } } },
|
|
#endif
|
|
|
|
|
|
#ifdef DUSK_INPUT_POINTER
|
|
{ .name = "mouse_x", {
|
|
.type = INPUT_BUTTON_TYPE_POINTER,
|
|
.pointerAxis = INPUT_POINTER_AXIS_X } },
|
|
{ .name = "mouse_y", {
|
|
.type = INPUT_BUTTON_TYPE_POINTER,
|
|
.pointerAxis = INPUT_POINTER_AXIS_Y } },
|
|
{ .name = "mouse_wheel_x", {
|
|
.type = INPUT_BUTTON_TYPE_POINTER,
|
|
.pointerAxis = INPUT_POINTER_AXIS_WHEEL_X } },
|
|
{ .name = "mouse_wheel_y", {
|
|
.type = INPUT_BUTTON_TYPE_POINTER,
|
|
.pointerAxis = INPUT_POINTER_AXIS_WHEEL_Y } },
|
|
#endif
|
|
|
|
#ifdef DUSK_INPUT_KEYBOARD
|
|
{ .name = "a", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_A } },
|
|
{ .name = "b", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_B } },
|
|
{ .name = "c", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_C } },
|
|
{ .name = "d", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_D } },
|
|
{ .name = "e", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_E } },
|
|
{ .name = "f", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F } },
|
|
{ .name = "g", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_G } },
|
|
{ .name = "h", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_H } },
|
|
{ .name = "i", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_I } },
|
|
{ .name = "j", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_J } },
|
|
{ .name = "k", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_K } },
|
|
{ .name = "l", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_L } },
|
|
{ .name = "m", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_M } },
|
|
{ .name = "n", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_N } },
|
|
{ .name = "o", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_O } },
|
|
{ .name = "p", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_P } },
|
|
{ .name = "q", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_Q } },
|
|
{ .name = "r", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_R } },
|
|
{ .name = "s", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_S } },
|
|
{ .name = "t", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_T } },
|
|
{ .name = "u", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_U } },
|
|
{ .name = "v", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_V } },
|
|
{ .name = "w", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_W } },
|
|
{ .name = "x", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_X } },
|
|
{ .name = "y", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_Y } },
|
|
{ .name = "z", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_Z } },
|
|
|
|
{ .name = "0", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_0 } },
|
|
{ .name = "1", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_1 } },
|
|
{ .name = "2", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_2 } },
|
|
{ .name = "3", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_3 } },
|
|
{ .name = "4", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_4 } },
|
|
{ .name = "5", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_5 } },
|
|
{ .name = "6", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_6 } },
|
|
{ .name = "7", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_7 } },
|
|
{ .name = "8", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_8 } },
|
|
{ .name = "9", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_9 } },
|
|
|
|
{ .name = "space", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_SPACE } },
|
|
{ .name = "shift", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LSHIFT } },
|
|
{ .name = "lshift", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LSHIFT } },
|
|
{ .name = "rshift", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RSHIFT } },
|
|
{ .name = "lctrl", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LCTRL } },
|
|
{ .name = "rctrl", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RCTRL } },
|
|
{ .name = "ctrl", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LCTRL } },
|
|
{ .name = "lalt", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LALT } },
|
|
{ .name = "ralt", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RALT } },
|
|
{ .name = "tab", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_TAB } },
|
|
{ .name = "enter", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RETURN } },
|
|
{ .name = "backspace", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_BACKSPACE } },
|
|
{ .name = "escape", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_ESCAPE } },
|
|
{ .name = "esc", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_ESCAPE } },
|
|
{ .name = "up", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_UP } },
|
|
{ .name = "down", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_DOWN } },
|
|
{ .name = "left", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LEFT } },
|
|
{ .name = "right", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RIGHT } },
|
|
{ .name = "pageup", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_PAGEUP } },
|
|
{ .name = "pagedown", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_PAGEDOWN } },
|
|
{ .name = "home", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_HOME } },
|
|
{ .name = "end", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_END } },
|
|
{ .name = "insert", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_INSERT } },
|
|
{ .name = "delete", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_DELETE } },
|
|
|
|
{ .name = "f1", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F1 } },
|
|
{ .name = "f2", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F2 } },
|
|
{ .name = "f3", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F3 } },
|
|
{ .name = "f4", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F4 } },
|
|
{ .name = "f5", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F5 } },
|
|
{ .name = "f6", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F6 } },
|
|
{ .name = "f7", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F7 } },
|
|
{ .name = "f8", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F8 } },
|
|
{ .name = "f9", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F9 } },
|
|
{ .name = "f10", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F10 } },
|
|
{ .name = "f11", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F11 } },
|
|
{ .name = "f12", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F12 } },
|
|
{ .name = "f13", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F13 } },
|
|
{ .name = "f14", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F14 } },
|
|
{ .name = "f15", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F15 } },
|
|
{ .name = "f16", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F16 } },
|
|
{ .name = "f17", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F17 } },
|
|
{ .name = "f18", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F18 } },
|
|
{ .name = "f19", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F19 } },
|
|
{ .name = "f20", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F20 } },
|
|
{ .name = "f21", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F21 } },
|
|
{ .name = "f22", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F22 } },
|
|
{ .name = "f23", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F23 } },
|
|
{ .name = "f24", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_F24 } },
|
|
|
|
|
|
{ .name = "minus", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_MINUS } },
|
|
{ .name = "equals", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_EQUALS } },
|
|
{ .name = "leftbracket", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LEFTBRACKET } },
|
|
{ .name = "rightbracket", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RIGHTBRACKET } },
|
|
{ .name = "backslash", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_BACKSLASH } },
|
|
{ .name = "semicolon", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_SEMICOLON } },
|
|
{ .name = "apostrophe", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_APOSTROPHE } },
|
|
{ .name = "grave", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_GRAVE } },
|
|
{ .name = "comma", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_COMMA } },
|
|
{ .name = "period", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_PERIOD } },
|
|
{ .name = "slash", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_SLASH } },
|
|
|
|
{ .name = "caps", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_CAPSLOCK } },
|
|
{ .name = "capslock", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_CAPSLOCK } },
|
|
{ .name = "numlock", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_NUMLOCKCLEAR } },
|
|
{ .name = "scrollock", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_SCROLLLOCK } },
|
|
|
|
{ .name = "-", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_MINUS } },
|
|
{ .name = "=", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_EQUALS } },
|
|
{ .name = "[", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_LEFTBRACKET } },
|
|
{ .name = "]", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_RIGHTBRACKET } },
|
|
{ .name = "\\", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_BACKSLASH } },
|
|
{ .name = ";", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_SEMICOLON } },
|
|
{ .name = "'", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_APOSTROPHE } },
|
|
{ .name = "`", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_GRAVE } },
|
|
{ .name = ",", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_COMMA } },
|
|
{ .name = ".", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_PERIOD } },
|
|
{ .name = "/", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_SLASH } },
|
|
|
|
{ .name = "kp_0", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_0 } },
|
|
{ .name = "kp_1", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_1 } },
|
|
{ .name = "kp_2", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_2 } },
|
|
{ .name = "kp_3", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_3 } },
|
|
{ .name = "kp_4", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_4 } },
|
|
{ .name = "kp_5", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_5 } },
|
|
{ .name = "kp_6", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_6 } },
|
|
{ .name = "kp_7", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_7 } },
|
|
{ .name = "kp_8", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_8 } },
|
|
{ .name = "kp_9", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_9 } },
|
|
{ .name = "kp_period", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_PERIOD } },
|
|
{ .name = "kp_divide", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_DIVIDE } },
|
|
{ .name = "kp_multiply", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_MULTIPLY } },
|
|
{ .name = "kp_minus", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_MINUS } },
|
|
{ .name = "kp_plus", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_PLUS } },
|
|
{ .name = "kp_enter", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_ENTER } },
|
|
{ .name = "kp_equals", {
|
|
.type = INPUT_BUTTON_TYPE_KEYBOARD,
|
|
.scancode = SDL_SCANCODE_KP_EQUALS } },
|
|
#endif
|
|
|
|
{ .name = NULL },
|
|
};
|
|
|
|
errorret_t inputInitLinux(void) {
|
|
#define X(buttonName, buttonAction) \
|
|
inputBind(inputButtonGetByName(buttonName), buttonAction);
|
|
|
|
#ifdef DUSK_INPUT_KEYBOARD
|
|
X("w", INPUT_ACTION_UP);
|
|
X("s", INPUT_ACTION_DOWN);
|
|
X("a", INPUT_ACTION_LEFT);
|
|
X("d", INPUT_ACTION_RIGHT);
|
|
X("left", INPUT_ACTION_LEFT);
|
|
X("right", INPUT_ACTION_RIGHT);
|
|
X("up", INPUT_ACTION_UP);
|
|
X("down", INPUT_ACTION_DOWN);
|
|
X("enter", INPUT_ACTION_ACCEPT);
|
|
X("e", INPUT_ACTION_ACCEPT);
|
|
X("space", INPUT_ACTION_ACCEPT);
|
|
X("tab", INPUT_ACTION_CANCEL);
|
|
X("q", INPUT_ACTION_CANCEL);
|
|
X("escape", INPUT_ACTION_RAGEQUIT);
|
|
X("enter", INPUT_ACTION_PAUSE);
|
|
X("`", INPUT_ACTION_CONSOLE);
|
|
#endif
|
|
|
|
#ifdef DUSK_INPUT_GAMEPAD
|
|
X("gamepad_up", INPUT_ACTION_UP);
|
|
X("gamepad_down", INPUT_ACTION_DOWN);
|
|
X("gamepad_left", INPUT_ACTION_LEFT);
|
|
X("gamepad_right", INPUT_ACTION_RIGHT);
|
|
X("gamepad_a", INPUT_ACTION_ACCEPT);
|
|
X("gamepad_b", INPUT_ACTION_CANCEL);
|
|
X("gamepad_back", INPUT_ACTION_RAGEQUIT);
|
|
X("gamepad_start", INPUT_ACTION_PAUSE);
|
|
X("gamepad_lstick_up", INPUT_ACTION_UP);
|
|
X("gamepad_lstick_down", INPUT_ACTION_DOWN);
|
|
X("gamepad_lstick_left", INPUT_ACTION_LEFT);
|
|
X("gamepad_lstick_right", INPUT_ACTION_RIGHT);
|
|
#endif
|
|
|
|
#ifdef DUSK_INPUT_POINTER
|
|
X("mouse_x", INPUT_ACTION_POINTERX);
|
|
X("mouse_y", INPUT_ACTION_POINTERY);
|
|
#endif
|
|
|
|
#undef X
|
|
|
|
errorOk();
|
|
}
|
|
|
|
float_t inputGetDeadzoneSDL2(const inputbutton_t button) {
|
|
return 0.17f;
|
|
} |