/********************************************************************
*
* File: fsCInputManager.h
*
* Purpose: axmol v3 input manager impl
*
*********************************************************************/
#ifndef fsCInputManagerV3hdr
#define fsCInputManagerV3hdr
#include <fsCore/fsBaseTypes.h>
#include <fsCore/fsStr.h>
#include <base/ControllerEvent.h>
#include <base/ControllerEventListener.h>
#include <base/KeyboardEvent.h>
#include <base/KeyboardEventListener.h>
#include <base/PointerEvent.h>
#include <base/PointerEventListener.h>
#include "../../../fsIInputManager.h"
class fsCInputManager : public fsIInputManager
{
friend class fsIInputManager;
public:
fsS32 pointerTypeGet() const override;
fsBool hasPhysicalKeyboardGet() const override;
protected:
void pollKeys() override;
virtual void stolenInputDo()
{
}
void initialiseDo() override;
void uninitialiseDo() override;
fsBool keyDecodeDo(fsS32& pKeyCode) override;
fsCInputManager();
virtual ~fsCInputManager();<--- Destructor in derived class
private:
#if (defined(fsDesktop) || defined(fsWeb))
fsBool pointerDownEventCallback(axmol::PointerEvent* pEvent);
void pointerUpEventCallback(axmol::PointerEvent* pEvent);
void pointerMoveEventCallback(axmol::PointerEvent* pEvent);
axmol::PointerEventListener* mPointerListener;
#endif
void controllerKeyUpEventCallback(ax::Controller* pController, int pKeyCode, axmol::Event* pEvent);
void controllerKeyDownEventCallback(ax::Controller* pController, int pKeyCode, axmol::Event* pEvent);
void gamePadListenerCreate();
void keyboardListenerCreate();
void keyUpEventCallback(axmol::KeyboardEvent* pEvent);
void keyDownEventCallback(axmol::KeyboardEvent* pEvent);
void pointerListenerCreate();
void touchListenerCreate();
fsBool pointerInputPointHandle(axmol::PointerEvent* pEvent, fsBool pDown);
void pointerMoveInputPointHandle(axmol::PointerEvent* pEvent);
axmol::EventListenerKeyboard* mKeyboardListener;
axmol::PointerEventListener* mTouchListener;
axmol::EventListenerController* mGamePadListener;
};
#endif