diff --git a/plugins/Cardinal/src/SassyScope.cpp b/plugins/Cardinal/src/SassyScope.cpp index 31dde15..4225a1f 100644 --- a/plugins/Cardinal/src/SassyScope.cpp +++ b/plugins/Cardinal/src/SassyScope.cpp @@ -94,6 +94,130 @@ struct SassyScopeModule : Module { { scope.realloc(e.sampleRate); } + + json_t* dataToJson() override + { + json_t* const rootJ = json_object(); + DISTRHO_SAFE_ASSERT_RETURN(rootJ != nullptr, nullptr); + + json_object_set_new(rootJ, "mTimeScale", json_real(scope.mTimeScale)); + json_object_set_new(rootJ, "mTimeScaleSlider", json_integer(scope.mTimeScaleSlider)); + json_object_set_new(rootJ, "mSyncMode", json_integer(scope.mSyncMode)); + json_object_set_new(rootJ, "mSyncChannel", json_integer(scope.mSyncChannel)); + json_object_set_new(rootJ, "mMode", json_integer(scope.mMode)); + json_object_set_new(rootJ, "mDisplay", json_integer(scope.mDisplay)); + json_object_set_new(rootJ, "mFFTZoom", json_integer(scope.mFFTZoom)); + json_object_set_new(rootJ, "mPot", json_integer(scope.mPot)); + json_object_set_new(rootJ, "fft.average", json_integer(scope.fft.average)); + + json_object_set_new(rootJ, "mCh0.mEnabled", json_boolean(scope.mCh[0].mEnabled)); + json_object_set_new(rootJ, "mCh0.mScale", json_real(scope.mCh[0].mScale)); + json_object_set_new(rootJ, "mCh0.mScaleSlider", json_integer(scope.mCh[0].mScaleSlider)); + json_object_set_new(rootJ, "mCh0.mOffset", json_integer(scope.mCh[0].mOffset)); + + json_object_set_new(rootJ, "mCh1.mEnabled", json_boolean(scope.mCh[1].mEnabled)); + json_object_set_new(rootJ, "mCh1.mScale", json_real(scope.mCh[1].mScale)); + json_object_set_new(rootJ, "mCh1.mScaleSlider", json_integer(scope.mCh[1].mScaleSlider)); + json_object_set_new(rootJ, "mCh1.mOffset", json_integer(scope.mCh[1].mOffset)); + + json_object_set_new(rootJ, "mCh2.mEnabled", json_boolean(scope.mCh[2].mEnabled)); + json_object_set_new(rootJ, "mCh2.mScale", json_real(scope.mCh[2].mScale)); + json_object_set_new(rootJ, "mCh2.mScaleSlider", json_integer(scope.mCh[2].mScaleSlider)); + json_object_set_new(rootJ, "mCh2.mOffset", json_integer(scope.mCh[2].mOffset)); + + json_object_set_new(rootJ, "mCh3.mEnabled", json_boolean(scope.mCh[3].mEnabled)); + json_object_set_new(rootJ, "mCh3.mScale", json_real(scope.mCh[3].mScale)); + json_object_set_new(rootJ, "mCh3.mScaleSlider", json_integer(scope.mCh[3].mScaleSlider)); + json_object_set_new(rootJ, "mCh3.mOffset", json_integer(scope.mCh[3].mOffset)); + + return rootJ; + } + + void dataFromJson(json_t* const rootJ) override + { + if (json_t* const mTimeScaleJ = json_object_get(rootJ, "mTimeScale")) + scope.mTimeScale = json_real_value(mTimeScaleJ); + + if (json_t* const mTimeScaleSliderJ = json_object_get(rootJ, "mTimeScaleSlider")) + scope.mTimeScaleSlider = json_integer_value(mTimeScaleSliderJ); + + if (json_t* const mSyncModeJ = json_object_get(rootJ, "mSyncMode")) + scope.mSyncMode = json_integer_value(mSyncModeJ); + + if (json_t* const mSyncChannelJ = json_object_get(rootJ, "mSyncChannel")) + scope.mSyncChannel = json_integer_value(mSyncChannelJ); + + if (json_t* const mModeJ = json_object_get(rootJ, "mMode")) + scope.mMode = json_integer_value(mModeJ); + + if (json_t* const mDisplayJ = json_object_get(rootJ, "mDisplay")) + scope.mDisplay = json_integer_value(mDisplayJ); + + if (json_t* const mFFTZoomJ = json_object_get(rootJ, "mFFTZoom")) + scope.mFFTZoom = json_integer_value(mFFTZoomJ); + + if (json_t* const mPotJ = json_object_get(rootJ, "mPot")) + scope.mPot = json_integer_value(mPotJ); + + if (json_t* const fftAverageJ = json_object_get(rootJ, "fft.average")) + scope.fft.average = json_integer_value(fftAverageJ); + + { + if (json_t* const mCh0mEnabledJ = json_object_get(rootJ, "mCh0.mEnabled")) + scope.mCh[0].mEnabled = json_boolean_value(mCh0mEnabledJ); + + if (json_t* const mCh0mScaleJ = json_object_get(rootJ, "mCh0.mScale")) + scope.mCh[0].mScale = json_real_value(mCh0mScaleJ); + + if (json_t* const mCh0mScaleSliderJ = json_object_get(rootJ, "mCh0.mScaleSlider")) + scope.mCh[0].mScaleSlider = json_integer_value(mCh0mScaleSliderJ); + + if (json_t* const mCh0mOffsetJ = json_object_get(rootJ, "mCh0.mOffset")) + scope.mCh[0].mOffset = json_integer_value(mCh0mOffsetJ); + } + + { + if (json_t* const mCh1mEnabledJ = json_object_get(rootJ, "mCh1.mEnabled")) + scope.mCh[1].mEnabled = json_boolean_value(mCh1mEnabledJ); + + if (json_t* const mCh1mScaleJ = json_object_get(rootJ, "mCh1.mScale")) + scope.mCh[1].mScale = json_real_value(mCh1mScaleJ); + + if (json_t* const mCh1mScaleSliderJ = json_object_get(rootJ, "mCh1.mScaleSlider")) + scope.mCh[1].mScaleSlider = json_integer_value(mCh1mScaleSliderJ); + + if (json_t* const mCh1mOffsetJ = json_object_get(rootJ, "mCh1.mOffset")) + scope.mCh[1].mOffset = json_integer_value(mCh1mOffsetJ); + } + + { + if (json_t* const mCh2mEnabledJ = json_object_get(rootJ, "mCh2.mEnabled")) + scope.mCh[2].mEnabled = json_boolean_value(mCh2mEnabledJ); + + if (json_t* const mCh2mScaleJ = json_object_get(rootJ, "mCh2.mScale")) + scope.mCh[2].mScale = json_real_value(mCh2mScaleJ); + + if (json_t* const mCh2mScaleSliderJ = json_object_get(rootJ, "mCh2.mScaleSlider")) + scope.mCh[2].mScaleSlider = json_integer_value(mCh2mScaleSliderJ); + + if (json_t* const mCh2mOffsetJ = json_object_get(rootJ, "mCh2.mOffset")) + scope.mCh[2].mOffset = json_integer_value(mCh2mOffsetJ); + } + + { + if (json_t* const mCh3mEnabledJ = json_object_get(rootJ, "mCh3.mEnabled")) + scope.mCh[3].mEnabled = json_boolean_value(mCh3mEnabledJ); + + if (json_t* const mCh3mScaleJ = json_object_get(rootJ, "mCh3.mScale")) + scope.mCh[3].mScale = json_real_value(mCh3mScaleJ); + + if (json_t* const mCh3mScaleSliderJ = json_object_get(rootJ, "mCh3.mScaleSlider")) + scope.mCh[3].mScaleSlider = json_integer_value(mCh3mScaleSliderJ); + + if (json_t* const mCh3mOffsetJ = json_object_get(rootJ, "mCh3.mOffset")) + scope.mCh[3].mOffset = json_integer_value(mCh3mOffsetJ); + } + } }; // used for module browser