Simplest possible 16 param animation for dan's input devices
[SugarCubes.git] / _Mappings.pde
index 1a61a8a8807337e7e7f0cddf4182cbb905572b37..3932f0b9fecf53581ed524bd13d0f9d81facc19c 100644 (file)
@@ -22,8 +22,10 @@ public Model buildModel() {
   final Cube.Wiring WRL = Cube.Wiring.REAR_LEFT;
   final Cube.Wiring WRR = Cube.Wiring.REAR_RIGHT;
   
+  // Utility value if you need the height of a cube shorthand
   final float CH = Cube.EDGE_HEIGHT;
   
+  // Positions for the bass box
   final float BBY = BassBox.EDGE_HEIGHT + BoothFloor.PLEXI_WIDTH;
   final float BBX = 56;
   final float BBZ = 2;
@@ -78,10 +80,15 @@ public Model buildModel() {
 
   // The speakers!
   List<Speaker> speakers = Arrays.asList(new Speaker[] {
+    // each speaker parameter is x, y, z, rotation, the left speaker comes first
     new Speaker(-12, 6, 0, 15),
     new Speaker(TRAILER_WIDTH - Speaker.EDGE_WIDTH + 8, 6, 3, -15)
   });
 
+  //////////////////////////////////////////////////////////////////////
+  //      BENEATH HERE SHOULD NOT REQUIRE ANY MODIFICATION!!!!        //
+  //////////////////////////////////////////////////////////////////////
+
   // These guts just convert the shorthand mappings into usable objects
   ArrayList<Tower> towerList = new ArrayList<Tower>();
   ArrayList<Cube> tower;
@@ -106,40 +113,53 @@ public Model buildModel() {
   return new Model(towerList, cubes, bassBox, speakers);
 }
 
+/**
+ * This function maps the panda boards. We have an array of them, each has
+ * an IP address and a list of channels.
+ */
 public PandaMapping[] buildPandaList() {
+  final int LEFT_SPEAKER = 0;
+  final int RIGHT_SPEAKER = 1;
+  
   return new PandaMapping[] {
     new PandaMapping(
-      "10.200.1.28", new ChannelMapping[] {
+      "10.200.1.29", new ChannelMapping[] {
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
         new ChannelMapping(ChannelMapping.MODE_BASS),
-        new ChannelMapping(ChannelMapping.MODE_FLOOR),
-        new ChannelMapping(ChannelMapping.MODE_SPEAKER, 0),
-        new ChannelMapping(ChannelMapping.MODE_SPEAKER, 1),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1 }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
+        new ChannelMapping(ChannelMapping.MODE_STRUTS_AND_FLOOR),
+        new ChannelMapping(ChannelMapping.MODE_SPEAKER, LEFT_SPEAKER),
+        new ChannelMapping(ChannelMapping.MODE_SPEAKER, RIGHT_SPEAKER),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
     }),
 
     new PandaMapping(
-      "10.200.1.29", new ChannelMapping[] {
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),        
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),
+      "10.200.1.28", new ChannelMapping[] {
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 2, 3, 4 }),
     }),
   };
 }
@@ -184,7 +204,7 @@ class CubeMapping {
 class PandaMapping {
   
   // How many channels are on the panda board
-  public final static int CHANNELS_PER_BOARD = 13;
+  public final static int CHANNELS_PER_BOARD = 16;
   
   // How many total pixels on the whole board
   public final static int PIXELS_PER_BOARD = ChannelMapping.PIXELS_PER_CHANNEL * CHANNELS_PER_BOARD;
@@ -227,7 +247,7 @@ class ChannelMapping {
   public static final int MODE_CUBES = 1;
   public static final int MODE_BASS = 2;
   public static final int MODE_SPEAKER = 3;
-  public static final int MODE_FLOOR = 4;
+  public static final int MODE_STRUTS_AND_FLOOR = 4;
   public static final int MODE_INVALID = 5;
   
   public static final int NO_OBJECT = -1;
@@ -259,7 +279,7 @@ class ChannelMapping {
       if (speakerIndex < 0 || speakerIndex >= glucose.model.speakers.size()) {
         throw new RuntimeException("Invalid speaker channel mapping: " + speakerIndex);
       }
-    } else if ((mode == MODE_FLOOR) || (mode == MODE_BASS) || (mode == MODE_NULL)) {
+    } else if ((mode == MODE_STRUTS_AND_FLOOR) || (mode == MODE_BASS) || (mode == MODE_NULL)) {
       if (rawObjectIndices.length > 0) {
         throw new RuntimeException("Bass/floor/null mappings cannot specify object indices");
       }