From c1d777c91652c808bbf8bb196d85eeb0287b0be7 Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Sat, 19 Oct 2013 13:07:47 -0700 Subject: [PATCH] Call onTransitionEnd() after active --- _Presets.pde | 24 ++++++++++++++++++++++-- code/HeronLX.jar | Bin 67785 -> 67785 bytes 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/_Presets.pde b/_Presets.pde index ada8bb1..7743cbf 100644 --- a/_Presets.pde +++ b/_Presets.pde @@ -4,7 +4,7 @@ interface PresetListener { public void onPresetStored(Preset preset); } -class PresetManager { +class PresetManager implements LXParameter.Listener { public static final int NUM_PRESETS = 8; public static final String FILENAME = "data/presets.txt"; @@ -13,7 +13,8 @@ class PresetManager { private final Preset[] presets = new Preset[NUM_PRESETS]; private final List listeners = new ArrayList(); - private LXPattern loadedPreset = null; + private Preset loadedPreset = null; + private LXPattern loadedPattern = null; PresetManager() { for (int i = 0; i < presets.length; ++i) { @@ -43,12 +44,31 @@ class PresetManager { public void store(int index) { presets[index].store(midiEngine.getFocusedPattern()); + select(index); } public void onPresetLoaded(Preset preset, LXPattern pattern) { + if (loadedPattern != pattern) { + if (loadedPattern != null) { + for (LXParameter p : loadedPattern.getParameters()) { + ((LXListenableParameter) p).removeListener(this); + } + } + } for (PresetListener listener : listeners) { listener.onPresetLoaded(preset); } + loadedPreset = preset; + loadedPattern = pattern; + for (LXParameter p : loadedPattern.getParameters()) { + ((LXListenableParameter) p).addListener(this); + } + } + + public void onParameterChanged(LXParameter p) { + for (PresetListener listener : listeners) { + listener.onPresetDirty(loadedPreset); + } } public void write() { diff --git a/code/HeronLX.jar b/code/HeronLX.jar index 3a649062ed8d8286fee16bf7c905114baabe34a0..de2032bc01b1c95795f10572d7aac34a11f334cd 100755 GIT binary patch delta 3746 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 Z5P&_XZ_)$c$0X*_Q~S{%sr@j={69YE?}7jT delta 3746 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 ao(|>?>C5ym=w;%I=_&oF87Td{j`@F3+q5eH -- 2.34.1