1
0
Fork 0
spectre/include/Spectre/Input/InputModule.h
Henrik Hautakoski e10daeaaa6
Move everything from global namespace to "sp" namespace
When writing the X11 (linux) implementation there was a problem with X11 defining a "Display" type and we also have a Display class in the engine.

So to fix that problem and minimize the risk for running into other name conflicts. We move everything from global namespace.
2019-09-30 19:10:17 +02:00

61 lines
1,009 B
C++

#ifndef SPECTRE_INPUT_MODULE_H
#define SPECTRE_INPUT_MODULE_H
#include <deque>
#include <vector>
#include "InputListener.h"
#include "InputEvent.h"
namespace sp {
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;
};
} // namespace sp
#endif /* SPECTRE_INPUT_MODULE_H */