diff --git a/include/settings.hpp b/include/settings.hpp index 36059752..1f5c89ab 100644 --- a/include/settings.hpp +++ b/include/settings.hpp @@ -29,6 +29,7 @@ extern float cableOpacity; extern float cableTension; extern bool allowCursorLock; extern bool realTime; +extern bool keepPreviews; extern float sampleRate; extern int threadCount; extern bool paramTooltip; diff --git a/src/app/ModuleBrowser.cpp b/src/app/ModuleBrowser.cpp index d729f2b8..dd4d6938 100644 --- a/src/app/ModuleBrowser.cpp +++ b/src/app/ModuleBrowser.cpp @@ -192,7 +192,7 @@ struct ModelBox : widget::OpaqueWidget { } void step() override { - if (previewFb && ++visibleFrames >= 60) { + if (!settings::keepPreviews && previewFb && ++visibleFrames >= 60) { deletePreview(); } OpaqueWidget::step(); diff --git a/src/settings.cpp b/src/settings.cpp index 409368ae..35295716 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -24,6 +24,7 @@ float cableOpacity = 0.5; float cableTension = 0.5; bool allowCursorLock = true; bool realTime = false; +bool keepPreviews = true; float sampleRate = 44100.0; int threadCount = 1; bool paramTooltip = false; @@ -65,6 +66,8 @@ json_t *toJson() { json_object_set_new(rootJ, "realTime", json_boolean(realTime)); + json_object_set_new(rootJ, "keepPreviews", json_boolean(keepPreviews)); + json_object_set_new(rootJ, "sampleRate", json_real(sampleRate)); json_object_set_new(rootJ, "threadCount", json_integer(threadCount)); @@ -140,6 +143,10 @@ void fromJson(json_t *rootJ) { if (realTimeJ) realTime = json_boolean_value(realTimeJ); + json_t *keepPreviewsJ = json_object_get(rootJ, "keepPreviews"); + if (keepPreviewsJ) + keepPreviews = json_boolean_value(keepPreviewsJ); + json_t *sampleRateJ = json_object_get(rootJ, "sampleRate"); if (sampleRateJ) sampleRate = json_number_value(sampleRateJ);