#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
require 'ffi'
#
module EFL
    module ECORE
        #
        extend FFI::Library
        #
        callback:ecore_select_function, [ :int, :pointer, :pointer, :pointer, :pointer], :int
        #
        ffi_lib 'ecore'
        functions = [
            [ :ecore_init, [ ], :int ],
            [ :ecore_shutdown, [], :int ],
            [ :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
        ].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 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