From 88fa6b98d6a4a705c692997d83844c88d05f9922 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 17 Sep 2012 02:42:51 +0200 Subject: allow setting box color --- chuck/OSCGraphicsBox.ck | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'chuck/OSCGraphicsBox.ck') diff --git a/chuck/OSCGraphicsBox.ck b/chuck/OSCGraphicsBox.ck index 489bcf5..3899994 100644 --- a/chuck/OSCGraphicsBox.ck +++ b/chuck/OSCGraphicsBox.ck @@ -1,2 +1,37 @@ public class OSCGraphicsBox extends OSCGraphicsLayer { + class ColorPort extends OSCGraphicsPort { + OSCGraphicsBox @layer; + + int color[]; + int index; + + fun void + tick(float in, float prev) + { + in $ int => color[index]; + + /* optimize: avoid sending unnecessary messages */ + if (color[index] != (prev $ int)) + color => layer.color; + } + } + fun OSCGraphicsPort @ + getColorPort(int color[], int index) + { + ColorPort p; + this @=> p.layer; + color @=> p.color; + index => p.index; + + return p; + } + fun int[] + color(int color[]) + { + osc_send.startMsg("/layer/"+name+"/color", "iii"); + for (0 => int i; i < 3; i++) + color[i] => osc_send.addInt; + + return color; + } } -- cgit v1.2.3