Created
December 12, 2012 06:49
-
-
Save jeremyz/4265607 to your computer and use it in GitHub Desktop.
inter process communication using ffi-efl and ecore_pipe
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env ruby | |
# -*- coding: UTF-8 -*- | |
# | |
require 'efl/native/ecore' | |
require 'efl/native/elm/elm_win' | |
require 'efl/native/elm/elm_bg' | |
require 'efl/native/elm/elm_label' | |
require 'efl/native/elm/elm_object' | |
include Efl::Native | |
elm_init 0, FFI::MemoryPointer::NULL | |
win_del = Proc.new { |data,evas_object,event_info| | |
elm_exit(); | |
} | |
win = elm_win_add nil, "App name", :elm_win_basic | |
elm_win_title_set win, "Window title" | |
evas_object_smart_callback_add win, "delete,request", win_del, nil | |
bg = elm_bg_add win | |
evas_object_size_hint_weight_set bg, 1.0, 1.0 | |
elm_win_resize_object_add win, bg | |
evas_object_show bg | |
lb = elm_label_add win | |
elm_object_part_text_set lb, nil, "Hello World" | |
evas_object_size_hint_weight_set lb, 1.0, 1.0 | |
elm_win_resize_object_add win, lb | |
evas_object_show lb | |
evas_object_move win, 300, 300 | |
evas_object_resize win, 200, 100 | |
evas_object_show win | |
pipe_cb = Proc.new { |date,buffer,n| | |
elm_object_part_text_set lb, nil, buffer.read_string[0..n-1] | |
} | |
pipe = ecore_pipe_add pipe_cb, nil | |
pid = fork { | |
ecore_pipe_read_close(pipe); | |
[ "hello","dying","old","planet","earth"].each do |w| | |
sleep 1 | |
ecore_pipe_write pipe, w, w.length | |
end | |
} | |
elm_run | |
ecore_pipe_del pipe | |
elm_shutdown |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment