Skip to content

Commit 2d01cdc

Browse files
committed
Simple Preset Manager
1 parent f2e833e commit 2d01cdc

File tree

3 files changed

+78
-14
lines changed

3 files changed

+78
-14
lines changed

Plateau2/Plateau2.cpp

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,14 @@ Plateau2::Plateau2(const InstanceInfo& info)
7878

7979
GetParam(kDanger)->InitBool("DANGER! Allow Unsafe Feedback", false);
8080

81-
MakePreset("Default", 100.000000, false, false, true, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
82-
MakePreset("Bassment", 68.452381, false, false, true, 92.261905, 10.000000, 4.866071, 0.473214, 3.571429, 0.377201, 10.000000, 6.875000, 0.272321, 1.285714, 0.500000, 1.000000, false, false, false, false, 0.000000, false, 76.923070, 0.982143, true, 100.000000, 0.000000, 131.250000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, true, 47.619048, 3.616071, 10.000000, 0.553572, 5.892857, 0.591530, 7.232143, 10.000000, 0.218750, 3.000000, 0.299107, 0.459821, false, false, false, true, 0.039286, true, 36.744499, 0.165179, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
83-
MakePreset("Polish", 100.000000, false, false, true, 29.166666, 10.000000, 8.169643, 0.191964, 6.473214, 0.300870, 10.000000, 7.366071, 0.272321, 1.285714, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923070, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, true, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
84-
MakePreset("Cave", 100.000000, false, false, true, 50.000000, 10.000000, 7.991071, 0.589286, 10.000000, 0.386642, 10.000000, 5.803571, 0.000000, 0.000000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, true, 29.910714, 0.131696, 10.000000, 10.000000, true, 22.619048, 10.000000, 7.767857, 0.584821, 10.000000, 0.466990, 10.000000, 7.053571, 0.245536, 0.714286, 0.500000, 1.000000, false, false, false, true, 0.000000, true, 64.423000, 1.000000, false, 22.321429, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
85-
//MakePreset("Canyon", 0.000000, false, false, true, 100.000000, 10.000000, 8.080357, 0.803571, 10.000000, 0.240609, 10.000000, 10.000000, 0.138393, 0.714286, 0.500000, 0.116071, false, false, false, true, 0.000000, true, 25.583714, 0.000000, false, 100.000000, 0.000000, 200.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.334416, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, true, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 0.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
86-
MakePreset("Canyon", 0.000000, false, true, true, 100.000000, 10.000000, 8.035714, 0.803571, 10.000000, 0.248644, 10.000000, 10.000000, 0.133929, 0.642857, 0.500000, 0.120535, false, true, false, true, 0.000000, true, 60.851571, 0.000000, true, 100.000000, -100.000000, 100.000000, -66.666666, false, 0.000000, 0.000000, 10.000000, 10.000000, true, 100.000000, 10.000000, 8.035714, 0.803571, 10.000000, 0.248644, 10.000000, 10.000000, 0.133929, 0.642857, 0.500000, 0.120535, true, true, false, true, 0.000000, true, 60.851568, 0.000000, true, 100.000000, 100.000000, 100.000000, 66.666663, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
87-
MakePreset("ChorusVerb", 51.190476, false, false, true, 100.000000, 10.000000, 8.080357, 0.803571, 0.000000, 0.284801, 10.000000, 10.000000, 0.138393, 1.857143, 0.500000, 0.116071, false, false, false, false, 0.000000, true, 25.583714, 0.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, true, 100.000000, 0.082589, 7.366071, 10.000000, true, 11.309524, 10.000000, 10.000000, 0.500000, 10.000000, 0.495112, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 23.660714, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
88-
MakePreset("Washout", 100.000000, false, false, true, 32.142857, 10.000000, 10.000000, 0.379464, 10.000000, 0.730733, 8.169643, 7.901786, 0.272321, 1.285714, 0.500000, 1.000000, false, false, false, true, 0.000000, true, 72.905213, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
89-
MakePreset("Totally Tubular", 61.904762, false, false, true, 51.785714, 10.000000, 6.026786, 0.191964, 6.473214, 0.497723, 10.000000, 8.348214, 0.272321, 1.285714, 0.500000, 1.000000, false, false, true, true, 0.000000, false, 76.923070, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, true, 32.589286, 0.049107, 10.000000, 4.285714, true, 32.142857, 6.517857, 8.080357, 0.294643, 10.000000, 0.591530, 7.232143, 10.000000, 0.232143, 1.071429, 0.723214, 1.000000, false, false, false, true, 0.000000, true, 47.458785, 1.000000, false, 100.000000, 0.000000, 58.928571, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
81+
MakePreset("Default", 100.000000, false, false, false, true, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
82+
MakePreset("Bassment", 68.452381, false, false, false, true, 92.261905, 10.000000, 4.866071, 0.473214, 3.571429, 0.377201, 10.000000, 6.875000, 0.272321, 1.285714, 0.500000, 1.000000, false, false, false, false, 0.000000, false, 76.923070, 0.982143, true, 100.000000, 0.000000, 131.250000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, true, 47.619048, 3.616071, 10.000000, 0.553572, 5.892857, 0.591530, 7.232143, 10.000000, 0.218750, 3.000000, 0.299107, 0.459821, false, false, false, true, 0.039286, true, 36.744499, 0.165179, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
83+
MakePreset("Polish", 100.000000, false, false, false, true, 29.166666, 10.000000, 8.169643, 0.191964, 6.473214, 0.300870, 10.000000, 7.366071, 0.272321, 1.285714, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923070, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, true, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
84+
MakePreset("Cave", 100.000000, false, false, false, true, 50.000000, 10.000000, 7.991071, 0.589286, 10.000000, 0.386642, 10.000000, 5.803571, 0.000000, 0.000000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, true, 29.910714, 0.131696, 10.000000, 10.000000, true, 22.619048, 10.000000, 7.767857, 0.584821, 10.000000, 0.466990, 10.000000, 7.053571, 0.245536, 0.714286, 0.500000, 1.000000, false, false, false, true, 0.000000, true, 64.423000, 1.000000, false, 22.321429, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
85+
MakePreset("Canyon", 0.000000, false, true, false, true, 100.000000, 10.000000, 8.035714, 0.803571, 10.000000, 0.248644, 10.000000, 10.000000, 0.133929, 0.642857, 0.500000, 0.120535, false, true, false, true, 0.000000, true, 60.851571, 0.000000, true, 100.000000, -100.000000, 100.000000, -66.666666, false, 0.000000, 0.000000, 10.000000, 10.000000, true, 100.000000, 10.000000, 8.035714, 0.803571, 10.000000, 0.248644, 10.000000, 10.000000, 0.133929, 0.642857, 0.500000, 0.120535, true, true, false, true, 0.000000, true, 60.851568, 0.000000, true, 100.000000, 100.000000, 100.000000, 66.666663, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
86+
MakePreset("ChorusVerb", 51.190476, false, false, false, true, 100.000000, 10.000000, 8.080357, 0.803571, 0.000000, 0.284801, 10.000000, 10.000000, 0.138393, 1.857143, 0.500000, 0.116071, false, false, false, false, 0.000000, true, 25.583714, 0.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, true, 100.000000, 0.082589, 7.366071, 10.000000, true, 11.309524, 10.000000, 10.000000, 0.500000, 10.000000, 0.495112, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 23.660714, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
87+
MakePreset("Washout", 100.000000, false, false, false, true, 32.142857, 10.000000, 10.000000, 0.379464, 10.000000, 0.730733, 8.169643, 7.901786, 0.272321, 1.285714, 0.500000, 1.000000, false, false, false, true, 0.000000, true, 72.905213, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false, 50.000000, 10.000000, 10.000000, 0.500000, 10.000000, 0.450000, 10.000000, 10.000000, 0.000000, 0.500000, 0.500000, 1.000000, false, false, false, true, 0.000000, false, 76.923000, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
88+
MakePreset("Totally Tubular", 61.904762, false, false, false, true, 51.785714, 10.000000, 6.026786, 0.191964, 6.473214, 0.497723, 10.000000, 8.348214, 0.272321, 1.285714, 0.500000, 1.000000, false, false, true, true, 0.000000, false, 76.923070, 1.000000, false, 100.000000, 0.000000, 100.000000, 0.000000, true, 32.589286, 0.049107, 10.000000, 4.285714, true, 32.142857, 6.517857, 8.080357, 0.294643, 10.000000, 0.591530, 7.232143, 10.000000, 0.232143, 1.071429, 0.723214, 1.000000, false, false, false, true, 0.000000, true, 47.458785, 1.000000, false, 100.000000, 0.000000, 58.928571, 0.000000, false, 0.000000, 0.000000, 10.000000, 10.000000, false);
9089

9190
reverb1.setSampleRate(GetSampleRate());
9291
envelope1.setSampleRate(GetSampleRate());
@@ -289,7 +288,51 @@ Plateau2::Plateau2(const InstanceInfo& info)
289288

290289
//Dump Preset Button
291290
//pGraphics->AttachControl((new LEDButton(IRECT::MakeXYWH(0, 40, 102, 102), LEDScale, LedOffSVG, LedOnBothSVG, LedOnBothSVG, [this](IControl* button) {DumpMakePresetSrc("C:/dev/Plugins/Plateau/Plateau2/preset.txt");})));
292-
291+
292+
//Save Button
293+
pGraphics->AttachControl((new LEDButton(IRECT::MakeXYWH(-14, 20, 102, 102), LEDScale, LedOffSVG, LedOnBothSVG, LedOnBothSVG, [this, pGraphics](IControl* button) {
294+
WDL_String filename;
295+
WDL_String path;
296+
pGraphics->PromptForFile(filename, path, EFileAction::Save, "pl2", [this, button](const WDL_String& fileName, const WDL_String& path) {
297+
if (path.GetLength()) {
298+
IByteChunk chunk;
299+
if (SerializeState(chunk)) {
300+
FILE* f = fopen(fileName.Get(), "wb");
301+
if (f) {
302+
fwrite(chunk.GetData(), 1, chunk.Size(), f);
303+
fclose(f);
304+
button->SetValue(0);
305+
button->SetDirty(false);
306+
}
307+
}
308+
}
309+
});
310+
})));
311+
312+
//Load Button
313+
pGraphics->AttachControl((new LEDButton(IRECT::MakeXYWH(228, 20, 102, 102), LEDScale, LedOffSVG, LedOnBothSVG, LedOnBothSVG, [this, pGraphics](IControl* button) {
314+
WDL_String filename;
315+
WDL_String path;
316+
pGraphics->PromptForFile(filename, path, EFileAction::Open, "pl2", [this, button](const WDL_String& fileName, const WDL_String& path) {
317+
FILE* f = fopen(fileName.Get(), "rb");
318+
if (f) {
319+
fseek(f, 0, SEEK_END);
320+
int size = (int)ftell(f);
321+
fseek(f, 0, SEEK_SET);
322+
323+
IByteChunk chunk;
324+
chunk.Resize(size);
325+
fread(chunk.GetData(), 1, size, f);
326+
fclose(f);
327+
328+
UnserializeState(chunk, 0);
329+
330+
if (GetUI()) GetUI()->SetAllControlsDirty();
331+
button->SetValue(0);
332+
button->SetDirty(false);
333+
}
334+
});
335+
})));
293336

294337
//Tank Enable Switch
295338
Switches[4] = new LEDSwitch(IRECT::MakeXYWH(106.5f, 112, 102, 102), LEDScale, LedOffSVG, LedOn1SVG, LedOn2SVG, kEnable1, kEnable2);
@@ -758,6 +801,17 @@ void Plateau2::UpdateParameter(int sourceIndex, int targetIndex)
758801
}
759802
}
760803

804+
bool Plateau2::SerializeState(IByteChunk& chunk) const
805+
{
806+
return SerializeParams(chunk);
807+
}
808+
809+
int Plateau2::UnserializeState(const IByteChunk& chunk, int pos)
810+
{
811+
pos = UnserializeParams(chunk, pos);
812+
if (GetUI()) GetUI()->SetAllControlsDirty();
813+
return pos;
814+
}
761815

762816
#if IPLUG_DSP
763817
void Plateau2::ProcessBlock(sample** inputs, sample** outputs, int nFrames)

Plateau2/Plateau2.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ class Plateau2 final : public Plugin
133133
Plateau2(const InstanceInfo& info);
134134
#if IPLUG_DSP // http://bit.ly/2S64BDd
135135
void ProcessBlock(sample** inputs, sample** outputs, int nFrames) override;
136+
bool SerializeState(IByteChunk& chunk) const override;
137+
int UnserializeState(const IByteChunk& chunk, int pos) override;
136138
void ChangePage(int direction, const ISVG PageBackgrounds[kNumPages], const ISVG NextButtons[kNumPages], const ISVG PreviousButtons[kNumPages]);
137139
void UpdatePageVisibility();
138140
void UpdateSendVisibility();

0 commit comments

Comments
 (0)