efl

Форк
0
/
ecore_poller_example.c 
72 строки · 2.0 Кб
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

8
static double _initial_time = 0;
9

10
static Eina_Bool
11
_poller_print_cb(void *data)
12
{
13
   char *str = data;
14
   printf("Ecore Poller '%s' callback called after %0.3f seconds.\n",
15
          str, ecore_time_get() - _initial_time);
16

17
   return ECORE_CALLBACK_RENEW;
18
}
19

20
static Eina_Bool
21
_poller_quit_cb(void *data EINA_UNUSED)
22
{
23

24
   ecore_main_loop_quit();
25
   return EINA_TRUE;
26
}
27

28
int
29
main(void)
30
{
31
   double interval = 0.3; // tick each 0.3 seconds
32
   Ecore_Poller *poller1, *poller2, *poller3;
33
   char *str1 = "poller1";
34
   char *str2 = "poller2";
35
   char *str3 = "poller3";
36

37
   if (!ecore_init())
38
     {
39
        printf("ERROR: Cannot init Ecore!\n");
40
        return -1;
41
     }
42

43
   _initial_time = ecore_time_get();
44

45
   ecore_poller_poll_interval_set(ECORE_POLLER_CORE, interval);
46

47
   poller1 = ecore_poller_add(ECORE_POLLER_CORE, 4, _poller_print_cb, str1);
48
   poller2 = ecore_poller_add(ECORE_POLLER_CORE, 8, _poller_print_cb, str2);
49
   poller3 = 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

56
   ecore_main_loop_begin();
57

58
   printf("changing poller2 interval to 16\n");
59

60
   ecore_poller_poller_interval_set(poller2, 16);
61
//   ecore_poller_interval_set(poller2, 16, NULL);
62
   ecore_main_loop_begin();
63

64
//   efl_unref(poller1);
65
//   efl_unref(poller2);
66
//   efl_unref(poller3);
67
   ecore_poller_del(poller1);
68
   ecore_poller_del(poller2);
69
   ecore_poller_del(poller3);
70

71
   ecore_shutdown();
72
}
73

74

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.