prime/include/Kyoto/Input/IController.hpp

30 lines
746 B
C++
Raw Normal View History

#ifndef _ICONTROLLER
#define _ICONTROLLER
#include <types.h>
#include "Kyoto/Input/CControllerGamepadData.hpp"
2022-09-18 06:05:46 +00:00
#include "Kyoto/Input/InputTypes.hpp"
class COsContext;
class IController {
2022-09-13 04:52:59 +00:00
protected:
2022-09-18 06:05:46 +00:00
static const float kAbsoluteMinimum;
static const float kAbsoluteMaximum;
static const float kRelativeMinimum;
static const float kRelativeMaximum;
public:
2022-09-18 06:05:46 +00:00
IController();
virtual ~IController();
virtual void Poll() = 0;
virtual uint GetDeviceCount() const = 0;
virtual CControllerGamepadData& GetGamepadData(int controller) = 0;
virtual uint GetControllerType(int) const = 0;
virtual void SetMotorState(EIOPort port, EMotorState state) = 0;
2022-09-18 06:05:46 +00:00
static IController* Create(const COsContext& ctx);
};
#endif // _ICONTROLLER