mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-04 16:32:39 +00:00
Resolved merge conflict and refactored code
This commit is contained in:
parent
abbff1fa66
commit
f7b8f5e73c
@ -29,27 +29,18 @@
|
|||||||
#include <SDL3/SDL_metal.h>
|
#include <SDL3/SDL_metal.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// +1 and +2 is taken
|
|
||||||
#define SDL_EVENT_MOUSE_WHEEL_UP SDL_EVENT_MOUSE_WHEEL + 3
|
|
||||||
#define SDL_EVENT_MOUSE_WHEEL_DOWN SDL_EVENT_MOUSE_WHEEL + 4
|
|
||||||
#define SDL_EVENT_MOUSE_WHEEL_LEFT SDL_EVENT_MOUSE_WHEEL + 5
|
|
||||||
#define SDL_EVENT_MOUSE_WHEEL_RIGHT SDL_EVENT_MOUSE_WHEEL + 6
|
|
||||||
|
|
||||||
#define LEFTJOYSTICK_HALFMODE 0x00010000
|
|
||||||
#define RIGHTJOYSTICK_HALFMODE 0x00020000
|
|
||||||
|
|
||||||
Uint32 getMouseWheelEvent(const SDL_Event* event) {
|
Uint32 getMouseWheelEvent(const SDL_Event* event) {
|
||||||
if (event->type != SDL_EVENT_MOUSE_WHEEL)
|
if (event->type != SDL_EVENT_MOUSE_WHEEL)
|
||||||
return 0;
|
return 0;
|
||||||
// std::cout << "We got a wheel event! ";
|
// std::cout << "We got a wheel event! ";
|
||||||
if (event->wheel.y > 0) {
|
if (event->wheel.y > 0) {
|
||||||
return SDL_EVENT_MOUSE_WHEEL_UP;
|
return SDL_MOUSE_WHEEL_UP;
|
||||||
} else if (event->wheel.y < 0) {
|
} else if (event->wheel.y < 0) {
|
||||||
return SDL_EVENT_MOUSE_WHEEL_DOWN;
|
return SDL_MOUSE_WHEEL_DOWN;
|
||||||
} else if (event->wheel.x > 0) {
|
} else if (event->wheel.x > 0) {
|
||||||
return SDL_EVENT_MOUSE_WHEEL_RIGHT;
|
return SDL_MOUSE_WHEEL_RIGHT;
|
||||||
} else if (event->wheel.x < 0) {
|
} else if (event->wheel.x < 0) {
|
||||||
return SDL_EVENT_MOUSE_WHEEL_LEFT;
|
return SDL_MOUSE_WHEEL_LEFT;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -57,157 +48,6 @@ Uint32 getMouseWheelEvent(const SDL_Event* event) {
|
|||||||
namespace KBMConfig {
|
namespace KBMConfig {
|
||||||
using Libraries::Pad::OrbisPadButtonDataOffset;
|
using Libraries::Pad::OrbisPadButtonDataOffset;
|
||||||
|
|
||||||
// i strongly suggest you collapse these maps
|
|
||||||
const std::map<std::string, u32> string_to_cbutton_map = {
|
|
||||||
{"triangle", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_TRIANGLE},
|
|
||||||
{"circle", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_CIRCLE},
|
|
||||||
{"cross", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_CROSS},
|
|
||||||
{"square", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_SQUARE},
|
|
||||||
{"l1", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_L1},
|
|
||||||
{"l2", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_L2},
|
|
||||||
{"r1", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_R1},
|
|
||||||
{"r2", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_R2},
|
|
||||||
{"l3", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_L3},
|
|
||||||
{"r3", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_R3},
|
|
||||||
{"options", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_OPTIONS},
|
|
||||||
{"touchpad", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_TOUCH_PAD},
|
|
||||||
{"up", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_UP},
|
|
||||||
{"down", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_DOWN},
|
|
||||||
{"left", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_LEFT},
|
|
||||||
{"right", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_RIGHT},
|
|
||||||
{"leftjoystick_halfmode", LEFTJOYSTICK_HALFMODE},
|
|
||||||
{"rightjoystick_halfmode", RIGHTJOYSTICK_HALFMODE},
|
|
||||||
};
|
|
||||||
const std::map<std::string, AxisMapping> string_to_axis_map = {
|
|
||||||
{"axis_left_x_plus", {Input::Axis::LeftX, 127}},
|
|
||||||
{"axis_left_x_minus", {Input::Axis::LeftX, -127}},
|
|
||||||
{"axis_left_y_plus", {Input::Axis::LeftY, 127}},
|
|
||||||
{"axis_left_y_minus", {Input::Axis::LeftY, -127}},
|
|
||||||
{"axis_right_x_plus", {Input::Axis::RightX, 127}},
|
|
||||||
{"axis_right_x_minus", {Input::Axis::RightX, -127}},
|
|
||||||
{"axis_right_y_plus", {Input::Axis::RightY, 127}},
|
|
||||||
{"axis_right_y_minus", {Input::Axis::RightY, -127}},
|
|
||||||
};
|
|
||||||
const std::map<std::string, u32> string_to_keyboard_key_map = {
|
|
||||||
{"a", SDLK_A},
|
|
||||||
{"b", SDLK_B},
|
|
||||||
{"c", SDLK_C},
|
|
||||||
{"d", SDLK_D},
|
|
||||||
{"e", SDLK_E},
|
|
||||||
{"f", SDLK_F},
|
|
||||||
{"g", SDLK_G},
|
|
||||||
{"h", SDLK_H},
|
|
||||||
{"i", SDLK_I},
|
|
||||||
{"j", SDLK_J},
|
|
||||||
{"k", SDLK_K},
|
|
||||||
{"l", SDLK_L},
|
|
||||||
{"m", SDLK_M},
|
|
||||||
{"n", SDLK_N},
|
|
||||||
{"o", SDLK_O},
|
|
||||||
{"p", SDLK_P},
|
|
||||||
{"q", SDLK_Q},
|
|
||||||
{"r", SDLK_R},
|
|
||||||
{"s", SDLK_S},
|
|
||||||
{"t", SDLK_T},
|
|
||||||
{"u", SDLK_U},
|
|
||||||
{"v", SDLK_V},
|
|
||||||
{"w", SDLK_W},
|
|
||||||
{"x", SDLK_X},
|
|
||||||
{"y", SDLK_Y},
|
|
||||||
{"z", SDLK_Z},
|
|
||||||
{"0", SDLK_0},
|
|
||||||
{"1", SDLK_1},
|
|
||||||
{"2", SDLK_2},
|
|
||||||
{"3", SDLK_3},
|
|
||||||
{"4", SDLK_4},
|
|
||||||
{"5", SDLK_5},
|
|
||||||
{"6", SDLK_6},
|
|
||||||
{"7", SDLK_7},
|
|
||||||
{"8", SDLK_8},
|
|
||||||
{"9", SDLK_9},
|
|
||||||
{"kp0", SDLK_KP_0},
|
|
||||||
{"kp1", SDLK_KP_1},
|
|
||||||
{"kp2", SDLK_KP_2},
|
|
||||||
{"kp3", SDLK_KP_3},
|
|
||||||
{"kp4", SDLK_KP_4},
|
|
||||||
{"kp5", SDLK_KP_5},
|
|
||||||
{"kp6", SDLK_KP_6},
|
|
||||||
{"kp7", SDLK_KP_7},
|
|
||||||
{"kp8", SDLK_KP_8},
|
|
||||||
{"kp9", SDLK_KP_9},
|
|
||||||
{"comma", SDLK_COMMA},
|
|
||||||
{"period", SDLK_PERIOD},
|
|
||||||
{"question", SDLK_QUESTION},
|
|
||||||
{"semicolon", SDLK_SEMICOLON},
|
|
||||||
{"minus", SDLK_MINUS},
|
|
||||||
{"underscore", SDLK_UNDERSCORE},
|
|
||||||
{"lparenthesis", SDLK_LEFTPAREN},
|
|
||||||
{"rparenthesis", SDLK_RIGHTPAREN},
|
|
||||||
{"lbracket", SDLK_LEFTBRACKET},
|
|
||||||
{"rbracket", SDLK_RIGHTBRACKET},
|
|
||||||
{"lbrace", SDLK_LEFTBRACE},
|
|
||||||
{"rbrace", SDLK_RIGHTBRACE},
|
|
||||||
{"backslash", SDLK_BACKSLASH},
|
|
||||||
{"dash", SDLK_SLASH},
|
|
||||||
{"enter", SDLK_RETURN},
|
|
||||||
{"space", SDLK_SPACE},
|
|
||||||
{"tab", SDLK_TAB},
|
|
||||||
{"backspace", SDLK_BACKSPACE},
|
|
||||||
{"escape", SDLK_ESCAPE},
|
|
||||||
{"left", SDLK_LEFT},
|
|
||||||
{"right", SDLK_RIGHT},
|
|
||||||
{"up", SDLK_UP},
|
|
||||||
{"down", SDLK_DOWN},
|
|
||||||
{"lctrl", SDLK_LCTRL},
|
|
||||||
{"rctrl", SDLK_RCTRL},
|
|
||||||
{"lshift", SDLK_LSHIFT},
|
|
||||||
{"rshift", SDLK_RSHIFT},
|
|
||||||
{"lalt", SDLK_LALT},
|
|
||||||
{"ralt", SDLK_RALT},
|
|
||||||
{"lmeta", SDLK_LGUI},
|
|
||||||
{"rmeta", SDLK_RGUI},
|
|
||||||
{"lwin", SDLK_LGUI},
|
|
||||||
{"rwin", SDLK_RGUI},
|
|
||||||
{"home", SDLK_HOME},
|
|
||||||
{"end", SDLK_END},
|
|
||||||
{"pgup", SDLK_PAGEUP},
|
|
||||||
{"pgdown", SDLK_PAGEDOWN},
|
|
||||||
{"leftbutton", SDL_BUTTON_LEFT},
|
|
||||||
{"rightbutton", SDL_BUTTON_RIGHT},
|
|
||||||
{"middlebutton", SDL_BUTTON_MIDDLE},
|
|
||||||
{"sidebuttonback", SDL_BUTTON_X1},
|
|
||||||
{"sidebuttonforward", SDL_BUTTON_X2},
|
|
||||||
{"mousewheelup", SDL_EVENT_MOUSE_WHEEL_UP},
|
|
||||||
{"mousewheeldown", SDL_EVENT_MOUSE_WHEEL_DOWN},
|
|
||||||
{"mousewheelleft", SDL_EVENT_MOUSE_WHEEL_LEFT},
|
|
||||||
{"mousewheelright", SDL_EVENT_MOUSE_WHEEL_RIGHT},
|
|
||||||
{"kpperiod", SDLK_KP_PERIOD},
|
|
||||||
{"kpcomma", SDLK_KP_COMMA},
|
|
||||||
{"kpdivide", SDLK_KP_DIVIDE},
|
|
||||||
{"kpmultiply", SDLK_KP_MULTIPLY},
|
|
||||||
{"kpminus", SDLK_KP_MINUS},
|
|
||||||
{"kpplus", SDLK_KP_PLUS},
|
|
||||||
{"kpenter", SDLK_KP_ENTER},
|
|
||||||
{"kpequals", SDLK_KP_EQUALS},
|
|
||||||
{"capslock", SDLK_CAPSLOCK},
|
|
||||||
};
|
|
||||||
const std::map<std::string, u32> string_to_keyboard_mod_key_map = {
|
|
||||||
{"lshift", SDL_KMOD_LSHIFT}, {"rshift", SDL_KMOD_RSHIFT},
|
|
||||||
{"lctrl", SDL_KMOD_LCTRL}, {"rctrl", SDL_KMOD_RCTRL},
|
|
||||||
{"lalt", SDL_KMOD_LALT}, {"ralt", SDL_KMOD_RALT},
|
|
||||||
{"shift", SDL_KMOD_SHIFT}, {"ctrl", SDL_KMOD_CTRL},
|
|
||||||
{"alt", SDL_KMOD_ALT}, {"l_meta", SDL_KMOD_LGUI},
|
|
||||||
{"r_meta", SDL_KMOD_RGUI}, {"meta", SDL_KMOD_GUI},
|
|
||||||
{"lwin", SDL_KMOD_LGUI}, {"rwin", SDL_KMOD_RGUI},
|
|
||||||
{"win", SDL_KMOD_GUI}, {"capslock", SDL_KMOD_CAPS},
|
|
||||||
{"numlock", SDL_KMOD_NUM}, {"none", SDL_KMOD_NONE}, // if you want to be fancy
|
|
||||||
};
|
|
||||||
|
|
||||||
// Button map: maps key+modifier to controller button
|
|
||||||
std::map<KeyBinding, u32> button_map = {};
|
|
||||||
std::map<KeyBinding, AxisMapping> axis_map = {};
|
|
||||||
std::map<SDL_Keycode, std::pair<SDL_Keymod, bool>> key_to_modkey_toggle_map = {};
|
|
||||||
|
|
||||||
// i wrapped it in a function so I can collapse it
|
// i wrapped it in a function so I can collapse it
|
||||||
std::string getDefaultKeyboardConfig() {
|
std::string getDefaultKeyboardConfig() {
|
||||||
std::string default_config =
|
std::string default_config =
|
||||||
@ -276,6 +116,11 @@ axis_left_y_plus = s;
|
|||||||
return default_config;
|
return default_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Button map: maps key+modifier to controller button
|
||||||
|
std::map<KeyBinding, u32> button_map = {};
|
||||||
|
std::map<KeyBinding, AxisMapping> axis_map = {};
|
||||||
|
std::map<SDL_Keycode, std::pair<SDL_Keymod, bool>> key_to_modkey_toggle_map = {};
|
||||||
|
|
||||||
// Flags and values for varying purposes
|
// Flags and values for varying purposes
|
||||||
int mouse_joystick_binding = 0;
|
int mouse_joystick_binding = 0;
|
||||||
float mouse_deadzone_offset = 0.5, mouse_speed = 1, mouse_speed_offset = 0.125;
|
float mouse_deadzone_offset = 0.5, mouse_speed = 1, mouse_speed_offset = 0.125;
|
||||||
@ -628,10 +473,6 @@ WindowSDL::WindowSDL(s32 width_, s32 height_, Input::GameController* controller_
|
|||||||
#endif
|
#endif
|
||||||
// initialize kbm controls
|
// initialize kbm controls
|
||||||
parseInputConfig(std::string(Common::ElfInfo::Instance().GameSerial()));
|
parseInputConfig(std::string(Common::ElfInfo::Instance().GameSerial()));
|
||||||
// Start polling the mouse
|
|
||||||
if (mouse_polling_id == 0) {
|
|
||||||
mouse_polling_id = SDL_AddTimer(33, mousePolling, (void*)this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WindowSDL::~WindowSDL() = default;
|
WindowSDL::~WindowSDL() = default;
|
||||||
@ -689,14 +530,12 @@ void WindowSDL::waitEvent() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
<<<<<<< HEAD
|
|
||||||
=======
|
|
||||||
|
|
||||||
void WindowSDL::initTimers() {
|
void WindowSDL::initTimers() {
|
||||||
SDL_AddTimer(100, &PollController, controller);
|
SDL_AddTimer(100, &PollController, controller);
|
||||||
|
SDL_AddTimer(33, mousePolling, (void*)this);
|
||||||
}
|
}
|
||||||
|
|
||||||
>>>>>>> upstreamMain
|
|
||||||
void WindowSDL::onResize() {
|
void WindowSDL::onResize() {
|
||||||
SDL_GetWindowSizeInPixels(window, &width, &height);
|
SDL_GetWindowSizeInPixels(window, &width, &height);
|
||||||
ImGui::Core::OnResize();
|
ImGui::Core::OnResize();
|
||||||
|
169
src/sdl_window.h
169
src/sdl_window.h
@ -3,12 +3,23 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "common/types.h"
|
#include "common/types.h"
|
||||||
|
#include "core/libraries/pad/pad.h"
|
||||||
#include "input/controller.h"
|
#include "input/controller.h"
|
||||||
|
|
||||||
#include <SDL3/SDL_events.h>
|
#include <SDL3/SDL_events.h>
|
||||||
|
|
||||||
|
// +1 and +2 is taken
|
||||||
|
#define SDL_MOUSE_WHEEL_UP SDL_EVENT_MOUSE_WHEEL + 3
|
||||||
|
#define SDL_MOUSE_WHEEL_DOWN SDL_EVENT_MOUSE_WHEEL + 4
|
||||||
|
#define SDL_MOUSE_WHEEL_LEFT SDL_EVENT_MOUSE_WHEEL + 5
|
||||||
|
#define SDL_MOUSE_WHEEL_RIGHT SDL_EVENT_MOUSE_WHEEL + 6
|
||||||
|
|
||||||
|
#define LEFTJOYSTICK_HALFMODE 0x00010000
|
||||||
|
#define RIGHTJOYSTICK_HALFMODE 0x00020000
|
||||||
|
|
||||||
struct SDL_Window;
|
struct SDL_Window;
|
||||||
struct SDL_Gamepad;
|
struct SDL_Gamepad;
|
||||||
union SDL_Event;
|
union SDL_Event;
|
||||||
@ -18,8 +29,6 @@ class GameController;
|
|||||||
}
|
}
|
||||||
|
|
||||||
namespace KBMConfig {
|
namespace KBMConfig {
|
||||||
std::string getDefaultKeyboardConfig();
|
|
||||||
void parseInputConfig(const std::string game_id);
|
|
||||||
|
|
||||||
class KeyBinding {
|
class KeyBinding {
|
||||||
public:
|
public:
|
||||||
@ -36,6 +45,162 @@ struct AxisMapping {
|
|||||||
Input::Axis axis;
|
Input::Axis axis;
|
||||||
int value; // Value to set for key press (+127 or -127 for movement)
|
int value; // Value to set for key press (+127 or -127 for movement)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::string getDefaultKeyboardConfig();
|
||||||
|
void parseInputConfig(const std::string game_id);
|
||||||
|
|
||||||
|
using Libraries::Pad::OrbisPadButtonDataOffset;
|
||||||
|
// i strongly suggest you collapse these maps
|
||||||
|
const std::map<std::string, u32> string_to_cbutton_map = {
|
||||||
|
{"triangle", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_TRIANGLE},
|
||||||
|
{"circle", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_CIRCLE},
|
||||||
|
{"cross", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_CROSS},
|
||||||
|
{"square", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_SQUARE},
|
||||||
|
{"l1", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_L1},
|
||||||
|
{"l2", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_L2},
|
||||||
|
{"r1", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_R1},
|
||||||
|
{"r2", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_R2},
|
||||||
|
{"l3", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_L3},
|
||||||
|
{"r3", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_R3},
|
||||||
|
{"options", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_OPTIONS},
|
||||||
|
{"touchpad", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_TOUCH_PAD},
|
||||||
|
{"up", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_UP},
|
||||||
|
{"down", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_DOWN},
|
||||||
|
{"left", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_LEFT},
|
||||||
|
{"right", OrbisPadButtonDataOffset::ORBIS_PAD_BUTTON_RIGHT},
|
||||||
|
{"leftjoystick_halfmode", LEFTJOYSTICK_HALFMODE},
|
||||||
|
{"rightjoystick_halfmode", RIGHTJOYSTICK_HALFMODE},
|
||||||
|
};
|
||||||
|
const std::map<std::string, AxisMapping> string_to_axis_map = {
|
||||||
|
{"axis_left_x_plus", {Input::Axis::LeftX, 127}},
|
||||||
|
{"axis_left_x_minus", {Input::Axis::LeftX, -127}},
|
||||||
|
{"axis_left_y_plus", {Input::Axis::LeftY, 127}},
|
||||||
|
{"axis_left_y_minus", {Input::Axis::LeftY, -127}},
|
||||||
|
{"axis_right_x_plus", {Input::Axis::RightX, 127}},
|
||||||
|
{"axis_right_x_minus", {Input::Axis::RightX, -127}},
|
||||||
|
{"axis_right_y_plus", {Input::Axis::RightY, 127}},
|
||||||
|
{"axis_right_y_minus", {Input::Axis::RightY, -127}},
|
||||||
|
};
|
||||||
|
const std::map<std::string, u32> string_to_keyboard_key_map = {
|
||||||
|
{"a", SDLK_A},
|
||||||
|
{"b", SDLK_B},
|
||||||
|
{"c", SDLK_C},
|
||||||
|
{"d", SDLK_D},
|
||||||
|
{"e", SDLK_E},
|
||||||
|
{"f", SDLK_F},
|
||||||
|
{"g", SDLK_G},
|
||||||
|
{"h", SDLK_H},
|
||||||
|
{"i", SDLK_I},
|
||||||
|
{"j", SDLK_J},
|
||||||
|
{"k", SDLK_K},
|
||||||
|
{"l", SDLK_L},
|
||||||
|
{"m", SDLK_M},
|
||||||
|
{"n", SDLK_N},
|
||||||
|
{"o", SDLK_O},
|
||||||
|
{"p", SDLK_P},
|
||||||
|
{"q", SDLK_Q},
|
||||||
|
{"r", SDLK_R},
|
||||||
|
{"s", SDLK_S},
|
||||||
|
{"t", SDLK_T},
|
||||||
|
{"u", SDLK_U},
|
||||||
|
{"v", SDLK_V},
|
||||||
|
{"w", SDLK_W},
|
||||||
|
{"x", SDLK_X},
|
||||||
|
{"y", SDLK_Y},
|
||||||
|
{"z", SDLK_Z},
|
||||||
|
{"0", SDLK_0},
|
||||||
|
{"1", SDLK_1},
|
||||||
|
{"2", SDLK_2},
|
||||||
|
{"3", SDLK_3},
|
||||||
|
{"4", SDLK_4},
|
||||||
|
{"5", SDLK_5},
|
||||||
|
{"6", SDLK_6},
|
||||||
|
{"7", SDLK_7},
|
||||||
|
{"8", SDLK_8},
|
||||||
|
{"9", SDLK_9},
|
||||||
|
{"kp0", SDLK_KP_0},
|
||||||
|
{"kp1", SDLK_KP_1},
|
||||||
|
{"kp2", SDLK_KP_2},
|
||||||
|
{"kp3", SDLK_KP_3},
|
||||||
|
{"kp4", SDLK_KP_4},
|
||||||
|
{"kp5", SDLK_KP_5},
|
||||||
|
{"kp6", SDLK_KP_6},
|
||||||
|
{"kp7", SDLK_KP_7},
|
||||||
|
{"kp8", SDLK_KP_8},
|
||||||
|
{"kp9", SDLK_KP_9},
|
||||||
|
{"comma", SDLK_COMMA},
|
||||||
|
{"period", SDLK_PERIOD},
|
||||||
|
{"question", SDLK_QUESTION},
|
||||||
|
{"semicolon", SDLK_SEMICOLON},
|
||||||
|
{"minus", SDLK_MINUS},
|
||||||
|
{"underscore", SDLK_UNDERSCORE},
|
||||||
|
{"lparenthesis", SDLK_LEFTPAREN},
|
||||||
|
{"rparenthesis", SDLK_RIGHTPAREN},
|
||||||
|
{"lbracket", SDLK_LEFTBRACKET},
|
||||||
|
{"rbracket", SDLK_RIGHTBRACKET},
|
||||||
|
{"lbrace", SDLK_LEFTBRACE},
|
||||||
|
{"rbrace", SDLK_RIGHTBRACE},
|
||||||
|
{"backslash", SDLK_BACKSLASH},
|
||||||
|
{"dash", SDLK_SLASH},
|
||||||
|
{"enter", SDLK_RETURN},
|
||||||
|
{"space", SDLK_SPACE},
|
||||||
|
{"tab", SDLK_TAB},
|
||||||
|
{"backspace", SDLK_BACKSPACE},
|
||||||
|
{"escape", SDLK_ESCAPE},
|
||||||
|
{"left", SDLK_LEFT},
|
||||||
|
{"right", SDLK_RIGHT},
|
||||||
|
{"up", SDLK_UP},
|
||||||
|
{"down", SDLK_DOWN},
|
||||||
|
{"lctrl", SDLK_LCTRL},
|
||||||
|
{"rctrl", SDLK_RCTRL},
|
||||||
|
{"lshift", SDLK_LSHIFT},
|
||||||
|
{"rshift", SDLK_RSHIFT},
|
||||||
|
{"lalt", SDLK_LALT},
|
||||||
|
{"ralt", SDLK_RALT},
|
||||||
|
{"lmeta", SDLK_LGUI},
|
||||||
|
{"rmeta", SDLK_RGUI},
|
||||||
|
{"lwin", SDLK_LGUI},
|
||||||
|
{"rwin", SDLK_RGUI},
|
||||||
|
{"home", SDLK_HOME},
|
||||||
|
{"end", SDLK_END},
|
||||||
|
{"pgup", SDLK_PAGEUP},
|
||||||
|
{"pgdown", SDLK_PAGEDOWN},
|
||||||
|
{"leftbutton", SDL_BUTTON_LEFT},
|
||||||
|
{"rightbutton", SDL_BUTTON_RIGHT},
|
||||||
|
{"middlebutton", SDL_BUTTON_MIDDLE},
|
||||||
|
{"sidebuttonback", SDL_BUTTON_X1},
|
||||||
|
{"sidebuttonforward", SDL_BUTTON_X2},
|
||||||
|
{"mousewheelup", SDL_MOUSE_WHEEL_UP},
|
||||||
|
{"mousewheeldown", SDL_MOUSE_WHEEL_DOWN},
|
||||||
|
{"mousewheelleft", SDL_MOUSE_WHEEL_LEFT},
|
||||||
|
{"mousewheelright", SDL_MOUSE_WHEEL_RIGHT},
|
||||||
|
{"kpperiod", SDLK_KP_PERIOD},
|
||||||
|
{"kpcomma", SDLK_KP_COMMA},
|
||||||
|
{"kpdivide", SDLK_KP_DIVIDE},
|
||||||
|
{"kpmultiply", SDLK_KP_MULTIPLY},
|
||||||
|
{"kpminus", SDLK_KP_MINUS},
|
||||||
|
{"kpplus", SDLK_KP_PLUS},
|
||||||
|
{"kpenter", SDLK_KP_ENTER},
|
||||||
|
{"kpequals", SDLK_KP_EQUALS},
|
||||||
|
{"capslock", SDLK_CAPSLOCK},
|
||||||
|
};
|
||||||
|
const std::map<std::string, u32> string_to_keyboard_mod_key_map = {
|
||||||
|
{"lshift", SDL_KMOD_LSHIFT}, {"rshift", SDL_KMOD_RSHIFT},
|
||||||
|
{"lctrl", SDL_KMOD_LCTRL}, {"rctrl", SDL_KMOD_RCTRL},
|
||||||
|
{"lalt", SDL_KMOD_LALT}, {"ralt", SDL_KMOD_RALT},
|
||||||
|
{"shift", SDL_KMOD_SHIFT}, {"ctrl", SDL_KMOD_CTRL},
|
||||||
|
{"alt", SDL_KMOD_ALT}, {"l_meta", SDL_KMOD_LGUI},
|
||||||
|
{"r_meta", SDL_KMOD_RGUI}, {"meta", SDL_KMOD_GUI},
|
||||||
|
{"lwin", SDL_KMOD_LGUI}, {"rwin", SDL_KMOD_RGUI},
|
||||||
|
{"win", SDL_KMOD_GUI}, {"capslock", SDL_KMOD_CAPS},
|
||||||
|
{"numlock", SDL_KMOD_NUM}, {"none", SDL_KMOD_NONE}, // if you want to be fancy
|
||||||
|
};
|
||||||
|
|
||||||
|
// Button map: maps key+modifier to controller button
|
||||||
|
extern std::map<KeyBinding, u32> button_map;
|
||||||
|
extern std::map<KeyBinding, AxisMapping> axis_map;
|
||||||
|
extern std::map<SDL_Keycode, std::pair<SDL_Keymod, bool>> key_to_modkey_toggle_map;
|
||||||
|
|
||||||
} // namespace KBMConfig
|
} // namespace KBMConfig
|
||||||
|
|
||||||
namespace Frontend {
|
namespace Frontend {
|
||||||
|
Loading…
Reference in New Issue
Block a user