You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
915 B
34 lines
915 B
#pragma once |
|
|
|
#include <SDL.h> |
|
|
|
#include "controller_buttons.h" |
|
|
|
namespace devilution { |
|
|
|
enum ControllerButtonState : uint8_t { |
|
ControllerButtonState_RELEASED = SDL_RELEASED, |
|
ControllerButtonState_PRESSED = SDL_PRESSED, |
|
ControllerButtonState_HELD = SDL_PRESSED + SDL_RELEASED + 1 // for making it sure that the value is different |
|
}; |
|
|
|
struct ControllerButtonEvent { |
|
ControllerButton button; |
|
bool up; |
|
uint8_t state; |
|
}; |
|
|
|
// Must be called exactly once at the start of each SDL input event. |
|
void UnlockControllerState(const SDL_Event &event); |
|
|
|
ControllerButtonEvent ToControllerButtonEvent(const SDL_Event &event); |
|
|
|
bool IsControllerButtonPressed(ControllerButton button); |
|
|
|
bool HandleControllerAddedOrRemovedEvent(const SDL_Event &event); |
|
|
|
void UnlockHeldControllerButtonEvents(const SDL_Event &event); |
|
|
|
int PollActionButtonPressed(SDL_Event *event); |
|
|
|
} // namespace devilution
|
|
|