#include #include #include #include #include "core/common/Enums.h" #include "core/input/RawInputDetector.h" static_assert(static_cast(FancyInput::FipKeys::Enter) == 0x1000); static_assert(static_cast(FancyInput::FipRawKeys::NumpadEnter) == 0xE01C); static_assert(static_cast(FancyInput::FIPGamepadButtonflags::Y) == 0x8000); int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); app.setOrganizationName("FancyInput"); app.setApplicationName("FancyInput"); app.setApplicationVersion("1.2.0"); qputenv("QT_QUICK_CONTROLS_STYLE", "Basic"); QQmlApplicationEngine engine; engine.addImportPath(QStringLiteral("qrc:/")); QObject::connect(&engine, &QQmlApplicationEngine::objectCreationFailed, &app, []() { QCoreApplication::exit(-1); }, Qt::QueuedConnection); engine.loadFromModule("FancyInputQt", "MainWindow"); FancyInput::RawInputDetector rawInputDetector(&app); if (!engine.rootObjects().isEmpty()) { if (auto *window = qobject_cast(engine.rootObjects().constFirst())) { rawInputDetector.start(window); QObject::connect(&rawInputDetector, &FancyInput::RawInputDetector::keyPressed, [](FancyInput::FipKeys key, FancyInput::FipRawKeys rawKey, quint16 virtualKey, quint16 scanCode, bool extended, bool ctrl, bool shift, bool alt, bool win, bool numLock, bool capsLock, bool scrollLock) { qInfo().nospace() << "KEY DOWN key=" << static_cast(key) << " raw=" << static_cast(rawKey) << " vk=0x" << Qt::hex << virtualKey << " scan=0x" << scanCode << Qt::dec << " e0=" << extended << " modifiers(ctrl=" << ctrl << ",shift=" << shift << ",alt=" << alt << ",win=" << win << ") locks(num=" << numLock << ",caps=" << capsLock << ",scroll=" << scrollLock << ')'; }); QObject::connect(&rawInputDetector, &FancyInput::RawInputDetector::keyReleased, [](FancyInput::FipKeys key, FancyInput::FipRawKeys rawKey, quint16 virtualKey, quint16 scanCode, bool extended, bool, bool, bool, bool, bool, bool, bool) { qInfo().nospace() << "KEY UP key=" << static_cast(key) << " raw=" << static_cast(rawKey) << " vk=0x" << Qt::hex << virtualKey << " scan=0x" << scanCode << Qt::dec << " e0=" << extended; }); QObject::connect(&rawInputDetector, &FancyInput::RawInputDetector::mouseButtonChanged, [](FancyInput::MouseCodeType button, bool pressed) { qInfo() << (pressed ? "MOUSE DOWN" : "MOUSE UP") << static_cast(button); }); QObject::connect(&rawInputDetector, &FancyInput::RawInputDetector::mouseWheelMoved, [](int delta) { qInfo() << "MOUSE WHEEL" << delta; }); QObject::connect(&rawInputDetector, &FancyInput::RawInputDetector::mouseMoved, [](int deltaX, int deltaY) { qInfo() << "MOUSE MOVE" << deltaX << deltaY; }); qInfo() << "Raw Input detection enabled on the main window."; } } return app.exec(); }