*/
public class PandaDriver {
+ // IP address
+ public final String ip;
+
// Address to send to
private final NetAddress address;
+ // Whether board output is enabled
+ private boolean enabled = false;
+
// OSC message
private final OscMessage message;
// Packet data
private final byte[] packet = new byte[4*352]; // TODO: de-magic-number, UDP related?
- public PandaDriver(NetAddress address, Model model, int[][] channelList) {
- this.address = address;
+ public PandaDriver(String ip, Model model, int[][] channelList) {
+ this.ip = ip;
+ this.address = new NetAddress(ip, 9001);
message = new OscMessage("/shady/pointbuffer");
List<Integer> pointList = buildMappedList(model, channelList);
points = new int[pointList.size()];
points[i++] = value;
}
}
+
+ public void toggle() {
+ enabled = !enabled;
+ println("PandaBoard Output/" + ip + ": " + (enabled ? "ON" : "OFF"));
+ }
private ArrayList<Integer> buildMappedList(Model model, int[][] channelList) {
ArrayList<Integer> points = new ArrayList<Integer>();
for (int ci = 0; ci < CUBES_PER_CHANNEL; ++ci) {
int cubeNumber = (ci < channel.length) ? channel[ci] : 0;
if (cubeNumber == 0) {
- for (int i = 0; i < (Cube.FACES_PER_CUBE*Face.STRIPS_PER_FACE*Strip.POINTS_PER_STRIP); ++i) {
+ for (int i = 0; i < Cube.POINTS_PER_CUBE; ++i) {
points.add(0);
}
} else {
}
public final void send(int[] colors) {
+ if (!enabled) {
+ return;
+ }
int len = 0;
int packetNum = 0;
for (int index : points) {