| 154 | |
| 155 | |
| 156 | void Module::fromJson(json_t* rootJ) { |
| 157 | plugin::Model* model = plugin::modelFromJson(rootJ); |
| 158 | assert(model); |
| 159 | if (model != this->model) |
| 160 | throw Exception("Model %s %s does not match Module's model %s %s.", model->plugin->slug.c_str(), model->slug.c_str(), this->model->plugin->slug.c_str(), this->model->slug.c_str()); |
| 161 | |
| 162 | // Check plugin version |
| 163 | json_t* versionJ = json_object_get(rootJ, "version"); |
| 164 | if (versionJ) { |
| 165 | std::string version = json_string_value(versionJ); |
| 166 | if (version != this->model->plugin->version) { |
| 167 | INFO("Patch created with %s %s, currently using version %s.", this->model->plugin->slug.c_str(), version.c_str(), this->model->plugin->version.c_str()); |
| 168 | } |
| 169 | } |
| 170 | |
| 171 | // id |
| 172 | // Only set ID if unset |
| 173 | if (id < 0) { |
| 174 | json_t* idJ = json_object_get(rootJ, "id"); |
| 175 | if (idJ) |
| 176 | id = json_integer_value(idJ); |
| 177 | } |
| 178 | |
| 179 | // params |
| 180 | json_t* paramsJ = json_object_get(rootJ, "params"); |
| 181 | if (paramsJ) |
| 182 | paramsFromJson(paramsJ); |
| 183 | |
| 184 | // bypass |
| 185 | json_t* bypassJ = json_object_get(rootJ, "bypass"); |
| 186 | // legacy "disabled" in v1 |
| 187 | if (!bypassJ) |
| 188 | bypassJ = json_object_get(rootJ, "disabled"); |
| 189 | if (bypassJ) |
| 190 | internal->bypassed = json_boolean_value(bypassJ); |
| 191 | |
| 192 | // leftModuleId |
| 193 | json_t *leftModuleIdJ = json_object_get(rootJ, "leftModuleId"); |
| 194 | if (leftModuleIdJ) |
| 195 | leftExpander.moduleId = json_integer_value(leftModuleIdJ); |
| 196 | |
| 197 | // rightModuleId |
| 198 | json_t *rightModuleIdJ = json_object_get(rootJ, "rightModuleId"); |
| 199 | if (rightModuleIdJ) |
| 200 | rightExpander.moduleId = json_integer_value(rightModuleIdJ); |
| 201 | |
| 202 | // data |
| 203 | json_t* dataJ = json_object_get(rootJ, "data"); |
| 204 | if (dataJ) |
| 205 | dataFromJson(dataJ); |
| 206 | } |
| 207 | |
| 208 | |
| 209 | json_t* Module::paramsToJson() { |
nothing calls this directly
no test coverage detected