/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ /// @file /// @author Don Gagne #include "FirmwarePluginManager.h" #include "FirmwarePlugin.h" FirmwarePluginManager::FirmwarePluginManager(QGCApplication* app) : QGCTool(app) , _genericFirmwarePlugin(NULL) { } FirmwarePluginManager::~FirmwarePluginManager() { delete _genericFirmwarePlugin; } QList FirmwarePluginManager::knownFirmwareTypes(void) { if (_knownFirmwareTypes.isEmpty()) { QList factoryList = FirmwarePluginFactoryRegister::instance()->pluginFactories(); for (int i=0; iknownFirmwareTypes()); } } _knownFirmwareTypes.append(MAV_AUTOPILOT_GENERIC); return _knownFirmwareTypes; } FirmwarePlugin* FirmwarePluginManager::firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) { FirmwarePlugin* _plugin = NULL; QList factoryList = FirmwarePluginFactoryRegister::instance()->pluginFactories(); // Find the plugin which supports this vehicle for (int i=0; ifirmwarePluginForAutopilot(autopilotType, vehicleType))) { return _plugin; } } // Default plugin fallback if (!_genericFirmwarePlugin) { _genericFirmwarePlugin = new FirmwarePlugin; } return _genericFirmwarePlugin; }