32 using AKeyCodeToKeySymbolMap = std::map<uint32_t, vsg::KeySymbol>;
34 bool getKeySymbol(uint32_t keycode, uint32_t metastate, vsg::KeySymbol& keySymbol, vsg::KeySymbol& modifiedKeySymbol, vsg::KeyModifier& keyModifier)
36 auto itr = _keycodeMap.find(keycode);
37 if (itr == _keycodeMap.end())
return false;
39 keySymbol = itr->second;
40 modifiedKeySymbol = keySymbol;
42 uint16_t modifierMask = 0;
44 if (metastate & AMETA_ALT_ON) modifierMask |= vsg::KeyModifier::MODKEY_Alt;
45 if (metastate & AMETA_CTRL_ON) modifierMask |= vsg::KeyModifier::MODKEY_Control;
46 if (metastate & AMETA_SHIFT_ON) modifierMask |= vsg::KeyModifier::MODKEY_Shift;
47 if (metastate & AMETA_CAPS_LOCK_ON) modifierMask |= vsg::KeyModifier::MODKEY_CapsLock;
48 if (metastate & AMETA_NUM_LOCK_ON) modifierMask |= vsg::KeyModifier::MODKEY_NumLock;
50 keyModifier = (vsg::KeyModifier)modifierMask;
58 AKeyCodeToKeySymbolMap _keycodeMap;