Files
Aerofoil/PortabilityLayer/InputManager.h
2020-02-26 12:17:04 -05:00

28 lines
712 B
C++

#pragma once
#include "GpVOSEvent.h"
struct GpGamepadInputEvent;
struct GpKeyboardInputEvent;
struct GpMouseInputEvent;
struct KeyDownStates;
namespace PortabilityLayer
{
struct Vec2i;
class InputManager
{
public:
virtual const KeyDownStates *GetKeys() const = 0;
virtual void ApplyKeyboardEvent(const GpKeyboardInputEvent &vosEvent) = 0;
virtual void ApplyGamepadEvent(const GpGamepadInputEvent &vosEvent) = 0;
virtual void ApplyMouseEvent(const GpMouseInputEvent &vosEvent) = 0;
virtual int16_t GetGamepadAxis(unsigned int playerNum, GpGamepadAxis_t gamepadAxis) = 0;
virtual Vec2i GetMousePosition() const = 0;
virtual void ClearState() = 0;
static InputManager *GetInstance();
};
}