The death of GLucose! Hear ye, hear ye.
[SugarCubes.git] / _Internals.pde
index 0ee146de75d4740455d1965209cb2d9ed6764475..0362a7c871753e5932e5ea05284ecf9d5cfcf6e5 100644 (file)
@@ -13,7 +13,6 @@
  * for general animation work.
  */
 
-import glucose.*;
 import heronarts.lx.*;
 import heronarts.lx.effect.*;
 import heronarts.lx.model.*;
@@ -49,13 +48,13 @@ int targetFramerate = 60;
 int startMillis, lastMillis;
 
 // Core engine variables
-GLucose glucose;
 LX lx;
 Model model;
 LXPattern[] patterns;
 LXTransition[] transitions;
-DiscreteParameter activeTransition;
 Effects effects;
+LXEffect[] effectsArr;
+DiscreteParameter selectedEffect;
 MappingTool mappingTool;
 GrizzlyOutput[] grizzlies;
 PresetManager presetManager;
@@ -116,7 +115,11 @@ LXEffect[] _effectsArray(Effects effects) {
     } catch (IllegalAccessException iax) {}
   }
   return effectList.toArray(new LXEffect[]{});
-} 
+}
+
+LXEffect getSelectedEffect() {
+  return effectsArr[selectedEffect.getValuei()];
+}
 
 void logTime(String evt) {
   int now = millis();
@@ -134,11 +137,14 @@ void setup() {
   // hint(ENABLE_OPENGL_4X_SMOOTH); // no discernable improvement?
   logTime("Created viewport");
 
-  // Create the GLucose engine to run the cubes
-  glucose = new GLucose(this, model = buildModel());
-  lx = glucose.lx;
+  // Create the model
+  model = buildModel();
+  logTime("Built Model");
+  
+  // LX engine
+  lx = new LX(this, model);
   lx.enableKeyboardTempo();
-  logTime("Built GLucose engine");
+  logTime("Built LX engine");
     
   // Set the patterns
   LXEngine engine = lx.engine;
@@ -148,17 +154,12 @@ void setup() {
 
   // 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()]);
+  lx.engine.getDeck(RIGHT_DECK).setFaderTransition(transitions[0]);
   logTime("Built transitions");
   
   // Effects
-  glucose.lx.addEffects(_effectsArray(effects = new Effects()));
+  lx.addEffects(effectsArr = _effectsArray(effects = new Effects()));
+  selectedEffect = new DiscreteParameter("EFFECT", effectsArr.length);
   logTime("Built effects");
 
   // Preset manager
@@ -180,9 +181,10 @@ void setup() {
     x.printStackTrace();
   }
   logTime("Built Grizzly Outputs");
-  
-  // Mapping tools
+
+  // Mapping tool
   mappingTool = new MappingTool(lx);
+  logTime("Built Mapping Tool");
   
   // Build overlay UI
   UILayer[] layers = new UILayer[] {
@@ -192,14 +194,14 @@ void setup() {
       .setRadius(290).addComponent(new UICubesLayer()),
     
     // Left controls
-    uiPatternA = new UIPatternDeck(lx.ui, lx.engine.getDeck(GLucose.LEFT_DECK), "PATTERN A", 4, 4, 140, 324),
+    uiPatternA = new UIPatternDeck(lx.ui, lx.engine.getDeck(LEFT_DECK), "PATTERN A", 4, 4, 140, 324),
     new UIBlendMode(4, 332, 140, 86),
     new UIEffects(4, 422, 140, 144),
     new UITempo(4, 570, 140, 50),
     uiSpeed = new UISpeed(4, 624, 140, 50),
         
     // Right controls
-    new UIPatternDeck(lx.ui, lx.engine.getDeck(GLucose.RIGHT_DECK), "PATTERN B", width-144, 4, 140, 324),
+    new UIPatternDeck(lx.ui, lx.engine.getDeck(RIGHT_DECK), "PATTERN B", width-144, 4, 140, 324),
     uiMidi = new UIMidi(midiEngine, width-144, 332, 140, 158),
     new UIOutput(grizzlies, width-144, 494, 140, 106),
     
@@ -230,7 +232,7 @@ public SCPattern getPattern() {
 
 /**
  * Subclass of LXPattern specific to sugar cubes. These patterns
- * get access to the glucose state and geometry, and have some
+ * get access to the state and geometry, and have some
  * little helpers for interacting with the model.
  */
 public static abstract class SCPattern extends LXPattern {
@@ -322,7 +324,7 @@ void draw() {
   background(40);
   
   // Send colors
-  color[] sendColors = glucose.getColors();  
+  color[] sendColors = lx.getColors();  
   long gammaStart = System.nanoTime();
   // Gamma correction here. Apply a cubic to the brightness
   // for better representation of dynamic range
@@ -347,12 +349,12 @@ void draw() {
 
 class UICubesLayer extends UICameraComponent {
   void onDraw(UI ui) {
-    color[] simulationColors = glucose.getColors();
+    color[] simulationColors = lx.getColors();
     String displayMode = uiCrossfader.getDisplayMode();
     if (displayMode == "A") {
-      simulationColors = lx.engine.getDeck(GLucose.LEFT_DECK).getColors();
+      simulationColors = lx.engine.getDeck(LEFT_DECK).getColors();
     } else if (displayMode == "B") {
-      simulationColors = lx.engine.getDeck(GLucose.RIGHT_DECK).getColors();
+      simulationColors = lx.engine.getDeck(RIGHT_DECK).getColors();
     }
 
     long simulationStart = System.nanoTime();