|
@@ -89,10 +89,10 @@ struct Keyboard
|
|
|
return state;
|
|
return state;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- static void decodeKeyState(uint32_t _state, uint8_t& _modifiers, bool& _down)
|
|
|
|
|
|
|
+ static bool decodeKeyState(uint32_t _state, uint8_t& _modifiers)
|
|
|
{
|
|
{
|
|
|
_modifiers = (_state>>16)&0xff;
|
|
_modifiers = (_state>>16)&0xff;
|
|
|
- _down = 0 != ( (_state>>8)&0xff);
|
|
|
|
|
|
|
+ return 0 != ( (_state>> 8)&0xff);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void setKeyState(entry::Key::Enum _key, uint8_t _modifiers, bool _down)
|
|
void setKeyState(entry::Key::Enum _key, uint8_t _modifiers, bool _down)
|
|
@@ -101,6 +101,14 @@ struct Keyboard
|
|
|
m_once[_key] = false;
|
|
m_once[_key] = false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ bool getKeyState(entry::Key::Enum _key, uint8_t* _modifiers)
|
|
|
|
|
+ {
|
|
|
|
|
+ uint8_t modifiers;
|
|
|
|
|
+ _modifiers = NULL == _modifiers ? &modifiers : _modifiers;
|
|
|
|
|
+
|
|
|
|
|
+ return decodeKeyState(m_key[_key], *_modifiers);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
void pushChar(uint8_t _len, const uint8_t _char[4])
|
|
void pushChar(uint8_t _len, const uint8_t _char[4])
|
|
|
{
|
|
{
|
|
|
for (uint32_t len = m_ring.reserve(4)
|
|
for (uint32_t len = m_ring.reserve(4)
|
|
@@ -196,8 +204,7 @@ struct Input
|
|
|
for (const InputBinding* binding = _bindings; binding->m_key != entry::Key::None; ++binding)
|
|
for (const InputBinding* binding = _bindings; binding->m_key != entry::Key::None; ++binding)
|
|
|
{
|
|
{
|
|
|
uint8_t modifiers;
|
|
uint8_t modifiers;
|
|
|
- bool down;
|
|
|
|
|
- Keyboard::decodeKeyState(m_keyboard.m_key[binding->m_key], modifiers, down);
|
|
|
|
|
|
|
+ bool down = Keyboard::decodeKeyState(m_keyboard.m_key[binding->m_key], modifiers);
|
|
|
|
|
|
|
|
if (binding->m_flags == 1)
|
|
if (binding->m_flags == 1)
|
|
|
{
|
|
{
|
|
@@ -302,6 +309,11 @@ void inputSetKeyState(entry::Key::Enum _key, uint8_t _modifiers, bool _down)
|
|
|
s_input->m_keyboard.setKeyState(_key, _modifiers, _down);
|
|
s_input->m_keyboard.setKeyState(_key, _modifiers, _down);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+bool inputGetKeyState(entry::Key::Enum _key, uint8_t* _modifiers)
|
|
|
|
|
+{
|
|
|
|
|
+ return s_input->m_keyboard.getKeyState(_key, _modifiers);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
void inputChar(uint8_t _len, const uint8_t _char[4])
|
|
void inputChar(uint8_t _len, const uint8_t _char[4])
|
|
|
{
|
|
{
|
|
|
s_input->m_keyboard.pushChar(_len, _char);
|
|
s_input->m_keyboard.pushChar(_len, _char);
|