diff --git a/libhive/deviceclass.cpp b/libhive/deviceclass.cpp index 8e49911f..7c41ab42 100644 --- a/libhive/deviceclass.cpp +++ b/libhive/deviceclass.cpp @@ -42,6 +42,16 @@ void DeviceClass::setTriggers(const QList &triggers) m_triggers = triggers; } +QList DeviceClass::actions() const +{ + return m_actions; +} + +void DeviceClass::setActions(const QList &actions) +{ + m_actions = actions; +} + QVariantList DeviceClass::params() const { return m_params; diff --git a/libhive/deviceclass.h b/libhive/deviceclass.h index f5a9eda2..3e1b5632 100644 --- a/libhive/deviceclass.h +++ b/libhive/deviceclass.h @@ -2,6 +2,7 @@ #define DEVICECLASS_H #include "triggertype.h" +#include "actiontype.h" #include #include @@ -21,6 +22,9 @@ public: QList triggers() const; void setTriggers(const QList &triggers); + QList actions() const; + void setActions(const QList &actions); + QVariantList params() const; void setParams(const QVariantList ¶ms); @@ -31,6 +35,7 @@ private: QUuid m_pluginId; QString m_name; QList m_triggers; + QList m_actions; QVariantList m_params; }; diff --git a/server/jsonrpcserver.cpp b/server/jsonrpcserver.cpp index c747423e..86e8e682 100644 --- a/server/jsonrpcserver.cpp +++ b/server/jsonrpcserver.cpp @@ -139,8 +139,18 @@ QVariantMap JsonRPCServer::packDeviceClass(const DeviceClass &deviceClass) triggerTypes.append(triggerMap); } + QVariantList actionTypes; + foreach (const ActionType &actionType, deviceClass.actions()) { + QVariantMap actionMap; + actionMap.insert("id", actionType.id().toString()); + actionMap.insert("name", actionType.name()); + actionMap.insert("params", actionType.parameters()); + + actionTypes.append(actionMap); + } variant.insert("params", deviceClass.params()); variant.insert("triggers", triggerTypes); + variant.insert("actions", actionTypes); return variant; }