efl
1//Compile with:
2// gcc -o ecore_poller_example ecore_poller_example.c `pkg-config --libs --cflags ecore eo`
3
4#include <Ecore.h>5//#include <Ecore_Eo.h>
6#include <unistd.h>7
8static double _initial_time = 0;9
10static Eina_Bool11_poller_print_cb(void *data)12{
13char *str = data;14printf("Ecore Poller '%s' callback called after %0.3f seconds.\n",15str, ecore_time_get() - _initial_time);16
17return ECORE_CALLBACK_RENEW;18}
19
20static Eina_Bool21_poller_quit_cb(void *data EINA_UNUSED)22{
23
24ecore_main_loop_quit();25return EINA_TRUE;26}
27
28int
29main(void)30{
31double interval = 0.3; // tick each 0.3 seconds32Ecore_Poller *poller1, *poller2, *poller3;33char *str1 = "poller1";34char *str2 = "poller2";35char *str3 = "poller3";36
37if (!ecore_init())38{39printf("ERROR: Cannot init Ecore!\n");40return -1;41}42
43_initial_time = ecore_time_get();44
45ecore_poller_poll_interval_set(ECORE_POLLER_CORE, interval);46
47poller1 = ecore_poller_add(ECORE_POLLER_CORE, 4, _poller_print_cb, str1);48poller2 = ecore_poller_add(ECORE_POLLER_CORE, 8, _poller_print_cb, str2);49poller3 = ecore_poller_add(ECORE_POLLER_CORE, 30, _poller_quit_cb, str3);50
51// poller1 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 4, _poller_print_cb, str1));
52// poller2 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 8, _poller_print_cb, str2));
53// poller3 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 20, _poller_quit_cb, str3));
54
55
56ecore_main_loop_begin();57
58printf("changing poller2 interval to 16\n");59
60ecore_poller_poller_interval_set(poller2, 16);61// ecore_poller_interval_set(poller2, 16, NULL);
62ecore_main_loop_begin();63
64// efl_unref(poller1);
65// efl_unref(poller2);
66// efl_unref(poller3);
67ecore_poller_del(poller1);68ecore_poller_del(poller2);69ecore_poller_del(poller3);70
71ecore_shutdown();72}
73
74