summaryrefslogtreecommitdiffstats
path: root/lib/e17/evas.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/e17/evas.rb')
-rw-r--r--lib/e17/evas.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/e17/evas.rb b/lib/e17/evas.rb
new file mode 100644
index 0000000..7a8d488
--- /dev/null
+++ b/lib/e17/evas.rb
@@ -0,0 +1,46 @@
+#! /usr/bin/env ruby
+# -*- coding: UTF-8 -*-
+#
+require 'ffi'
+#
+module E17
+ module EVAS
+ #
+ extend FFI::Library
+ #
+ callback :evas_async_events_put_cb, [:pointer, :int, :pointer], :void
+ #
+ ffi_lib 'evas'
+ [
+ # http://docs.enlightenment.org/auto/evas/group__Evas__Group.html
+ [ :evas_init, [], :int],
+ [ :evas_shutdown, [], :int],
+ [ :evas_alloc_error, [], :int],
+ [ :evas_async_events_fd_get, [], :int],
+ [ :evas_async_events_process, [], :int],
+ [ :evas_async_events_put, [:pointer, :int, :pointer, :evas_async_events_put_cb], :bool],
+ ].each do |func|
+ begin
+ attach_function *func
+ rescue Object => e
+ puts "Could not attach #{func} #{e.message}"
+ end
+ end
+ #
+ ALLOC_ERROR_NONE = 0
+ ALLOC_ERROR_FATAL = 1
+ ALLOC_ERROR_RECOVERED = 2
+ #
+ class << self
+ alias init evas_init
+ alias shutdown evas_shutdown
+ alias alloc_error evas_alloc_error
+ alias async_events_fd_get evas_async_events_fd_get
+ alias async_events_process evas_async_events_process
+ alias async_events_put evas_async_events_put
+ end
+ #
+ end
+end
+#
+# EOF