diff options
Diffstat (limited to 'lib/e17/ecore/event.rb')
-rw-r--r-- | lib/e17/ecore/event.rb | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/e17/ecore/event.rb b/lib/e17/ecore/event.rb new file mode 100644 index 0000000..e536875 --- /dev/null +++ b/lib/e17/ecore/event.rb @@ -0,0 +1,59 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'ffi' +# +module E17 + module ECORE + # + extend FFI::Library + # + EVENT_NONE = 0 + EVENT_SIGNAL_USER = 1 # User signal event + EVENT_SIGNAL_HUP = 2 # Hup signal event + EVENT_SIGNAL_EXIT = 3 # Exit signal event + EVENT_SIGNAL_POWER = 4 # Power signal event + EVENT_SIGNAL_REALTIME = 5 # Realtime signal event + EVENT_COUNT = 6 + callback :ecore_event_handler_cb, [:pointer, :int, :pointer], :bool + callback :ecore_end_cb, [:pointer, :pointer], :void + callback :ecore_data_cb, [:pointer], :pointer + callback :ecore_filter_cb, [:pointer, :pointer, :int, :pointer], :bool + # + ffi_lib 'ecore' + functions = [ + [ :ecore_event_handler_add, [:int, :ecore_event_handler_cb, :pointer], :pointer ], + [ :ecore_event_handler_del, [:pointer], :void ], + [ :ecore_event_add, [:int, :pointer, :ecore_end_cb, :pointer], :pointer ], + [ :ecore_event_del, [:pointer], :void ], + [ :ecore_event_handler_data_get, [:pointer], :pointer ], + [ :ecore_event_handler_data_set, [:pointer,:pointer], :void ], + [ :ecore_event_type_new, [], :int ], + [ :ecore_event_filter_add, [:ecore_data_cb, :ecore_filter_cb, :ecore_end_cb, :pointer], :pointer ], + [ :ecore_event_filter_del, [:pointer], :void ], + [ :ecore_event_current_type_get, [], :int ], + [ :ecore_event_current_event_get, [], :pointer], + ].each do |func| + begin + attach_function *func + rescue Object => e + puts "Could not attach #{func} #{e.message}" + end + end + # + class << self + alias event_handler_add ecore_event_handler_add + alias event_handler_del ecore_event_handler_del + alias event_add ecore_event_add + alias event_del ecore_event_del + alias event_handler_data_get ecore_event_handler_data_get + alias event_handler_data_set ecore_event_handler_data_set + alias event_type_new ecore_event_type_new + alias event_current_type_get ecore_event_current_type_get + alias event_current_event_get ecore_event_current_event_get + end + # + end +end +# +# EOF |