diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-09-17 02:42:51 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-09-17 02:42:51 +0200 |
commit | 88fa6b98d6a4a705c692997d83844c88d05f9922 (patch) | |
tree | 26285aaa153136cf9f42b7d0657240bec1e8aadf /chuck/OSCGraphicsBox.ck | |
parent | 3b7b682ca322d62f03c812f22623a43dc25b0074 (diff) | |
download | osc-graphics-88fa6b98d6a4a705c692997d83844c88d05f9922.tar.gz |
allow setting box color
Diffstat (limited to 'chuck/OSCGraphicsBox.ck')
-rw-r--r-- | chuck/OSCGraphicsBox.ck | 35 |
1 files changed, 35 insertions, 0 deletions
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; + } } |