/********************************************************************
*
* File: fsCInputManager.h
*
* Purpose: cocos2dx input manager impl
*
*********************************************************************/
#ifndef fsCInputManagerhdr
#define fsCInputManagerhdr
#include <fsCore/fsBaseTypes.h>
#ifdef AXMOL_V3
#include "v3/fsCInputManager.h"
#else
#include <base/EventListenerMouse.h>
#include <base/EventListenerKeyboard.h>
#include <base/EventListenerTouch.h>
#include <base/EventListenerController.h>
#include <base/EventController.h>
#include "../../fsIInputManager.h"
#include <fsCore/fsStr.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))
void mouseListenerCreate();
fsBool mouseButtonDownEventCallback(axmol::EventMouse* pEvent);
fsBool mouseButtonUpEventCallback(axmol::EventMouse* pEvent);
fsBool mouseMoveEventCallback(axmol::EventMouse* pEvent);
axmol::EventListenerMouse* mMouseListener;
#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::EventKeyboard::KeyCode pKeyCode, axmol::Event* pEvent);
void keyDownEventCallback(axmol::EventKeyboard::KeyCode pKeyCode, axmol::Event* pEvent);
void touchListenerCreate();
fsBool touchStartEventCallback(axmol::Touch* pTouch, axmol::Event* pEvent);
void touchEndEventCallback(axmol::Touch* pTouch, axmol::Event* pEvent);
void touchMoveEventCallback(axmol::Touch* pTouch, axmol::Event* pEvent);
axmol::EventListenerKeyboard* mKeyboardListener;
axmol::EventListenerTouchOneByOne* mTouchListener;
axmol::EventListenerController* mGamePadListener;
};
#endif
#endif