ASAPCabinetFE
 
Loading...
Searching...
No Matches
ikeybind_provider.h
Go to the documentation of this file.
1
11#ifndef IKEYBIND_PROVIDER_H
12#define IKEYBIND_PROVIDER_H
13
14#include <string>
15#include <vector>
16#include <map>
17#include <SDL_keycode.h>
18#include <SDL_joystick.h>
19#include <SDL_events.h>
20
31public:
35 virtual ~IKeybindProvider() = default;
36
37 virtual std::string getActionForKey(const std::string& key) const = 0;
46 virtual SDL_Keycode getKey(const std::string& action) const = 0;
47
56 virtual void setKey(const std::string& action, SDL_Keycode key) = 0;
57
65 virtual std::vector<std::string> getActions() const = 0;
66
76 virtual void setJoystickButton(const std::string& action, int joystickId, uint8_t button) = 0;
77
88 virtual void setJoystickHat(const std::string& action, int joystickId, uint8_t hat, uint8_t direction) = 0;
89
100 virtual void setJoystickAxis(const std::string& action, int joystickId, uint8_t axis, bool positiveDirection) = 0;
101
110 virtual std::string eventToString(const SDL_Event& event) const = 0;
111
121 virtual bool isAction(const SDL_KeyboardEvent& event, const std::string& action) const = 0;
122
132 virtual bool isJoystickAction(const SDL_JoyButtonEvent& event, const std::string& action) const = 0;
133
143 virtual bool isJoystickHatAction(const SDL_JoyHatEvent& event, const std::string& action) const = 0;
144
154 virtual bool isJoystickAxisAction(const SDL_JoyAxisEvent& event, const std::string& action) const = 0;
155
163 virtual void loadKeybinds(const std::map<std::string, std::string>& keybindData) = 0;
164
172 virtual void saveKeybinds(std::map<std::string, std::string>& keybinds) const = 0;
173};
174
175#endif // IKEYBIND_PROVIDER_H
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.