summaryrefslogtreecommitdiffstats
path: root/lib/e17/ecore.rb
blob: 12c505c4d68852218e1d2e6fd8ab2e8924925336 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
require 'ffi'
#
module E17
    module ECORE
        #
        extend FFI::Library
        #
        callback :ecore_pipe_cb, [:pointer, :pointer, :int], :void
        callback :ecore_select_function, [:int, :pointer, :pointer, :pointer, :pointer], :int
        #
        ffi_lib 'ecore'
        [
            # http://docs.enlightenment.org/auto/ecore/group__Ecore__Group.html
            [ :ecore_init, [ ], :int],
            [ :ecore_shutdown, [], :int],
            [ :ecore_pipe_add, [:ecore_pipe_cb, :pointer], :pointer],
            [ :ecore_pipe_del, [:pointer], :pointer],
            [ :ecore_pipe_read_close, [:pointer], :void],
            [ :ecore_pipe_write_close, [:pointer], :void],
            [ :ecore_pipe_write, [:pointer, :pointer, :int], :bool],
            # http://docs.enlightenment.org/auto/ecore/group__Ecore__Main__Loop__Group.html
            [ :ecore_main_loop_iterate, [], :void],
            [ :ecore_main_loop_begin, [], :void],
            [ :ecore_main_loop_quit, [], :void],
            [ :ecore_main_loop_select_func_set, [], :void],  # TODO spec
            [ :ecore_main_loop_select_func_get, [], :void],  # TODO spec
#            EAPI void   ecore_main_fd_handler_prepare_callback_set (Ecore_Fd_Handler *fd_handler, Ecore_Fd_Prep_Cb func, const void *data) # TODO
        ].each do |func|
            begin
                attach_function *func
            rescue Object => e
                puts "Could not attach #{func} #{e.message}"
            end
        end
        #
        class << self
            alias init ecore_init
            alias shutdown ecore_shutdown
            alias pipe_add ecore_pipe_add
            alias pipe_del ecore_pipe_del
            alias pipe_read_close ecore_pipe_read_close
            alias pipe_write_close ecore_pipe_write_close
            alias pipe_write ecore_pipe_write
            #
            alias main_loop_iterate ecore_main_loop_iterate
            alias main_loop_begin ecore_main_loop_begin
            alias main_loop_quit ecore_main_loop_quit
            alias main_loop_select_func_set ecore_main_loop_select_func_set
            alias main_loop_select_func_get ecore_main_loop_select_func_get
        end
        #
    end
end
#
# EOF