| @@ -55,6 +55,21 @@ struct Frames : Module { | |||||
| json_t *toJson() { | json_t *toJson() { | ||||
| json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
| json_object_set_new(rootJ, "polyLfo", json_boolean(poly_lfo_mode)); | json_object_set_new(rootJ, "polyLfo", json_boolean(poly_lfo_mode)); | ||||
| json_t *keyframesJ = json_array(); | |||||
| for (int i = 0; i < keyframer.num_keyframes(); i++) { | |||||
| json_t *keyframeJ = json_array(); | |||||
| frames::Keyframe *keyframe = keyframer.mutable_keyframe(i); | |||||
| json_array_append_new(keyframeJ, json_integer(keyframe->timestamp)); | |||||
| for (int k = 0; k < 4; k++) { | |||||
| json_array_append_new(keyframeJ, json_integer(keyframe->values[k])); | |||||
| } | |||||
| json_array_append_new(keyframesJ, keyframeJ); | |||||
| } | |||||
| json_object_set_new(rootJ, "keyframes", keyframesJ); | |||||
| // TODO Channel settings | |||||
| return rootJ; | return rootJ; | ||||
| } | } | ||||
| @@ -62,6 +77,31 @@ struct Frames : Module { | |||||
| json_t *polyLfoJ = json_object_get(rootJ, "polyLfo"); | json_t *polyLfoJ = json_object_get(rootJ, "polyLfo"); | ||||
| if (polyLfoJ) | if (polyLfoJ) | ||||
| poly_lfo_mode = json_boolean_value(polyLfoJ); | poly_lfo_mode = json_boolean_value(polyLfoJ); | ||||
| json_t *keyframesJ = json_object_get(rootJ, "keyframes"); | |||||
| if (keyframesJ) { | |||||
| json_t *keyframeJ; | |||||
| size_t i; | |||||
| json_array_foreach(keyframesJ, i, keyframeJ) { | |||||
| uint16_t timestamp = json_integer_value(json_array_get(keyframeJ, 0)); | |||||
| uint16_t values[4]; | |||||
| for (int k = 0; k < 4; k++) { | |||||
| values[k] = json_integer_value(json_array_get(keyframeJ, k + 1)); | |||||
| } | |||||
| keyframer.AddKeyframe(timestamp, values); | |||||
| } | |||||
| } | |||||
| // TODO Channel settings | |||||
| } | |||||
| void initialize() { | |||||
| poly_lfo_mode = false; | |||||
| keyframer.Clear(); | |||||
| } | |||||
| void randomize() { | |||||
| // TODO | |||||
| // Maybe something useful should go in here?? | |||||
| } | } | ||||
| }; | }; | ||||