MCPcopy Create free account
hub / github.com/VCVRack/Rack / fromJson

Method fromJson

src/engine/Module.cpp:156–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154
155
156void 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
209json_t* Module::paramsToJson() {

Callers

nothing calls this directly

Calls 2

modelFromJsonFunction · 0.85
ExceptionClass · 0.85

Tested by

no test coverage detected