interface PresetListener {
- public void onPresetLoaded(Preset preset);
- public void onPresetDirty(Preset preset);
- public void onPresetStored(Preset preset);
+ public void onPresetLoaded(LXDeck deck, Preset preset);
+ public void onPresetDirty(LXDeck deck, Preset preset);
+ public void onPresetStored(LXDeck deck, Preset preset);
public void onPresetUnloaded();
}
}
}
}
- for (Engine.Deck deck : lx.engine.getDecks()) {
- deck.addListener(new Engine.AbstractListener() {
- public void patternDidChange(Engine.Deck deck, LXPattern pattern) {
- if (midiEngine.getFocusedDeck() == deck) {
- if (pattern != loadedPattern) {
- onPresetDirty();
- }
+ for (LXDeck deck : lx.engine.getDecks()) {
+ deck.addListener(new LXDeck.AbstractListener() {
+ public void patternDidChange(LXDeck deck, LXPattern pattern) {
+ if (pattern != loadedPattern) {
+ onPresetDirty(deck);
}
}
});
public void addListener(PresetListener listener) {
listeners.add(listener);
}
+
+ public LXDeck deckForPattern(LXPattern pattern) {
+ for (LXDeck deck : lx.engine.getDecks()) {
+ for (LXPattern p : deck.getPatterns()) {
+ if (p == pattern) {
+ return deck;
+ }
+ }
+ }
+ return null;
+ }
public void dirty(LXPattern pattern) {
- if (loadedPattern == pattern) {
- onPresetDirty();
- }
+ onPresetDirty(deckForPattern(pattern));
}
- public void select(Engine.Deck deck, int index) {
+ public void select(LXDeck deck, int index) {
presets[index].select(deck);
}
- public void store(Engine.Deck deck, int index) {
+ public void store(LXDeck deck, int index) {
presets[index].store(midiEngine.getFocusedPattern());
for (PresetListener listener : listeners) {
- listener.onPresetStored(presets[index]);
+ listener.onPresetStored(deck, presets[index]);
}
select(deck, index);
}
- public void onPresetLoaded(Preset preset, LXPattern pattern) {
+ public void onPresetLoaded(LXDeck deck, Preset preset, LXPattern pattern) {
if (loadedPattern != pattern) {
if (loadedPattern != null) {
for (LXParameter p : loadedPattern.getParameters()) {
}
}
for (PresetListener listener : listeners) {
- listener.onPresetLoaded(preset);
+ listener.onPresetLoaded(deck, preset);
}
loadedPreset = preset;
loadedPattern = pattern;
}
}
- private void onPresetDirty() {
+ private void onPresetDirty(LXDeck deck) {
if (loadedPreset != null) {
for (PresetListener listener : listeners) {
- listener.onPresetDirty(loadedPreset);
+ listener.onPresetDirty(deck, loadedPreset);
}
}
}
public void onParameterChanged(LXParameter p) {
- onPresetDirty();
+ onPresetDirty(deckForPattern(loadedPattern));
}
public void write() {
manager.write();
}
- public void select(Engine.Deck deck) {
+ public void select(LXDeck deck) {
for (LXPattern pattern : deck.getPatterns()) {
if (pattern.getClass().getName().equals(className)) {
for (String pLabel : parameters.keySet()) {
if (pattern instanceof DPat) {
((DPat)pattern).updateLights();
}
- manager.onPresetLoaded(this, pattern);
+ manager.onPresetLoaded(deck, this, pattern);
break;
}
}