KeyEvent FifechanManager::translateKeyEvent(const fcn::KeyEvent& fcnevt) { KeyEvent keyevt; if(fcnevt.getType() == fcn::KeyEvent::Pressed) keyevt.setType(KeyEvent::PRESSED); else if(fcnevt.getType() == fcn::KeyEvent::Released) keyevt.setType(KeyEvent::RELEASED); else { FL_WARN(_log, LMsg("FifechanManager::translateKeyEvent() - ") << "Unknown event type: " << fcnevt.getType()); keyevt.setType(KeyEvent::UNKNOWN); } keyevt.setShiftPressed(fcnevt.isShiftPressed()); keyevt.setControlPressed(fcnevt.isControlPressed()); keyevt.setAltPressed(fcnevt.isAltPressed()); keyevt.setMetaPressed(fcnevt.isMetaPressed()); keyevt.setNumericPad(fcnevt.isNumericPad()); // Convert from fifechan keyval to FIFE keyval int32_t keyval = fcnevt.getKey().getValue(); keyval = convertFifechanKeyToFifeKey(keyval); keyevt.setKey(Key(static_cast<Key::KeyType>(keyval), keyval)); return keyevt; }