JsonReply* DeviceHandler::SetPluginConfiguration(const QVariantMap ¶ms) { QVariantMap returns; PluginId pluginId = PluginId(params.value("pluginId").toString()); ParamList pluginParams = JsonTypes::unpackParams(params.value("configuration").toList()); DeviceManager::DeviceError result = GuhCore::instance()->setPluginConfig(pluginId, pluginParams); returns.insert("deviceError", JsonTypes::deviceErrorToString(result)); return createReply(returns); }
JsonReply *DeviceHandler::GetPluginConfiguration(const QVariantMap ¶ms) const { DevicePlugin *plugin = 0; foreach (DevicePlugin *p, GuhCore::instance()->plugins()) { if (p->pluginId() == PluginId(params.value("pluginId").toString())) { plugin = p; } } QVariantMap returns; if (!plugin) { returns.insert("deviceError", JsonTypes::deviceErrorToString(DeviceManager::DeviceErrorPluginNotFound)); return createReply(returns); } QVariantList paramVariantList; foreach (const Param ¶m, plugin->configuration()) { paramVariantList.append(JsonTypes::packParam(param)); } returns.insert("configuration", paramVariantList); returns.insert("deviceError", JsonTypes::deviceErrorToString(DeviceManager::DeviceErrorNoError)); return createReply(returns); }
/*! Returns the id of this DevicePlugin. * When implementing a plugin, generate a new uuid and return it here. Always return the * same uuid and don't change it or configurations can't be matched any more. */ PluginId DevicePlugin::pluginId() const { return PluginId(m_metaData.value("id").toString()); }