added device added/removed notification

This commit is contained in:
Simon Stürz 2015-05-01 22:19:08 +02:00 committed by Michael Zanetti
parent 9298993fbe
commit bb03280583
6 changed files with 46 additions and 0 deletions

View File

@ -473,6 +473,9 @@ DeviceManager::DeviceError DeviceManager::addConfiguredDeviceInternal(const Devi
m_configuredDevices.append(device);
storeConfiguredDevices();
postSetupDevice(device);
emit deviceAdded(device);
return DeviceErrorNoError;
}
@ -502,6 +505,8 @@ DeviceManager::DeviceError DeviceManager::removeConfiguredDevice(const DeviceId
settings.remove("");
settings.endGroup();
emit deviceRemoved(deviceId);
return DeviceErrorNoError;
}

View File

@ -108,6 +108,8 @@ signals:
void loaded();
void eventTriggered(const Event &event);
void deviceStateChanged(Device *device, const QUuid &stateTypeId, const QVariant &value);
void deviceRemoved(const DeviceId &deviceId);
void deviceAdded(Device *device);
void devicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> &devices);
void deviceSetupFinished(Device *device, DeviceError status);
void pairingFinished(const PairingTransactionId &pairingTransactionId, DeviceError status, const DeviceId &deviceId = DeviceId());

View File

@ -355,6 +355,8 @@ GuhCore::GuhCore(QObject *parent) :
connect(m_deviceManager, &DeviceManager::eventTriggered, this, &GuhCore::gotEvent);
connect(m_deviceManager, &DeviceManager::deviceStateChanged, this, &GuhCore::deviceStateChanged);
connect(m_deviceManager, &DeviceManager::deviceAdded, this, &GuhCore::deviceAdded);
connect(m_deviceManager, &DeviceManager::deviceRemoved, this, &GuhCore::deviceRemoved);
connect(m_deviceManager, &DeviceManager::actionExecutionFinished, this, &GuhCore::actionExecutionFinished);
connect(m_deviceManager, &DeviceManager::devicesDiscovered, this, &GuhCore::devicesDiscovered);

View File

@ -87,6 +87,9 @@ signals:
void eventTriggered(const Event &event);
void deviceStateChanged(Device *device, const QUuid &stateTypeId, const QVariant &value);
void actionExecuted(const ActionId &id, DeviceManager::DeviceError status);
void deviceRemoved(const DeviceId &deviceId);
void deviceAdded(Device *device);
void devicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> deviceDescriptors);
void deviceSetupFinished(Device *device, DeviceManager::DeviceError status);

View File

@ -208,7 +208,19 @@ DeviceHandler::DeviceHandler(QObject *parent) :
params.insert("value", JsonTypes::basicTypeToString(JsonTypes::Variant));
setParams("StateChanged", params);
params.clear(); returns.clear();
setDescription("DeviceRemoved", "Emitted whenever a Device was removed.");
params.insert("deviceId", JsonTypes::basicTypeToString(JsonTypes::Uuid));
setParams("DeviceRemoved", params);
params.clear(); returns.clear();
setDescription("DeviceAdded", "Emitted whenever a Device was added.");
params.insert("device", JsonTypes::deviceRef());
setParams("DeviceAdded", params);
connect(GuhCore::instance(), &GuhCore::deviceStateChanged, this, &DeviceHandler::deviceStateChanged);
connect(GuhCore::instance(), &GuhCore::deviceRemoved, this, &DeviceHandler::deviceRemovedNotification);
connect(GuhCore::instance(), &GuhCore::deviceAdded, this, &DeviceHandler::deviceAddedNotification);
connect(GuhCore::instance(), &GuhCore::devicesDiscovered, this, &DeviceHandler::devicesDiscovered, Qt::QueuedConnection);
connect(GuhCore::instance(), &GuhCore::deviceSetupFinished, this, &DeviceHandler::deviceSetupFinished);
connect(GuhCore::instance(), &GuhCore::pairingFinished, this, &DeviceHandler::pairingFinished);
@ -514,6 +526,22 @@ void DeviceHandler::deviceStateChanged(Device *device, const QUuid &stateTypeId,
emit StateChanged(params);
}
void DeviceHandler::deviceRemovedNotification(const QUuid &deviceId)
{
QVariantMap params;
params.insert("deviceId", deviceId);
emit DeviceRemoved(params);
}
void DeviceHandler::deviceAddedNotification(Device *device)
{
QVariantMap params;
params.insert("device", JsonTypes::packDevice(device));
emit DeviceAdded(params);
}
void DeviceHandler::devicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> deviceDescriptors)
{
if (!m_discoverRequests.contains(deviceClassId)) {

View File

@ -64,10 +64,16 @@ public:
signals:
void StateChanged(const QVariantMap &params);
void DeviceRemoved(const QVariantMap &params);
void DeviceAdded(const QVariantMap &params);
private slots:
void deviceStateChanged(Device *device, const QUuid &stateTypeId, const QVariant &value);
void deviceRemovedNotification(const QUuid &deviceId);
void deviceAddedNotification(Device *device);
void devicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> deviceDescriptors);
void deviceSetupFinished(Device *device, DeviceManager::DeviceError status);