1
0
Fork 0

Initial commit

This commit is contained in:
Henrik Hautakoski 2015-12-22 17:43:51 +01:00
commit edfc5298e1
252 changed files with 93965 additions and 0 deletions

View file

@ -0,0 +1,57 @@
#ifndef SPECTRE_INPUT_MODULE_H
#define SPECTRE_INPUT_MODULE_H
#include <deque>
#include <vector>
#include "InputListener.h"
#include "InputEvent.h"
class Mouse;
class Keyboard;
class InputDevice;
class PlatformInput;
class InputModule
{
public :
InputModule(PlatformInput *platform);
virtual ~InputModule();
Mouse* getMouse();
Keyboard* getKeyboard();
void addInputDevice(InputDevice *device);
void registerListener(InputListener* listener);
void removeListener(InputListener* listener);
void postInputEvent(const InputEvent& event);
// NOTE: Update devices here! (for winapi, process keyboard/mouse messages)
void update();
protected :
void dispatch();
typedef std::vector<InputDevice*> InputDeviceVec;
InputDeviceVec m_devices;
Mouse *m_mouse;
Keyboard *m_keyboard;
// Buffered input queue.
std::deque<InputEvent> m_buffer;
std::vector<InputListener*> m_listeners;
PlatformInput *m_platform;
};
#endif /* SPECTRE_INPUT_MODULE_H */