X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=_Presets.pde;fp=_Presets.pde;h=2f716f2f1da9b27246137dda3116136b988460b8;hb=a1396b9e932bdf842b1817b0b313a34831889a5b;hp=f4371d600812899eaf88d8643e06e0c7c4d5b9e2;hpb=596f331f49e47b2164af07e7c5a113f44e5d2a26;p=SugarCubes.git diff --git a/_Presets.pde b/_Presets.pde index f4371d6..2f716f2 100644 --- a/_Presets.pde +++ b/_Presets.pde @@ -61,6 +61,12 @@ class PresetManager implements LXParameter.Listener { listeners.add(listener); } + public void dirty(LXPattern pattern) { + if (loadedPattern == pattern) { + onPresetDirty(); + } + } + public void select(int index) { presets[index].select(); } @@ -161,6 +167,15 @@ class Preset { for (LXParameter p : pattern.getParameters()) { parameters.put(p.getLabel(), p.getValuef()); } + if (pattern instanceof DPat) { + DPat dpattern = (DPat) pattern; + for (DBool bool : dpattern.bools) { + parameters.put(bool.tag, bool.b ? 1.f : 0.f); + } + for (Pick pick : dpattern.picks) { + parameters.put(pick.tag, pick.CurRow + pick.CurCol/100.f); + } + } manager.write(); } @@ -174,8 +189,25 @@ class Preset { p.setValue(parameters.get(pLabel)); } } + if (pattern instanceof DPat) { + DPat dpattern = (DPat) pattern; + for (DBool bool : dpattern.bools) { + if (bool.tag.equals(pLabel)) { + bool.set(bool.row, bool.col, parameters.get(pLabel) > 0); + } + } + for (Pick pick : dpattern.picks) { + if (pick.tag.equals(pLabel)) { + float f = parameters.get(pLabel); + pick.set((int) floor(f), (int) round((f%1)*100.)); + } + } + } } deck.goPattern(pattern); + if (pattern instanceof DPat) { + ((DPat)pattern).updateLights(); + } manager.onPresetLoaded(this, pattern); break; }