#pragma once #include #include #include #include "settings/streamingpreferences.h" class SdlGamepadKeyNavigation : public QObject { Q_OBJECT public: SdlGamepadKeyNavigation(StreamingPreferences* prefs); ~SdlGamepadKeyNavigation(); Q_INVOKABLE void enable(); Q_INVOKABLE void disable(); Q_INVOKABLE void setUiNavMode(bool settingsMode); Q_INVOKABLE int getConnectedGamepads(); private: void sendKey(QEvent::Type type, Qt::Key key, Qt::KeyboardModifiers modifiers = Qt::NoModifier); private slots: void onPollingTimerFired(); private: StreamingPreferences* m_Prefs; QTimer* m_PollingTimer; QList m_Gamepads; bool m_Enabled; bool m_UiNavMode; bool m_FirstPoll; Uint32 m_LastAxisNavigationEventTime; };