diff options
Diffstat (limited to 'lib/efl')
| -rw-r--r-- | lib/efl/native.rb | 54 | 
1 files changed, 43 insertions, 11 deletions
| diff --git a/lib/efl/native.rb b/lib/efl/native.rb index 1908595..3b3dcce 100644 --- a/lib/efl/native.rb +++ b/lib/efl/native.rb @@ -1,16 +1,48 @@  #! /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 +        # +        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 | 
