Save and restore sassy scope state

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2022-05-18 18:40:05 +01:00
parent 8d68d6e10c
commit fc1fb75123
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0

View file

@ -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