diff --git a/src/Joystick/JoystickManager.cc b/src/Joystick/JoystickManager.cc index 1ef0fc6..a8d3f6f 100644 --- a/src/Joystick/JoystickManager.cc +++ b/src/Joystick/JoystickManager.cc @@ -53,7 +53,10 @@ void JoystickManager::setToolbox(QGCToolbox *toolbox) _multiVehicleManager = _toolbox->multiVehicleManager(); QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); +} +void JoystickManager::discoverJoysticks() +{ #ifdef __sdljoystick__ _name2JoystickMap = JoystickSDL::discover(_multiVehicleManager); #elif defined(__android__) diff --git a/src/Joystick/JoystickManager.h b/src/Joystick/JoystickManager.h index 26cf009..8460b75 100644 --- a/src/Joystick/JoystickManager.h +++ b/src/Joystick/JoystickManager.h @@ -48,6 +48,9 @@ public: // Override from QGCTool virtual void setToolbox(QGCToolbox *toolbox); +public slots: + void discoverJoysticks(); + signals: void activeJoystickChanged(Joystick* joystick); void activeJoystickNameChanged(const QString& name); diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 8e22955..d436f68 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -429,6 +429,9 @@ bool QGCApplication::_initForNormalAppBoot(void) // Load known link configurations toolbox()->linkManager()->loadLinkConfigurationList(); + // Probe for joysticks - TODO: manage on a timer or use events to deal with hotplug + toolbox()->joystickManager()->discoverJoysticks(); + if (_settingsUpgraded) { settings.clear(); settings.setValue(_settingsVersionKey, QGC_SETTINGS_VERSION);