#include "./KeyboardHook.h" #include using namespace std; KeyboardHook::KeyboardHook(KeyboardHookType type) : type_{type} {}; KeyboardHook::~KeyboardHook() { if(this->_attached) this->detach(); } bool KeyboardHook::attach() { assert(!this->_attached); this->_attached = true; return true; } void KeyboardHook::detach() { assert(this->_attached); this->_attached = false; } void KeyboardHook::trigger_key_event(const enum KeyEvent::type& type, const std::string &key) { if(!this->callback_event) return; auto event = make_shared(); event->type = type; event->code = key; event->key_alt = this->map_special[KeyType::KEY_ALT] > 0; event->key_ctrl = this->map_special[KeyType::KEY_CTRL] > 0; event->key_windows = this->map_special[KeyType::KEY_WIN] > 0; event->key_shift = this->map_special[KeyType::KEY_SHIFT] > 0; this->callback_event(event); }