Tweaks to preset handling
[SugarCubes.git] / _MIDI.pde
index fc06538daf342eeac6871748586bcdddc19812ab..4e7cc1f1248c06b637492f5ac970f98217e78e27 100644 (file)
--- a/_MIDI.pde
+++ b/_MIDI.pde
@@ -364,10 +364,7 @@ public class APC40MidiInput extends GenericDeviceMidiInput {
   }
   
   protected Engine.Deck getTargetDeck() {
-    if (targetDeck != null) {
-      return targetDeck;
-    }
-    return midiEngine.getFocusedDeck();
+    return (targetDeck != null) ? targetDeck : midiEngine.getFocusedDeck();
   }
   
   protected SCPattern getTargetPattern() {
@@ -699,16 +696,22 @@ class APC40MidiOutput implements LXParameter.Listener, GridOutput {
       }
     }
     presetManager.addListener(new PresetListener() {
-      public void onPresetLoaded(Preset preset) {
-        for (int i = 0; i < 8; ++i) {
-          output.sendNoteOn(i, 52, (preset.index == i) ? 1 : 0);
+      public void onPresetLoaded(Engine.Deck deck, Preset preset) {
+        if (deck == getTargetDeck()) {
+          for (int i = 0; i < 8; ++i) {
+            output.sendNoteOn(i, 52, (preset.index == i) ? 1 : 0);
+          }
         }
       }
-      public void onPresetDirty(Preset preset) {
-        output.sendNoteOn(preset.index, 52, 2);
+      public void onPresetDirty(Engine.Deck deck, Preset preset) {
+        if (deck == getTargetDeck()) {
+          output.sendNoteOn(preset.index, 52, 2);
+        }
       }
-      public void onPresetStored(Preset preset) {
-        onPresetLoaded(preset);
+      public void onPresetStored(Engine.Deck deck, Preset preset) {
+        if (deck == getTargetDeck()) {
+          onPresetLoaded(deck, preset);
+        }
       }
       public void onPresetUnloaded() {
         for (int i = 0; i < 8; ++i) {