#include "devicemanager.h" #include "radio433.h" #include "device.h" #include "deviceclass.h" #include "deviceplugin.h" #include #include #include Q_IMPORT_PLUGIN(RfSwitch) DeviceManager::DeviceManager(QObject *parent) : QObject(parent) { m_radio433 = new Radio433(this); QMetaObject::invokeMethod(this, "loadPlugins", Qt::QueuedConnection); } QList DeviceManager::supportedDevices() { return m_supportedDevices; } QList DeviceManager::devices() const { return m_devices; } Radio433 *DeviceManager::radio433() const { return m_radio433; } void DeviceManager::loadPlugins() { foreach (QObject *pluginObject, QPluginLoader::staticInstances()) { DevicePlugin *pluginIface = qobject_cast(pluginObject); if (pluginIface) { qDebug() << "*** Loaded plugin" << pluginIface->pluginName(); pluginIface->initPlugin(this); m_supportedDevices.append(pluginIface->supportedDevices()); m_devicePlugins.append(pluginIface); } } }