diff options
Diffstat (limited to 'lib/efl/native.rb')
-rw-r--r-- | lib/efl/native.rb | 56 |
1 files changed, 45 insertions, 11 deletions
diff --git a/lib/efl/native.rb b/lib/efl/native.rb index 1908595..24b336c 100644 --- a/lib/efl/native.rb +++ b/lib/efl/native.rb @@ -1,16 +1,50 @@ #! /usr/bin/env ruby # -*- coding: UTF-8 -*- # -require 'efl/native/eet' -require 'efl/native/eina' -require 'efl/native/eina_hash' -require 'efl/native/eina_list' -require 'efl/native/evas' -require 'efl/native/ecore' -require 'efl/native/ecore_evas' -require 'efl/native/ecore_getopt' -require 'efl/native/ecore_input' -require 'efl/native/edje' -require 'efl/native/elementary' +require 'ffi' +# +module Efl + # + module Native + # + extend FFI::Library + # + typedef :bool, :eina_bool + # + def self.attach_fcts fcts + fcts.each do |func| + begin + attach_function(*func) + rescue Object => e + puts "Could not attach #{func} #{e.message}" + end + end + end + # + class << self + def find_variable name + ffi_libraries.each do |lib| + address = lib.find_variable name + return address if not address.nil? + end + return nil + end + end + # + class VersionStruct < FFI::Struct + layout :major, :int, + :minor, :int, + :micro, :int, + :revision, :int + + def full + [:major,:minor,:micro,:revision].collect { |e| self[e].to_s }.join '.' + end + end + end + # +end +# +require 'efl/native/eina_types' # # EOF |