diff options
Diffstat (limited to 'lib/e17')
-rw-r--r-- | lib/e17/ffi.rb | 35 | ||||
-rw-r--r-- | lib/e17/ffi_helper.rb | 39 |
2 files changed, 35 insertions, 39 deletions
diff --git a/lib/e17/ffi.rb b/lib/e17/ffi.rb new file mode 100644 index 0000000..e8a644c --- /dev/null +++ b/lib/e17/ffi.rb @@ -0,0 +1,35 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'ffi' +# +module E17 + # + module API + # + extend FFI::Library + # + def attach_fcts fcts + fcts.each do |func| + begin + attach_function *func + rescue Object => e + puts "Could not attach #{func} #{e.message}" + end + end + end + module_function :attach_fcts + # + typedef :pointer, :int_p + typedef :pointer, :uint_p + typedef :pointer, :void_p + typedef :pointer, :uchar_p + typedef :pointer, :string_array + # + typedef :pointer, :eina_list_p + # + end + # +end +# +# EOF diff --git a/lib/e17/ffi_helper.rb b/lib/e17/ffi_helper.rb deleted file mode 100644 index 26efe57..0000000 --- a/lib/e17/ffi_helper.rb +++ /dev/null @@ -1,39 +0,0 @@ -#! /usr/bin/env ruby -# -*- coding: UTF-8 -*- -# -require 'ffi' -# -module FFIHelper - # - def attach_fcts fcts - fcts.each do |func| - begin - attach_function *func - rescue Object => e - puts "Could not attach #{func} #{e.message}" - end - end - end - # - def create_aliases l, fcts - module_eval <<-code - class << self - #{fcts.map{ |f,a,r| "alias #{f.to_s[l..-1]} #{f}" }.join "\n" } - end - code - end - # - def self.extended mod - mod.module_eval <<-EOF - typedef :pointer, :int_p - typedef :pointer, :uint_p - typedef :pointer, :void_p - typedef :pointer, :uchar_p - typedef :pointer, :string_array - # - typedef :pointer, :eina_list_p - EOF - end -end -# -# EOF |