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); m_configuredDevices.append(device);
storeConfiguredDevices(); storeConfiguredDevices();
postSetupDevice(device); postSetupDevice(device);
emit deviceAdded(device);
return DeviceErrorNoError; return DeviceErrorNoError;
} }
@ -502,6 +505,8 @@ DeviceManager::DeviceError DeviceManager::removeConfiguredDevice(const DeviceId
settings.remove(""); settings.remove("");
settings.endGroup(); settings.endGroup();
emit deviceRemoved(deviceId);
return DeviceErrorNoError; return DeviceErrorNoError;
} }

View File

@ -108,6 +108,8 @@ signals:
void loaded(); void loaded();
void eventTriggered(const Event &event); void eventTriggered(const Event &event);
void deviceStateChanged(Device *device, const QUuid &stateTypeId, const QVariant &value); 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 devicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> &devices);
void deviceSetupFinished(Device *device, DeviceError status); void deviceSetupFinished(Device *device, DeviceError status);
void pairingFinished(const PairingTransactionId &pairingTransactionId, DeviceError status, const DeviceId &deviceId = DeviceId()); 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::eventTriggered, this, &GuhCore::gotEvent);
connect(m_deviceManager, &DeviceManager::deviceStateChanged, this, &GuhCore::deviceStateChanged); 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::actionExecutionFinished, this, &GuhCore::actionExecutionFinished);
connect(m_deviceManager, &DeviceManager::devicesDiscovered, this, &GuhCore::devicesDiscovered); connect(m_deviceManager, &DeviceManager::devicesDiscovered, this, &GuhCore::devicesDiscovered);

View File

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

View File

@ -208,7 +208,19 @@ DeviceHandler::DeviceHandler(QObject *parent) :
params.insert("value", JsonTypes::basicTypeToString(JsonTypes::Variant)); params.insert("value", JsonTypes::basicTypeToString(JsonTypes::Variant));
setParams("StateChanged", params); 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::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::devicesDiscovered, this, &DeviceHandler::devicesDiscovered, Qt::QueuedConnection);
connect(GuhCore::instance(), &GuhCore::deviceSetupFinished, this, &DeviceHandler::deviceSetupFinished); connect(GuhCore::instance(), &GuhCore::deviceSetupFinished, this, &DeviceHandler::deviceSetupFinished);
connect(GuhCore::instance(), &GuhCore::pairingFinished, this, &DeviceHandler::pairingFinished); connect(GuhCore::instance(), &GuhCore::pairingFinished, this, &DeviceHandler::pairingFinished);
@ -514,6 +526,22 @@ void DeviceHandler::deviceStateChanged(Device *device, const QUuid &stateTypeId,
emit StateChanged(params); 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) void DeviceHandler::devicesDiscovered(const DeviceClassId &deviceClassId, const QList<DeviceDescriptor> deviceDescriptors)
{ {
if (!m_discoverRequests.contains(deviceClassId)) { if (!m_discoverRequests.contains(deviceClassId)) {

View File

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