Initial commit
This commit is contained in:
commit
edfc5298e1
252 changed files with 93965 additions and 0 deletions
10
source/Input/InputDevice.cpp
Normal file
10
source/Input/InputDevice.cpp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
#include <Spectre/Input/InputDevice.h>
|
||||
|
||||
InputDevice::~InputDevice()
|
||||
{
|
||||
}
|
||||
|
||||
void InputDevice::init()
|
||||
{
|
||||
}
|
||||
19
source/Input/InputEvent.cpp
Normal file
19
source/Input/InputEvent.cpp
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
#include <Spectre/Input/Mouse.h>
|
||||
#include <Spectre/Input/Keyboard.h>
|
||||
#include <Spectre/Input/InputEvent.h>
|
||||
|
||||
InputEvent::InputEvent(Type type) :
|
||||
type (type)
|
||||
{
|
||||
}
|
||||
|
||||
std::string InputEvent::KeyEvent::getKeyName() const
|
||||
{
|
||||
return Keyboard::getKeyName(code);
|
||||
}
|
||||
|
||||
std::string InputEvent::MouseButtonEvent::getName() const
|
||||
{
|
||||
return Mouse::getButtonName(button);
|
||||
}
|
||||
6
source/Input/InputListener.cpp
Normal file
6
source/Input/InputListener.cpp
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
#include <Spectre/Input/Inputlistener.h>
|
||||
|
||||
void InputListener::onInputEvent(const InputEvent& event)
|
||||
{
|
||||
}
|
||||
96
source/Input/InputModule.cpp
Normal file
96
source/Input/InputModule.cpp
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
|
||||
#include <Platform/PlatformInput.h>
|
||||
#include <Spectre/Input/Keyboard.h>
|
||||
#include <Spectre/Input/Mouse.h>
|
||||
#include <Spectre/Input/InputEvent.h>
|
||||
#include <Spectre/Input/InputDevice.h>
|
||||
#include <Spectre/Input/InputModule.h>
|
||||
|
||||
InputModule::InputModule(PlatformInput *platform) :
|
||||
m_platform (platform)
|
||||
{
|
||||
// Let user "install" devices?
|
||||
m_mouse = m_platform->createMouse();
|
||||
m_keyboard = m_platform->createKeyboard();
|
||||
|
||||
addInputDevice(m_mouse);
|
||||
addInputDevice(m_keyboard);
|
||||
}
|
||||
|
||||
InputModule::~InputModule()
|
||||
{
|
||||
InputDeviceVec::iterator it;
|
||||
|
||||
for(it = m_devices.begin(); it != m_devices.end(); it++) {
|
||||
delete (*it);
|
||||
}
|
||||
}
|
||||
|
||||
void InputModule::addInputDevice(InputDevice *device)
|
||||
{
|
||||
device->init();
|
||||
|
||||
m_devices.push_back(device);
|
||||
}
|
||||
|
||||
void InputModule::registerListener(InputListener* listener)
|
||||
{
|
||||
m_listeners.push_back(listener);
|
||||
}
|
||||
|
||||
void InputModule::removeListener(InputListener* listener)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Mouse* InputModule::getMouse()
|
||||
{
|
||||
return m_mouse;
|
||||
}
|
||||
|
||||
Keyboard* InputModule::getKeyboard()
|
||||
{
|
||||
return m_keyboard;
|
||||
}
|
||||
|
||||
void InputModule::postInputEvent(const InputEvent& event)
|
||||
{
|
||||
if (m_buffer.size() < 128) {
|
||||
m_buffer.push_back(event);
|
||||
}
|
||||
}
|
||||
|
||||
void InputModule::update()
|
||||
{
|
||||
InputDeviceVec::iterator it;
|
||||
|
||||
m_platform->update();
|
||||
|
||||
// Update all devices.
|
||||
for(it = m_devices.begin(); it != m_devices.end(); it++) {
|
||||
|
||||
(*it)->update(this);
|
||||
}
|
||||
|
||||
// Dispatch all events to listeners.
|
||||
dispatch();
|
||||
}
|
||||
|
||||
void InputModule::dispatch()
|
||||
{
|
||||
std::deque<InputEvent>::iterator it;
|
||||
|
||||
for(it = m_buffer.begin(); it != m_buffer.end(); it++) {
|
||||
|
||||
const InputEvent& event = *it;
|
||||
|
||||
// Call listeners.
|
||||
std::vector<InputListener*>::iterator it;
|
||||
for(it = m_listeners.begin(); it != m_listeners.end(); it++) {
|
||||
|
||||
(*it)->onInputEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
m_buffer.clear();
|
||||
}
|
||||
112
source/Input/Keyboard.cpp
Normal file
112
source/Input/Keyboard.cpp
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
|
||||
#include <Spectre/Input/Keyboard.h>
|
||||
|
||||
struct keyentry
|
||||
{
|
||||
Key::Type type;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
#define MapSym(key, name) { key, name }
|
||||
|
||||
struct keyentry table[] = {
|
||||
MapSym(Key::Unknown, "Unknown"),
|
||||
MapSym(Key::A, "A"),
|
||||
MapSym(Key::B, "B"),
|
||||
MapSym(Key::C, "C"),
|
||||
MapSym(Key::D, "D"),
|
||||
MapSym(Key::E, "E"),
|
||||
MapSym(Key::F, "F"),
|
||||
MapSym(Key::G, "G"),
|
||||
MapSym(Key::H, "H"),
|
||||
MapSym(Key::I, "I"),
|
||||
MapSym(Key::J, "J"),
|
||||
MapSym(Key::K, "K"),
|
||||
MapSym(Key::L, "L"),
|
||||
MapSym(Key::M, "M"),
|
||||
MapSym(Key::N, "N"),
|
||||
MapSym(Key::O, "O"),
|
||||
MapSym(Key::P, "P"),
|
||||
MapSym(Key::Q, "Q"),
|
||||
MapSym(Key::R, "R"),
|
||||
MapSym(Key::S, "S"),
|
||||
MapSym(Key::T, "T"),
|
||||
MapSym(Key::U, "U"),
|
||||
MapSym(Key::V, "V"),
|
||||
MapSym(Key::W, "W"),
|
||||
MapSym(Key::X, "X"),
|
||||
MapSym(Key::Y, "Y"),
|
||||
MapSym(Key::Z, "Z"),
|
||||
MapSym(Key::One, "1"),
|
||||
MapSym(Key::Two, "2"),
|
||||
MapSym(Key::Three, "3"),
|
||||
MapSym(Key::Four, "4"),
|
||||
MapSym(Key::Five, "5"),
|
||||
MapSym(Key::Six, "6"),
|
||||
MapSym(Key::Seven, "7"),
|
||||
MapSym(Key::Eight, "8"),
|
||||
MapSym(Key::Nine, "9"),
|
||||
MapSym(Key::Zero, "0"),
|
||||
MapSym(Key::Period, "Period"),
|
||||
MapSym(Key::Comma, "Comma"),
|
||||
MapSym(Key::Enter, "Enter"),
|
||||
MapSym(Key::Backspace, "Backspace"),
|
||||
MapSym(Key::Escape, "Escape"),
|
||||
MapSym(Key::Space, "Space"),
|
||||
MapSym(Key::Capslock, "Capslock"),
|
||||
MapSym(Key::Up, "Up"),
|
||||
MapSym(Key::Down, "Down"),
|
||||
MapSym(Key::Left, "Left"),
|
||||
MapSym(Key::Right, "Right"),
|
||||
|
||||
// Numpad
|
||||
MapSym(Key::NUMPAD_1, "Numpad 1"),
|
||||
MapSym(Key::NUMPAD_2, "Numpad 2"),
|
||||
MapSym(Key::NUMPAD_3, "Numpad 3"),
|
||||
MapSym(Key::NUMPAD_4, "Numpad 4"),
|
||||
MapSym(Key::NUMPAD_5, "Numpad 5"),
|
||||
MapSym(Key::NUMPAD_6, "Numpad 6"),
|
||||
MapSym(Key::NUMPAD_7, "Numpad 7"),
|
||||
MapSym(Key::NUMPAD_8, "Numpad 8"),
|
||||
MapSym(Key::NUMPAD_9, "Numpad 9"),
|
||||
MapSym(Key::NUMPAD_0, "Numpad 0"),
|
||||
MapSym(Key::NUMPAD_Enter, "Numpad Enter"),
|
||||
|
||||
MapSym(Key::Home, "Home"),
|
||||
MapSym(Key::End, "End"),
|
||||
MapSym(Key::Insert, "Insert"),
|
||||
MapSym(Key::Delete, "Delete"),
|
||||
MapSym(Key::PageUp, "Page up"),
|
||||
MapSym(Key::PageDown, "Page down"),
|
||||
MapSym(Key::Pause, "Pause"),
|
||||
|
||||
// Function keys.
|
||||
MapSym(Key::F1, "F1"),
|
||||
MapSym(Key::F2, "F2"),
|
||||
MapSym(Key::F3, "F3"),
|
||||
MapSym(Key::F4, "F4"),
|
||||
MapSym(Key::F5, "F5"),
|
||||
MapSym(Key::F6, "F6"),
|
||||
MapSym(Key::F7, "F7"),
|
||||
MapSym(Key::F8, "F8"),
|
||||
MapSym(Key::F9, "F9"),
|
||||
MapSym(Key::F10, "F10"),
|
||||
MapSym(Key::F11, "F11"),
|
||||
MapSym(Key::F12, "F12"),
|
||||
|
||||
MapSym(Key::Tab, "Tab"),
|
||||
MapSym(Key::LShift, "Left Shift"),
|
||||
MapSym(Key::RShift, "Right Shift"),
|
||||
MapSym(Key::LCtrl, "Left Control"),
|
||||
MapSym(Key::RCtrl, "Right Control"),
|
||||
MapSym(Key::LAlt, "Left Alt"),
|
||||
MapSym(Key::RAlt, "Right Alt"),
|
||||
};
|
||||
|
||||
std::string Keyboard::getKeyName(Key::Type key)
|
||||
{
|
||||
if (key >= Key::NUM_KEYS) {
|
||||
key = Key::Unknown;
|
||||
}
|
||||
return table[key].name;
|
||||
}
|
||||
20
source/Input/Mouse.cpp
Normal file
20
source/Input/Mouse.cpp
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
#include <Spectre/Input/Mouse.h>
|
||||
|
||||
Mouse::~Mouse()
|
||||
{
|
||||
}
|
||||
|
||||
std::string Mouse::getButtonName(MouseButton::Type button)
|
||||
{
|
||||
switch(button) {
|
||||
case MouseButton::Button1 : return "Button1";
|
||||
case MouseButton::Button2 : return "Button2";
|
||||
case MouseButton::Left : return "Left";
|
||||
case MouseButton::Right : return "Right";
|
||||
case MouseButton::Middle : return "Middle";
|
||||
case MouseButton::Unknown :
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue