diff options
author | Pixel <pixel@nobis-crew.org> | 2009-12-20 03:02:33 -0800 |
---|---|---|
committer | Pixel <pixel@nobis-crew.org> | 2009-12-20 03:02:33 -0800 |
commit | cb7c8031ced6e9a393e8bdc3f409687741ef9feb (patch) | |
tree | a0390aaf2dd7749ca1a20095ef85a20f9d717790 /dalos-limiter.lua | |
parent | 1eef19bf7577799096f9133f38e8a9c8f0d65248 (diff) |
Factorizing some bits of code.
Diffstat (limited to 'dalos-limiter.lua')
-rw-r--r-- | dalos-limiter.lua | 48 |
1 files changed, 6 insertions, 42 deletions
diff --git a/dalos-limiter.lua b/dalos-limiter.lua index 8f1a863..b423d7a 100644 --- a/dalos-limiter.lua +++ b/dalos-limiter.lua @@ -15,51 +15,16 @@ Limit: %i{The actual size this limiter is going to produce} self.color = cd.GREEN
local obj = {
h = h,
- offset = 0,
size = math.max(h:getsize(), self.limit),
- canread = function (self) return true end,
- canwrite = function (self) return false end,
- canseek = function (self) return true end,
- canwatch = function (self) return false end,
- getname = function (self) return end,
- tell = function (self) return self.offset end,
- getsize = function (self) return self.size end,
- getmodif = function (self) return 0 end,
- flush = function (self) return true end,
- seek = function (self, offset, wheel)
- if wheel == SEEK_SET then
- self.offset = offset
- elseif wheel == SEEK_CUR then
- self.offset = self.offset + offset
- elseif wheel == SEEK_END then
- self.offset = self.size + offset
- else
- error "Unknown wheel"
- end
- if self.offset < 0 then self.offset = 0 end
- if self.offset >= self.size then self.offset = self.size end
- self.h:seek(self.offset)
- return self.offset
+ getname = function () return self.name end,
+ do_read = function (self, userdata, count)
+ return self.h:read(count, userdata)
end,
- read = function (self, userdata, count)
- count = math.min(count, self.size - self.offset)
-
- if count == 0 then
- if self.got_eof then self.lh:close() end
- self.got_eof = true
- return 0
- end
-
- self.got_eof = false
-
- local r = self.h:read(count, userdata)
- self.offset = self.offset + r
- return r
+ do_seek = function (self)
+ self.h:seek(self.offset, SEEK_SET)
end,
}
- local newh = HandleLua(obj)
- obj.lh = newh
- self:set_houtput(newh)
+ self:set_houtput(dalos.luahandle(obj))
self.dcanvas:draw()
else
self.color = cd.YELLOW
@@ -68,7 +33,6 @@ Limit: %i{The actual size this limiter is going to produce} end
end,
-
create = function (d, tab)
tab.ninputs = 1
tab.noutputs = 1
|