|
- //
- // Lol Engine
- //
- // Copyright: (c) 2010-2013 Benjamin Litzelmann
- // This program is free software; you can redistribute it and/or
- // modify it under the terms of the Do What The Fuck You Want To
- // Public License, Version 2, as published by Sam Hocevar. See
- // http://www.wtfpl.net/ for more details.
- //
-
- #if !defined __LOL_INPUT_DEVICE_INTERNAL_H__
- #define __LOL_INPUT_DEVICE_H__
-
- #include "core.h"
-
- #if defined LOL_INPUT_V2
-
- namespace lol
- {
-
- /** Internal class (not public) that allows to construct an InputDevice dynamically, when the keys, axis and cursors are not known at compile time */
- class InputDeviceInternal : InputDevice
- {
- public:
- InputDeviceInternal(const char* name) : InputDevice(name) { }
-
- void AddKey(const char* name);
- void AddAxis(const char* name, float sensitivity = 1.0f);
- void AddCursor(const char* name);
-
- void SetKey(int index, bool state) { m_keys[index] = state; }
- void SetAxis(int index, float value) { m_axis[index].m1 = value; }
- void SetCursor(int index, const vec2& position, const ivec2& pixel) { m_cursors[index].m1 = position; m_cursors[index].m2 = pixel; }
-
- static bool GetMouseCapture() { return m_capturemouse; }
-
- static InputDeviceInternal* CreateStandardKeyboard();
- static InputDeviceInternal* CreateStandardMouse();
- };
-
- } /* namespace lol */
-
- #endif // LOL_INPUT_V2
-
- #endif // __LOL_INPUT_DEVICE_INTERNAL_H__
|