scide: LookupDialog - redo lookup on classes after partial lookup
[supercollider.git] / SCClassLibrary / Common / Audio / Poll.sc
blobe27ca427fbb5d25b2d7462bedb58a3806238a496
1 Poll : UGen {
2         *ar { arg trig, in, label, trigid = -1;
3                 this.multiNewList(['audio', trig, in, label, trigid]);
4                 ^in;
5         }
6         *kr { arg trig, in, label, trigid = -1;
7                 this.multiNewList(['control', trig, in, label, trigid]);
8                 ^in;
9         }
10         *new { arg trig, in, label, trigid = -1;
11                 var rate = in.asArray.collect(_.rate).unbubble;
12                 this.multiNewList([rate, trig, in, label, trigid]);
13                 ^in;
14         }
15         *new1 { arg rate, trig, in, label, trigid;
16                 label = label ?? {  "UGen(%)".format(in.class) };
17                 label = label.asString.collectAs(_.ascii, Array);
18                 if(rate === \scalar) { rate = \control };
19                 if(trig.isNumber) { trig = Impulse.multiNew(rate, trig, 0) };
20                 ^super.new.rate_(rate).addToSynth.init([trig, in, trigid, label.size] ++ label);
21         }
23         checkInputs { ^this.checkSameRateAsFirstInput }
25         init { arg theInputs;
26                 // store the inputs as an array
27                 inputs = theInputs;
28         }
32 s.boot;
34 {Poll.ar(Impulse.ar(5), Line.ar(0, 1, 1), \test2)}.play(s);
35 {SinOsc.ar(220, 0, 1).poll(Impulse.ar(15), "test")}.play(s);
37 o = OSCresponderNode(s.addr, '/tr', {arg time, resp, msg;
38         msg.postln;
39         }).add
41 {Poll.ar(Impulse.ar(5), Line.ar(0, 1, 1), \test2, 1234)}.play(s);
43 o.remove;
44 s.quit;