22#ifndef BACKEND_EVENTS_SDL_H
23#define BACKEND_EVENTS_SDL_H
25#include "backends/platform/sdl/sdl-sys.h"
26#include "backends/graphics/sdl/sdl-graphics.h"
28#include "common/events.h"
31#if !SDL_VERSION_ATLEAST(2, 0, 0)
32typedef SDLKey SDL_Keycode;
33typedef SDLMod SDL_Keymod;
34typedef SDL_keysym SDL_Keysym;
76#if SDL_VERSION_ATLEAST(3, 0, 0)
78 SDL_Gamepad *_controller;
79#elif SDL_VERSION_ATLEAST(2, 0, 0)
81 SDL_GameController *_controller;
131 virtual bool handleKeyDown(SDL_Event &ev,
Common::Event &event);
132 virtual bool handleKeyUp(SDL_Event &ev,
Common::Event &event);
133 virtual bool handleMouseMotion(SDL_Event &ev,
Common::Event &event);
134 virtual bool handleMouseButtonDown(SDL_Event &ev,
Common::Event &event);
135 virtual bool handleMouseButtonUp(SDL_Event &ev,
Common::Event &event);
136 virtual bool handleSysWMEvent(SDL_Event &ev,
Common::Event &event);
137 virtual int mapSDLJoystickButtonToOSystem(Uint8 sdlButton);
138 virtual bool handleJoyButtonDown(SDL_Event &ev,
Common::Event &event);
139 virtual bool handleJoyButtonUp(SDL_Event &ev,
Common::Event &event);
140 virtual bool handleJoyAxisMotion(SDL_Event &ev,
Common::Event &event);
141 virtual bool handleJoyHatMotion(SDL_Event &ev,
Common::Event &event);
143#if SDL_VERSION_ATLEAST(2, 0, 0)
144 virtual bool handleJoystickAdded(
const SDL_JoyDeviceEvent &device,
Common::Event &event);
145 virtual bool handleJoystickRemoved(
const SDL_JoyDeviceEvent &device,
Common::Event &event);
146 virtual int mapSDLControllerButtonToOSystem(Uint8 sdlButton);
147 virtual bool handleControllerButton(
const SDL_Event &ev,
Common::Event &event,
bool buttonUp);
148 virtual bool handleControllerAxisMotion(
const SDL_Event &ev,
Common::Event &event);
150 virtual bool isTouchPortTouchpadMode(SDL_TouchID port);
151 virtual bool isTouchPortActive(SDL_TouchID port);
153 virtual void convertTouchXYToGameXY(
float touchX,
float touchY,
int *gameX,
int *gameY);
174 virtual int mapKey(SDL_Keycode key, SDL_Keymod mod, Uint16 unicode);
197#if !SDL_VERSION_ATLEAST(3, 0, 0)
230 uint8 _lastHatPosition;
232#if SDL_VERSION_ATLEAST(2, 0, 0)
236 bool _queuedFakeKeyUp;
247 int _queuedFakeMouseScroll;
259 MAX_TAP_MOTION_DISTANCE = 10,
260 SIMULATED_CLICK_DURATION = 50,
261 FINGER_SUBPIXEL_MULTIPLIER = 16
265#if SDL_VERSION_ATLEAST(3, 0, 0)
270 uint32 timeLastDown = 0;
283 struct TouchPanelState {
284 TouchFinger _finger[MAX_NUM_FINGERS];
285 DraggingType _multiFingerDragging = DRAG_NONE;
286 unsigned int _simulatedClickStartTime[2] = {0, 0};
289 bool _tapMade =
false;
295 void preprocessFingerDown(SDL_Event *event);
296 bool preprocessFingerUp(SDL_Event *event,
Common::Event *ev);
297 void preprocessFingerMotion(SDL_Event *event);
298 void finishSimulatedMouseClicks(
void);
Definition: sdl-events.h:40
bool _staleMousePositionWorkaround
Definition: sdl-events.h:222
void setEngineRunning(bool value)
SDL_Keycode obtainKeycode(const SDL_Keysym keySym)
virtual bool remapKey(SDL_Event &ev, Common::Event &event)
virtual bool dispatchSDLEvent(SDL_Event &ev, Common::Event &event)
virtual void SDLModToOSystemKeyFlags(SDL_Keymod mod, Common::Event &event)
virtual int mapKey(SDL_Keycode key, SDL_Keymod mod, Uint16 unicode)
uint32 obtainUnicode(const SDL_KeyboardEvent &key)
SDL_Joystick * _joystick
Definition: sdl-events.h:74
bool _queuedFakeMouseMove
Definition: sdl-events.h:207
void openJoystick(int joystickIndex)
SdlGraphicsManager * _graphicsManager
Definition: sdl-events.h:90
bool pollEvent(Common::Event &event) override
Common::KeyCode SDLToOSystemKeycode(const SDL_Keycode key)
void loadGameControllerMappingFile()
virtual void preprocessEvents(SDL_Event *event)
Definition: sdl-events.h:115
bool handleResizeEvent(Common::Event &event, int w, int h)
void fakeWarpMouse(const int x, const int y)
bool isJoystickConnected() const
virtual bool processMouseEvent(Common::Event &event, int x, int y, int relx=0, int rely=0)
int _lastScreenID
Definition: sdl-events.h:85
bool _scrollLock
Definition: sdl-events.h:66
Common::Event _fakeMouseMove
Definition: sdl-events.h:214
Definition: sdl-graphics.h:38