356bcdf44c34fd39524fd572dcb08bf5ba094fb8
[platform/core/uifw/e-mod-tizen-wm-policy.git] / src / e_mod_main.c
1 #include "e_mod_main.h"
2 #include "e_mod_rotation.h"
3 #include "e_mod_pol_pingpong.h"
4 #include "e_mod_configured_resolution.h"
5 #include "e_mod_split_screen_manager.h"
6 #include <stdlib.h>
7 #include <system_info.h>
8
9 E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Policy-Mobile" };
10
11 Mod *_pol_mod = NULL;
12
13 static void
14 _e_mod_pol_rotation_init(void)
15 {
16    Eina_List *angle_list = NULL;
17
18    angle_list = e_mod_pol_conf_rot_enable_angles_get();
19    e_mod_pol_rotation_init(angle_list);
20 }
21
22 E_API void *
23 e_modapi_init(E_Module *m)
24 {
25    Mod *mod;
26
27    mod = E_NEW(Mod, 1);
28    EINA_SAFETY_ON_NULL_RETURN_VAL(mod, NULL);
29
30    mod->module = m;
31    _pol_mod = mod;
32
33    if (!e_config->use_e_policy)
34      ERR("No policy system!");
35
36    e_mod_pol_conf_init(mod);
37    _e_mod_pol_rotation_init();
38    e_mod_pol_pingpong_init();
39    e_mod_configured_resolution_init();
40 #ifdef REFACTOR_DESK_AREA
41    e_mod_split_screen_manager_init();
42 #endif
43
44    return mod;
45 }
46
47 E_API int
48 e_modapi_shutdown(E_Module *m)
49 {
50    Mod *mod = m->data;
51
52 #ifdef REFACTOR_DESK_AREA
53    e_mod_split_screen_manager_shutdown();
54 #endif
55    e_mod_configured_resolution_shutdown();
56    e_mod_pol_pingpong_shutdown();
57    e_mod_pol_rotation_shutdown();
58    e_mod_pol_conf_shutdown(mod);
59    E_FREE(mod);
60    _pol_mod = NULL;
61    return 1;
62 }
63
64 E_API int
65 e_modapi_save(E_Module *m)
66 {
67    Mod *mod = m->data;
68    e_config_domain_save("module.policy-tizen",
69                         mod->conf_edd,
70                         mod->conf);
71    return 1;
72 }