Browse Source

Rename Module::to/fromJson to dataTo/dataFromJson, move ModuleWidget::to/fromJson functionality to new Module::to/fromJson

tags/v1.0.0
Andrew Belt 6 years ago
parent
commit
73a53f4536
9 changed files with 71 additions and 48 deletions
  1. +1
    -0
      include/app/ModuleWidget.hpp
  2. +5
    -2
      include/engine.hpp
  3. +2
    -2
      src/Core/AudioInterface.cpp
  4. +2
    -2
      src/Core/MIDICCToCVInterface.cpp
  5. +2
    -2
      src/Core/MIDIToCVInterface.cpp
  6. +2
    -2
      src/Core/MIDITriggerToCVInterface.cpp
  7. +2
    -2
      src/Core/QuadMIDIToCVInterface.cpp
  8. +8
    -36
      src/app/ModuleWidget.cpp
  9. +47
    -0
      src/engine.cpp

+ 1
- 0
include/app/ModuleWidget.hpp View File

@@ -36,6 +36,7 @@ struct ModuleWidget : OpaqueWidget {

virtual json_t *toJson();
virtual void fromJson(json_t *rootJ);

void copyClipboard();
void pasteClipboard();
void save(std::string filename);


+ 5
- 2
include/engine.hpp View File

@@ -115,9 +115,12 @@ struct Module {
randomize();
}

json_t *toJson();
void fromJson(json_t *rootJ);

/** Override these to store extra internal data in the "data" property of the module's JSON object */
virtual json_t *toJson() { return NULL; }
virtual void fromJson(json_t *root) {}
virtual json_t *dataToJson() { return NULL; }
virtual void dataFromJson(json_t *root) {}

/** Deprecated */
virtual void reset() {}


+ 2
- 2
src/Core/AudioInterface.cpp View File

@@ -125,13 +125,13 @@ struct AudioInterface : Module {

void step() override;

json_t *toJson() override {
json_t *dataToJson() override {
json_t *rootJ = json_object();
json_object_set_new(rootJ, "audio", audioIO.toJson());
return rootJ;
}

void fromJson(json_t *rootJ) override {
void dataFromJson(json_t *rootJ) override {
json_t *audioJ = json_object_get(rootJ, "audio");
audioIO.fromJson(audioJ);
}


+ 2
- 2
src/Core/MIDICCToCVInterface.cpp View File

@@ -74,7 +74,7 @@ struct MIDICCToCVInterface : Module {
}
}

json_t *toJson() override {
json_t *dataToJson() override {
json_t *rootJ = json_object();

json_t *ccsJ = json_array();
@@ -88,7 +88,7 @@ struct MIDICCToCVInterface : Module {
return rootJ;
}

void fromJson(json_t *rootJ) override {
void dataFromJson(json_t *rootJ) override {
json_t *ccsJ = json_object_get(rootJ, "ccs");
if (ccsJ) {
for (int i = 0; i < 16; i++) {


+ 2
- 2
src/Core/MIDIToCVInterface.cpp View File

@@ -61,7 +61,7 @@ struct MIDIToCVInterface : Module {
onReset();
}

json_t *toJson() override {
json_t *dataToJson() override {
json_t *rootJ = json_object();

json_t *divisionsJ = json_array();
@@ -75,7 +75,7 @@ struct MIDIToCVInterface : Module {
return rootJ;
}

void fromJson(json_t *rootJ) override {
void dataFromJson(json_t *rootJ) override {
json_t *divisionsJ = json_object_get(rootJ, "divisions");
if (divisionsJ) {
for (int i = 0; i < 2; i++) {


+ 2
- 2
src/Core/MIDITriggerToCVInterface.cpp View File

@@ -107,7 +107,7 @@ struct MIDITriggerToCVInterface : Module {
}
}

json_t *toJson() override {
json_t *dataToJson() override {
json_t *rootJ = json_object();

json_t *notesJ = json_array();
@@ -122,7 +122,7 @@ struct MIDITriggerToCVInterface : Module {
return rootJ;
}

void fromJson(json_t *rootJ) override {
void dataFromJson(json_t *rootJ) override {
json_t *notesJ = json_object_get(rootJ, "notes");
if (notesJ) {
for (int i = 0; i < 16; i++) {


+ 2
- 2
src/Core/QuadMIDIToCVInterface.cpp View File

@@ -55,14 +55,14 @@ struct QuadMIDIToCVInterface : Module {
onReset();
}

json_t *toJson() override {
json_t *dataToJson() override {
json_t *rootJ = json_object();
json_object_set_new(rootJ, "midi", midiInput.toJson());
json_object_set_new(rootJ, "polyMode", json_integer(polyMode));
return rootJ;
}

void fromJson(json_t *rootJ) override {
void dataFromJson(json_t *rootJ) override {
json_t *midiJ = json_object_get(rootJ, "midi");
if (midiJ)
midiInput.fromJson(midiJ);


+ 8
- 36
src/app/ModuleWidget.cpp View File

@@ -66,23 +66,14 @@ json_t *ModuleWidget::toJson() {
json_object_set_new(rootJ, "version", json_string(model->plugin->version.c_str()));
// model
json_object_set_new(rootJ, "model", json_string(model->slug.c_str()));
// params
if (module) {
json_t *paramsJ = json_array();
for (Param &param : module->params) {
json_t *paramJ = param.toJson();
json_array_append_new(paramsJ, paramJ);
}
json_object_set_new(rootJ, "params", paramsJ);
}
// data

// Other properties
if (module) {
json_t *dataJ = module->toJson();
if (dataJ) {
json_object_set_new(rootJ, "data", dataJ);
}
json_t *moduleJ = module->toJson();
// Merge with rootJ
json_object_update(rootJ, moduleJ);
json_decref(moduleJ);
}

return rootJ;
}

@@ -117,27 +108,8 @@ void ModuleWidget::fromJson(json_t *rootJ) {
}
}

// params
json_t *paramsJ = json_object_get(rootJ, "params");
size_t i;
json_t *paramJ;
json_array_foreach(paramsJ, i, paramJ) {
uint32_t paramId = i;
// Get paramId
json_t *paramIdJ = json_object_get(paramJ, "paramId");
if (paramIdJ) {
// Legacy v0.6.0 to <v1.0
paramId = json_integer_value(paramIdJ);
}
if (paramId < module->params.size()) {
module->params[paramId].fromJson(paramJ);
}
}

// data
json_t *dataJ = json_object_get(rootJ, "data");
if (dataJ && module) {
module->fromJson(dataJ);
if (module) {
module->fromJson(rootJ);
}
}



+ 47
- 0
src/engine.cpp View File

@@ -105,6 +105,53 @@ void Light::setBrightnessSmooth(float brightness, float frames) {
}


json_t *Module::toJson() {
json_t *rootJ = json_object();

// params
json_t *paramsJ = json_array();
for (Param &param : params) {
json_t *paramJ = param.toJson();
json_array_append_new(paramsJ, paramJ);
}
json_object_set_new(rootJ, "params", paramsJ);

// data
json_t *dataJ = dataToJson();
if (dataJ) {
json_object_set_new(rootJ, "data", dataJ);
}

return rootJ;
}

void Module::fromJson(json_t *rootJ) {
// params
json_t *paramsJ = json_object_get(rootJ, "params");
size_t i;
json_t *paramJ;
json_array_foreach(paramsJ, i, paramJ) {
uint32_t paramId = i;
// Get paramId
json_t *paramIdJ = json_object_get(paramJ, "paramId");
if (paramIdJ) {
// Legacy v0.6.0 to <v1.0
paramId = json_integer_value(paramIdJ);
}

if (paramId < params.size()) {
params[paramId].fromJson(paramJ);
}
}

// data
json_t *dataJ = json_object_get(rootJ, "data");
if (dataJ) {
dataFromJson(dataJ);
}
}


void Wire::step() {
float value = outputModule->outputs[outputId].value;
inputModule->inputs[inputId].value = value;


Loading…
Cancel
Save