blob: 33994768b2905efa8f934c02038ec012ef7c6560 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
-- reimplementation of [pipe] for any message
-- claude(+fbar) 2008
local M = pd.Class:new():register("lpipe")
function M:initialize(name, atoms)
self.inlets = 2
self.outlets = 1
self.nextID = 0
return true
end
function M:in_2_float(f)
self.deltatime = math.max(0, f)
end
function M:in_1(sel, atoms)
-- we need unique method names for our clock callbacks
self.nextID = self.nextID + 1
local id = "trigger" .. self.nextID
local clock = pd.Clock:new():register(self, id)
-- the clock callback outlets the data and cleans up
self[id] = function(self)
self:outlet(1, sel, atoms)
clock:destruct()
self[id] = nil
end
-- now start the clock
clock:delay(self.deltatime)
end
|