77 return m_keys[keyButton];
153 class ButtonToKeyLess
157 const deskflow::KeyMap::ButtonToKeyMap::value_type &a,
const deskflow::KeyMap::ButtonToKeyMap::value_type b
160 return (a.first < b.first);
173 void addAliasEntries();
176 void addKeypadEntries();
180 void addCombinationEntries();
183 void fakeKeys(
const Keystrokes &, uint32_t count);
186 void updateModifierKeyState(
KeyButton button,
const ModifierToKeys &oldModifiers,
const ModifierToKeys &newModifiers);
189 static void addActiveModifierCB(
KeyID id, int32_t group, deskflow::KeyMap::KeyItem &keyItem,
void *vcontext);
193 deskflow::KeyMap *m_keyMapPtr;
196 deskflow::KeyMap &m_keyMap;
202 ModifierToKeys m_activeModifiers;
222 IEventQueue *m_events;
224 bool m_isLangSyncEnabled;
int key
Definition KeySequence.cpp:15
uint32_t KeyID
Key ID.
Definition KeyTypes.h:22
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:35
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:45
Event queue interface.
Definition IEventQueue.h:32
std::set< KeyButton > KeyButtonSet
Definition IKeyState.h:52
IKeyState(const IEventQueue *events)
Definition IKeyState.cpp:18
static const auto s_numButtons
Definition IKeyState.h:27
KeyModifierMask getActiveModifiers() const override
Get the active modifiers.
Definition KeyState.cpp:969
void fakeAllKeysUp() override
Fake key releases for all fake pressed keys.
Definition KeyState.cpp:943
void setHalfDuplexMask(KeyModifierMask) override
Set half-duplex mask.
Definition KeyState.cpp:782
virtual void onKey(KeyButton button, bool down, KeyModifierMask newState)
Handle key event.
Definition KeyState.cpp:685
KeyModifierMask pollActiveModifiers() const override=0
Get the active modifiers from OS.
KeyState(IEventQueue *events, std::vector< std::string > layouts, bool isLangSyncEnabled)
Definition KeyState.cpp:645
virtual void getKeyMap(deskflow::KeyMap &keyMap)=0
Get the keyboard map.
virtual void sendKeyEvent(void *target, bool press, bool isAutoRepeat, KeyID key, KeyModifierMask mask, int32_t count, KeyButton button)
Post a key event.
Definition KeyState.cpp:707
bool fakeKeyUp(KeyButton button) override
Fake a key release.
Definition KeyState.cpp:900
int32_t getKeyState(KeyButton keyButton) const
Definition KeyState.h:75
KeyButton getButton(KeyID id, int32_t group) const
Get button for a KeyID.
Definition KeyState.cpp:997
virtual KeyModifierMask & getActiveModifiersRValue()
Get the active modifiers.
Definition KeyState.cpp:974
deskflow::KeyMap::Keystroke Keystroke
Definition KeyState.h:81
virtual bool isIgnoredKey(KeyID key, KeyModifierMask mask) const
Check if key is ignored.
Definition KeyState.cpp:984
virtual void fakeKey(const Keystroke &keystroke)=0
Fake a key event.
void pollPressedKeys(KeyButtonSet &pressedKeys) const override=0
Get the keys currently pressed from OS.
int32_t getEffectiveGroup(int32_t group, int32_t offset) const
Compute a group number.
Definition KeyState.cpp:979
int32_t pollActiveGroup() const override=0
Get the active keyboard layout from OS.
void updateKeyMap() override
Update the keyboard map.
Definition KeyState.h:55
void updateKeyState() override
Update the key state.
Definition KeyState.cpp:748
bool fakeKeyRepeat(KeyID id, KeyModifierMask mask, int32_t count, KeyButton button, const std::string &lang) override
Fake a key repeat.
Definition KeyState.cpp:843
bool fakeMediaKey(KeyID id) override
Fake a media key.
Definition KeyState.cpp:959
void fakeKeyDown(KeyID id, KeyModifierMask mask, KeyButton button, const std::string &lang) override
Fake a key press.
Definition KeyState.cpp:796
bool fakeCtrlAltDel() override=0
Fake ctrl+alt+del.
bool isKeyDown(KeyButton) const override
Test if key is pressed.
Definition KeyState.cpp:964
~KeyState() override
Definition KeyState.cpp:671
A keystroke.
Definition KeyMap.h:72
Key map.
Definition KeyMap.h:24
std::multimap< KeyModifierMask, KeyItem > ModifierToKeys
A mapping of a modifier to keys for that modifier.
Definition KeyMap.h:114
std::vector< Keystroke > Keystrokes
A sequence of keystrokes.
Definition KeyMap.h:111
int32_t m_activeGroup
Definition KeyState.h:142
ModifierToKeys & m_activeModifiers
Definition KeyState.h:144
KeyModifierMask m_mask
Definition KeyState.h:143
AddActiveModifierContext(int32_t group, KeyModifierMask mask, ModifierToKeys &activeModifiers)
Definition KeyState.cpp:1142