17 #ifndef HEADER_SUPERTUX_CONTROL_GAME_CONTROLLER_MANAGER_HPP 18 #define HEADER_SUPERTUX_CONTROL_GAME_CONTROLLER_MANAGER_HPP 22 #include <unordered_map> 24 #include "control/controller.hpp" 27 struct SDL_ControllerAxisEvent;
28 struct SDL_ControllerButtonEvent;
29 struct _SDL_GameController;
30 typedef struct _SDL_GameController SDL_GameController;
43 void process_button_event(
const SDL_ControllerButtonEvent& ev);
44 void process_axis_event(
const SDL_ControllerAxisEvent& ev);
46 void on_controller_added(
int joystick_index);
47 void on_controller_removed(
int instance_id);
49 void on_player_removed(
int player_id);
50 bool has_corresponding_game_controller(
int player_id)
const;
53 int rumble(SDL_GameController* controller)
const;
55 void bind_controller(SDL_GameController* controller,
int player_id);
57 std::unordered_map<SDL_GameController*, int>& get_controller_mapping() {
return m_game_controllers; }
62 std::unordered_map<SDL_GameController*, int> m_game_controllers;
63 std::array<bool, static_cast<int>(Control::CONTROLCOUNT)> m_stick_state;
64 std::array<bool, static_cast<int>(Control::CONTROLCOUNT)> m_button_state;
int rumble(SDL_GameController *controller) const
Definition: game_controller_manager.cpp:327
Manages GameControllers.
Definition: game_controller_manager.hpp:37