11#ifndef IKEYBIND_PROVIDER_H
12#define IKEYBIND_PROVIDER_H
17#include <SDL_keycode.h>
18#include <SDL_joystick.h>
19#include <SDL_events.h>
37 virtual std::string getActionForKey(
const std::string& key)
const = 0;
46 virtual SDL_Keycode
getKey(
const std::string& action)
const = 0;
56 virtual void setKey(
const std::string& action, SDL_Keycode key) = 0;
76 virtual void setJoystickButton(
const std::string& action,
int joystickId, uint8_t button) = 0;
88 virtual void setJoystickHat(
const std::string& action,
int joystickId, uint8_t hat, uint8_t direction) = 0;
100 virtual void setJoystickAxis(
const std::string& action,
int joystickId, uint8_t axis,
bool positiveDirection) = 0;
121 virtual bool isAction(
const SDL_KeyboardEvent& event,
const std::string& action)
const = 0;
132 virtual bool isJoystickAction(
const SDL_JoyButtonEvent& event,
const std::string& action)
const = 0;
163 virtual void loadKeybinds(
const std::map<std::string, std::string>& keybindData) = 0;
172 virtual void saveKeybinds(std::map<std::string, std::string>& keybinds)
const = 0;
Interface for keybind providers (forward declaration).
Definition ikeybind_provider.h:30
virtual void setJoystickAxis(const std::string &action, int joystickId, uint8_t axis, bool positiveDirection)=0
Sets a joystick axis binding for an action.
virtual std::string eventToString(const SDL_Event &event) const =0
Converts an SDL event to a string representation.
virtual std::vector< std::string > getActions() const =0
Gets the list of supported actions.
virtual void setKey(const std::string &action, SDL_Keycode key)=0
Sets the keyboard keycode for an action.
virtual void setJoystickButton(const std::string &action, int joystickId, uint8_t button)=0
Sets a joystick button binding for an action.
virtual bool isJoystickAction(const SDL_JoyButtonEvent &event, const std::string &action) const =0
Checks if a joystick button event matches an action.
virtual bool isAction(const SDL_KeyboardEvent &event, const std::string &action) const =0
Checks if a keyboard event matches an action.
virtual bool isJoystickAxisAction(const SDL_JoyAxisEvent &event, const std::string &action) const =0
Checks if a joystick axis event matches an action.
virtual void loadKeybinds(const std::map< std::string, std::string > &keybindData)=0
Loads keybind configurations from a data map.
virtual bool isJoystickHatAction(const SDL_JoyHatEvent &event, const std::string &action) const =0
Checks if a joystick hat event matches an action.
virtual void saveKeybinds(std::map< std::string, std::string > &keybinds) const =0
Saves keybind configurations to a map.
virtual SDL_Keycode getKey(const std::string &action) const =0
Gets the keyboard keycode for an action.
virtual ~IKeybindProvider()=default
Virtual destructor for proper cleanup of derived classes.
virtual void setJoystickHat(const std::string &action, int joystickId, uint8_t hat, uint8_t direction)=0
Sets a joystick hat binding for an action.