diff options
author | unknown <Pixel@.(none)> | 2010-01-05 22:22:01 -0800 |
---|---|---|
committer | unknown <Pixel@.(none)> | 2010-01-05 22:22:01 -0800 |
commit | 628ed8138210d0f67cc35835f6fba96fcc7d932f (patch) | |
tree | 0357420e905b42533170ad2d71961373d82c7803 /dalos-tee.lua | |
parent | 36624b05efae3fa82280a945fa2eb1dedc84e0b0 (diff) | |
parent | 69836d15333d9d48aecf3e0aef139c7eacf59214 (diff) |
Merge branch 'master' of ssh+git://git.grumpycoder.net/pub/repo.git/Dalos
Diffstat (limited to 'dalos-tee.lua')
-rw-r--r-- | dalos-tee.lua | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/dalos-tee.lua b/dalos-tee.lua new file mode 100644 index 0000000..b5193c0 --- /dev/null +++ b/dalos-tee.lua @@ -0,0 +1,50 @@ +dalosp.tee = { + NTEE = 16, + + set_out = function (self, h, ind) + local name = h:getname() + local obj = { + h = h, + size = h:getsize(), + getname = function () return name end, + do_read = function (self, count, userdata) + self.h:seek(self.offset, SEEK_SET) + return self.h:read(count, userdata) + end, + } + self:set_houtput(dalos.luahandle(obj), ind) + end, + + input_change = function (self, ind) + local h = self:get_linked_input(1) + if h then + self.color = cd.GREEN + for ind = 1, 16 do self:set_out(h, ind) end + self.dcanvas:draw() + else + self.color = cd.YELLOW + for i = 1, dalosp.tee.NTEE do + self:set_houtput(nil, i) + end + self.dcanvas:draw() + end + end, + + create = function (d, tab, settings) + tab.ninputs = 1 + tab.noutputs = dalosp.tee.NTEE + tab.otype = dalos.objtype.LUA_FILTER + tab.input_change = dalosp.tee.input_change + tab.default_name = "Tee" + tab.ntype = "Tee" + + local obj = dalos.object(d, tab) + + obj.set_out = dalosp.tee.set_out + + return obj + end, +} + +dalos.tee = dalosp.tee.create +dalos:register_obj("Tee", dalos.tee, "Basic Filters") |