ecore_poller_example.c

This example shows how to setup and use a poller. See the explanation here.

//Compile with:
// gcc -o ecore_poller_example ecore_poller_example.c `pkg-config --libs --cflags ecore eo`
#include <Ecore.h>
//#include <Ecore_Eo.h>
#include <unistd.h>
static double _initial_time = 0;
static Eina_Bool
_poller_print_cb(void *data)
{
char *str = data;
printf("Ecore Poller '%s' callback called after %0.3f seconds.\n",
str, ecore_time_get() - _initial_time);
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_poller_quit_cb(void *data EINA_UNUSED)
{
ecore_main_loop_quit();
return EINA_TRUE;
}
int
main(void)
{
double interval = 0.3; // tick each 0.3 seconds
Ecore_Poller *poller1, *poller2, *poller3;
char *str1 = "poller1";
char *str2 = "poller2";
char *str3 = "poller3";
if (!ecore_init())
{
printf("ERROR: Cannot init Ecore!\n");
return -1;
}
_initial_time = ecore_time_get();
ecore_poller_poll_interval_set(ECORE_POLLER_CORE, interval);
poller1 = ecore_poller_add(ECORE_POLLER_CORE, 4, _poller_print_cb, str1);
poller2 = ecore_poller_add(ECORE_POLLER_CORE, 8, _poller_print_cb, str2);
poller3 = ecore_poller_add(ECORE_POLLER_CORE, 30, _poller_quit_cb, str3);
// poller1 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 4, _poller_print_cb, str1));
// poller2 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 8, _poller_print_cb, str2));
// poller3 = efl_add_ref(ECORE_POLLER_CLASS, NULL, // ecore_poller_constructor(efl_added, ECORE_POLLER_CORE, 20, _poller_quit_cb, str3));
ecore_main_loop_begin();
printf("changing poller2 interval to 16\n");
ecore_poller_poller_interval_set(poller2, 16);
// ecore_poller_interval_set(poller2, 16, NULL);
ecore_main_loop_begin();
// efl_unref(poller1);
// efl_unref(poller2);
// efl_unref(poller3);
ecore_poller_del(poller1);
ecore_poller_del(poller2);
ecore_poller_del(poller3);
ecore_shutdown();
}
ecore_shutdown
EAPI int ecore_shutdown(void)
Shuts down connections, signal handlers sockets etc.
Definition: ecore.c:371
ecore_init
EAPI int ecore_init(void)
Sets up connections, signal handlers, sockets etc.
Definition: ecore.c:230
ECORE_CALLBACK_RENEW
#define ECORE_CALLBACK_RENEW
Return value to keep a callback.
Definition: Ecore_Common.h:153
ecore_main_loop_quit
void ecore_main_loop_quit(void)
Quits the main loop once all the events currently on the queue have been processed.
Definition: ecore_main.c:1321
ecore_main_loop_begin
void ecore_main_loop_begin(void)
Runs the application main loop.
Definition: ecore_main.c:1311
ecore_poller_poll_interval_set
void ecore_poller_poll_interval_set(Ecore_Poller_Type type, double poll_time)
Sets the time(in seconds) between ticks for the given poller type.
Definition: ecore_poller.c:215
ecore_poller_del
void * ecore_poller_del(Ecore_Poller *poller)
Deletes the specified poller from the timer list.
Definition: ecore_poller.c:332
ecore_poller_add
Ecore_Poller * ecore_poller_add(Ecore_Poller_Type type, int interval, Ecore_Task_Cb func, const void *data)
Creates a poller to call the given function at a particular tick interval.
Definition: ecore_poller.c:238
ecore_poller_poller_interval_set
Eina_Bool ecore_poller_poller_interval_set(Ecore_Poller *obj, int interval)
Polling interval rate of the poller.
Definition: ecore_poller.c:282
ECORE_POLLER_CORE
@ ECORE_POLLER_CORE
The core poller interval.
Definition: Ecore_Legacy.h:11
ecore_time_get
double ecore_time_get(void)
Retrieves the current system time as a floating point value in seconds.
Definition: ecore_time.c:33
EINA_TRUE
#define EINA_TRUE
boolean value TRUE (numerical value 1)
Definition: eina_types.h:539
Eina_Bool
unsigned char Eina_Bool
Type to mimic a boolean.
Definition: eina_types.h:527
EINA_UNUSED
#define EINA_UNUSED
Used to indicate that a function parameter is purposely unused.
Definition: eina_types.h:339