added addconfigureddevice for descriptors to devicemanager
This commit is contained in:
parent
2d84223ad6
commit
29c6fa4071
@ -180,6 +180,24 @@ DeviceManager::DeviceError DeviceManager::addConfiguredDevice(const DeviceClassI
|
|||||||
return DeviceErrorCreationMethodNotSupported;
|
return DeviceErrorCreationMethodNotSupported;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DeviceManager::DeviceError DeviceManager::addConfiguredDevice(const DeviceClassId &deviceClassId, const DeviceDescriptorId &deviceDescriptorId)
|
||||||
|
{
|
||||||
|
DeviceClass deviceClass = findDeviceClass(deviceClassId);
|
||||||
|
if (!deviceClass.isValid()) {
|
||||||
|
return DeviceErrorDeviceClassNotFound;
|
||||||
|
}
|
||||||
|
if (deviceClass.createMethod() != DeviceClass::CreateMethodDiscovery) {
|
||||||
|
return DeviceErrorCreationMethodNotSupported;
|
||||||
|
}
|
||||||
|
|
||||||
|
DeviceDescriptor descriptor = m_discoveredDevices.take(deviceClassId).take(deviceDescriptorId);
|
||||||
|
if (!descriptor.isValid()) {
|
||||||
|
return DeviceErrorDeviceDescriptorNotFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
return addConfiguredDeviceInternal(deviceClassId, descriptor.params());
|
||||||
|
}
|
||||||
|
|
||||||
DeviceManager::DeviceError DeviceManager::addConfiguredDeviceInternal(const DeviceClassId &deviceClassId, const QVariantMap ¶ms, const DeviceId id)
|
DeviceManager::DeviceError DeviceManager::addConfiguredDeviceInternal(const DeviceClassId &deviceClassId, const QVariantMap ¶ms, const DeviceId id)
|
||||||
{
|
{
|
||||||
DeviceClass deviceClass = findDeviceClass(deviceClassId);
|
DeviceClass deviceClass = findDeviceClass(deviceClassId);
|
||||||
@ -435,7 +453,11 @@ void DeviceManager::createNewAutoDevices()
|
|||||||
|
|
||||||
void DeviceManager::slotDevicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> deviceDescriptors)
|
void DeviceManager::slotDevicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> deviceDescriptors)
|
||||||
{
|
{
|
||||||
m_discoveredDevices[deviceClassId] = deviceDescriptors;
|
QHash<DeviceDescriptorId, DeviceDescriptor> descriptorHash;
|
||||||
|
foreach (const DeviceDescriptor &descriptor, deviceDescriptors) {
|
||||||
|
descriptorHash.insert(descriptor.id(), descriptor);
|
||||||
|
}
|
||||||
|
m_discoveredDevices[deviceClassId] = descriptorHash;
|
||||||
emit devicesDiscovered(deviceClassId, deviceDescriptors);
|
emit devicesDiscovered(deviceClassId, deviceDescriptors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,7 +57,8 @@ public:
|
|||||||
DeviceErrorDuplicateUuid,
|
DeviceErrorDuplicateUuid,
|
||||||
DeviceErrorCreationMethodNotSupported,
|
DeviceErrorCreationMethodNotSupported,
|
||||||
DeviceErrorDeviceParameterError,
|
DeviceErrorDeviceParameterError,
|
||||||
DeviceErrorActionParameterError
|
DeviceErrorActionParameterError,
|
||||||
|
DeviceErrorDeviceDescriptorNotFound
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit DeviceManager(QObject *parent = 0);
|
explicit DeviceManager(QObject *parent = 0);
|
||||||
@ -72,6 +73,7 @@ public:
|
|||||||
|
|
||||||
QList<Device*> configuredDevices() const;
|
QList<Device*> configuredDevices() const;
|
||||||
DeviceError addConfiguredDevice(const DeviceClassId &deviceClassId, const QVariantMap ¶ms, const DeviceId id = DeviceId::createDeviceId());
|
DeviceError addConfiguredDevice(const DeviceClassId &deviceClassId, const QVariantMap ¶ms, const DeviceId id = DeviceId::createDeviceId());
|
||||||
|
DeviceError addConfiguredDevice(const DeviceClassId &deviceClassId, const DeviceDescriptorId &deviceDescriptorId);
|
||||||
DeviceError removeConfiguredDevice(const DeviceId &deviceId);
|
DeviceError removeConfiguredDevice(const DeviceId &deviceId);
|
||||||
|
|
||||||
Device* findConfiguredDevice(const DeviceId &id) const;
|
Device* findConfiguredDevice(const DeviceId &id) const;
|
||||||
@ -108,7 +110,7 @@ private:
|
|||||||
QHash<VendorId, QList<DeviceClassId> > m_vendorDeviceMap;
|
QHash<VendorId, QList<DeviceClassId> > m_vendorDeviceMap;
|
||||||
QHash<DeviceClassId, DeviceClass> m_supportedDevices;
|
QHash<DeviceClassId, DeviceClass> m_supportedDevices;
|
||||||
QList<Device*> m_configuredDevices;
|
QList<Device*> m_configuredDevices;
|
||||||
QHash<DeviceClassId, QList<DeviceDescriptor> > m_discoveredDevices;
|
QHash<DeviceClassId, QHash<DeviceDescriptorId, DeviceDescriptor> > m_discoveredDevices;
|
||||||
|
|
||||||
QHash<PluginId, DevicePlugin*> m_devicePlugins;
|
QHash<PluginId, DevicePlugin*> m_devicePlugins;
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,10 @@
|
|||||||
#include "devicedescriptor.h"
|
#include "devicedescriptor.h"
|
||||||
|
|
||||||
|
DeviceDescriptor::DeviceDescriptor()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
DeviceDescriptor::DeviceDescriptor(const DeviceDescriptorId &id, const DeviceClassId &deviceClassId, const QString &title, const QString &description) :
|
DeviceDescriptor::DeviceDescriptor(const DeviceDescriptorId &id, const DeviceClassId &deviceClassId, const QString &title, const QString &description) :
|
||||||
m_id(id),
|
m_id(id),
|
||||||
m_deviceClassId(deviceClassId),
|
m_deviceClassId(deviceClassId),
|
||||||
@ -8,6 +13,11 @@ DeviceDescriptor::DeviceDescriptor(const DeviceDescriptorId &id, const DeviceCla
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool DeviceDescriptor::isValid() const
|
||||||
|
{
|
||||||
|
return !m_id.isNull() && !m_deviceClassId.isNull();
|
||||||
|
}
|
||||||
|
|
||||||
DeviceDescriptorId DeviceDescriptor::id() const
|
DeviceDescriptorId DeviceDescriptor::id() const
|
||||||
{
|
{
|
||||||
return m_id;
|
return m_id;
|
||||||
|
|||||||
@ -8,8 +8,11 @@
|
|||||||
class DeviceDescriptor
|
class DeviceDescriptor
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
DeviceDescriptor();
|
||||||
DeviceDescriptor(const DeviceDescriptorId &id, const DeviceClassId &deviceClassId, const QString &title = QString(), const QString &description = QString());
|
DeviceDescriptor(const DeviceDescriptorId &id, const DeviceClassId &deviceClassId, const QString &title = QString(), const QString &description = QString());
|
||||||
|
|
||||||
|
bool isValid() const;
|
||||||
|
|
||||||
DeviceDescriptorId id() const;
|
DeviceDescriptorId id() const;
|
||||||
DeviceClassId deviceClassId() const;
|
DeviceClassId deviceClassId() const;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user