#ifndef _HEADER_INPUT_DEVICE_BASES #define _HEADER_INPUT_DEVICE_BASES #include "InputEnums.hpp" #include "TeaVector2.hpp" #include "TeaVector3.hpp" namespace Input { enum InputDeviceType { IDT_NONE, IDT_NOTDEFINED, IDT_XBOX, IDT_DS4 }; class InputDevice { public: virtual void Update() = 0; }; class Keyboard : public InputDevice { public: virtual bool GetKey(const InputKey a_Key) = 0; virtual bool GetKeyDown(const InputKey a_Key) = 0; }; class Joystick : public InputDevice { public: virtual ~Joystick() {}; virtual bool GetButton(const InputJoystickButton a_JoystickButton) = 0; virtual bool GetButton(const InputJoystickPhysical a_JoystickButton) = 0; virtual bool GetButtonDown(const InputJoystickButton a_JoystickButton) = 0; virtual bool GetButtonDown(const InputJoystickPhysical a_JoystickButton) = 0; virtual bool GetButtonUp(const InputJoystickButton a_JoystickButton) = 0; virtual bool GetButtonUp(const InputJoystickPhysical a_JoystickButton) = 0; virtual bool IsValid() = 0; virtual TeaLib::Math::Vector2f GetDelta(const InputJoystickAxis a_InputStick) = 0; virtual InputDeviceType GetDeviceType() = 0; }; } #endif