Remove transition management from glucose
[SugarCubes.git] / _Internals.pde
index 100607a97d4cecee33689184b736ed26efbee064..0ee146de75d4740455d1965209cb2d9ed6764475 100644 (file)
@@ -34,13 +34,16 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-final int VIEWPORT_WIDTH = 900;
-final int VIEWPORT_HEIGHT = 700;
+static final int VIEWPORT_WIDTH = 900;
+static final int VIEWPORT_HEIGHT = 700;
+
+static final int LEFT_DECK = 0;
+static final int RIGHT_DECK = 1;
 
 // The trailer is measured from the outside of the black metal (but not including the higher welded part on the front)
-final float TRAILER_WIDTH = 192;
-final float TRAILER_DEPTH = 192;
-final float TRAILER_HEIGHT = 33;
+static final float TRAILER_WIDTH = 192;
+static final float TRAILER_DEPTH = 192;
+static final float TRAILER_HEIGHT = 33;
 
 int targetFramerate = 60;
 int startMillis, lastMillis;
@@ -50,6 +53,8 @@ GLucose glucose;
 LX lx;
 Model model;
 LXPattern[] patterns;
+LXTransition[] transitions;
+DiscreteParameter activeTransition;
 Effects effects;
 MappingTool mappingTool;
 GrizzlyOutput[] grizzlies;
@@ -140,8 +145,19 @@ void setup() {
   engine.setPatterns(patterns = _leftPatterns(lx));
   engine.addDeck(_rightPatterns(lx));
   logTime("Built patterns");
-  glucose.setTransitions(transitions(lx));
+
+  // Transitions
+  transitions = transitions(lx);
+  activeTransition = new DiscreteParameter("TRANSITION", transitions.length);
+  activeTransition.addListener(new LXParameterListener() {
+    public void onParameterChanged(LXParameter parameter) {
+      lx.engine.getDeck(RIGHT_DECK).setFaderTransition(transitions[activeTransition.getValuei()]);
+    }
+  });
+  lx.engine.getDeck(RIGHT_DECK).setFaderTransition(transitions[activeTransition.getValuei()]);
   logTime("Built transitions");
+  
+  // Effects
   glucose.lx.addEffects(_effectsArray(effects = new Effects()));
   logTime("Built effects");