File: GLib-Source.lua

package info (click to toggle)
lua-lgi 0.9.2-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,388 kB
  • sloc: ansic: 5,082; makefile: 169; sh: 31
file content (39 lines) | stat: -rw-r--r-- 1,082 bytes parent folder | download | duplicates (5)
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
31
32
33
34
35
36
37
38
39
------------------------------------------------------------------------------
--
--  lgi GLib Source support
--
--  Copyright (c) 2015 Pavel Holejsovsky
--  Licensed under the MIT license:
--  http://www.opensource.org/licenses/mit-license.php
--
------------------------------------------------------------------------------

local type, setmetatable, pairs = type, setmetatable, pairs

local lgi = require 'lgi'
local core = require 'lgi.core'
local gi = core.gi
local component = require 'lgi.component'
local record = require 'lgi.record'
local ffi = require 'lgi.ffi'
local ti = ffi.types

local GLib = lgi.GLib
local Source = GLib.Source
local SourceFuncs = GLib.SourceFuncs

SourceFuncs._field.prepare = {
   name = 'prepare',
   offset = SourceFuncs._field.prepare.offset,
   ret = ti.boolean, Source, { ti.int, dir = 'out' }
}
local source_new = Source._new
function Source:_new(funcs)
   if type(funcs) == 'table' then
      funcs = SourceFuncs(funcs)
   end
   function funcs.finalize(source)
      funcs = nil
   end
   return source_new(self, funcs, Source._size)
end