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
|