adapt tizen coding rule
[platform/core/uifw/libeom.git] / tests / eom-test-output.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <gio/gio.h>
4 #include <eom.h>
5
6 /* This test application consider only one output */
7
8 static void
9 test_eom_output_notify_cb_output_add(eom_output_notify_s *notify, void *user_data)
10 {
11         eom_output_notify_add_s *add_notify = (eom_output_notify_add_s*)notify;
12         printf("output(%d) connected\n", add_notify->output_id);
13
14         /* already has one connected output */
15         if (output)
16                 return;
17
18         output = eom_output_create(add_notify->output_id);
19         if (!output)
20                 printf("fail: creating output\n");
21 }
22
23 static void
24 test_eom_output_notify_cb_output_remove(eom_output_notify_s *notify, void *user_data)
25 {
26         eom_output_notify_remove_s *rm_notify = (eom_output_notify_remove_s*)notify;
27         printf("output(%d) disconnected\n", rm_notify->output_id);
28
29         /* no connected output */
30         if (!output)
31                 return;
32
33         if (eom_output_get_output_id(output) != rm_notify->output_id) {
34                 printf("I'm not interested in this output(%d,%d)\n", eom_output_get_output_id(output), rm_notify->output_id);
35                 return;
36         }
37
38         eom_output_destroy(output);
39         output = NULL;
40 }
41
42 static void
43 test_eom_check_connected_output(void)
44 {
45         int output_cnt;
46         eom_output_id *output_ids;
47
48         output_ids = eom_get_eom_output_ids(&output_cnt);
49         if (!output_ids)
50                 goto done;
51
52         printf("output(%d) connected\n", output_ids[0]);
53
54 done:
55         if (output_ids)
56                 free(output_ids);
57 }
58
59 int
60 main(int argc, char *argv[])
61 {
62         GMainLoop *event_loop;
63
64         g_type_init();
65
66         if (eom_init())
67                 return 0;
68
69         eom_output_add_notify_cb(EOM_OUTPUT_NOTIFY_ADD, test_eom_output_notify_cb_output_add, NULL);
70         eom_output_add_notify_cb(EOM_OUTPUT_NOTIFY_REMOVE, test_eom_output_notify_cb_output_remove, NULL);
71
72         test_eom_check_connected_output();
73
74         /* run event loop */
75         event_loop = g_main_loop_new(NULL, FALSE);
76         g_main_loop_run(event_loop);
77
78         if (output)
79                 eom_output_destroy(output);
80
81         eom_output_remove_notify_cb(test_eom_output_notify_cb_output_add);
82         eom_output_remove_notify_cb(test_eom_output_notify_cb_output_remove);
83
84         eom_deinit();
85
86         return 0;
87 }