This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
powersync-core/libhive/devicemanager.cpp
Michael Zanetti 9f7fd197bb fix merge
2013-12-30 22:13:31 +01:00

51 lines
1.1 KiB
C++

#include "devicemanager.h"
#include "radio433.h"
#include "device.h"
#include "deviceclass.h"
#include "deviceplugin.h"
#include <QPluginLoader>
#include <QtPlugin>
#include <QDebug>
Q_IMPORT_PLUGIN(RfSwitch)
DeviceManager::DeviceManager(QObject *parent) :
QObject(parent)
{
m_radio433 = new Radio433(this);
QMetaObject::invokeMethod(this, "loadPlugins", Qt::QueuedConnection);
}
QList<DeviceClass> DeviceManager::supportedDevices()
{
return m_supportedDevices;
}
QList<Device *> 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<DevicePlugin*>(pluginObject);
if (pluginIface) {
qDebug() << "*** Loaded plugin" << pluginIface->pluginName();
pluginIface->initPlugin(this);
m_supportedDevices.append(pluginIface->supportedDevices());
m_devicePlugins.append(pluginIface);
}
}
}