39032021f7ee22635ea264ec302e58337fcf83da
[apps/agl-service-windowmanager-2017.git] / policy_manager / stm / zipc / StateTransitionor / ZST_StateTransitionor_func.c
1 /************************************************************/
2 /*     ZST_StateTransitionor_func.c                         */
3 /*     Function and variable source file                    */
4 /*     ZIPC Designer Version 1.2.0                          */
5 /************************************************************/
6 #include "ZST_include.h"
7
8 /*************************************************************
9     Function definition
10 *************************************************************/
11
12 #include <string.h>
13
14 //=================================
15 // API
16 //=================================
17 /**
18  *  Initialize STM
19  */
20 void stmInitializeInner() {
21     // Initialize previous state
22     memset(&g_stm_prv_state, 0, sizeof(g_stm_prv_state));
23
24     // Initialize current state
25     g_stm_crr_state = g_stm_prv_state;
26
27         /* Initialize restriction mode state */
28         stm_rem_initialize();
29         stm_rem_initialize_variable();
30
31         // Initialize homecsreen layer
32         stm_hsl_initialize();
33         stm_hsl_initialize_variable();
34
35         // Initialize apps layer
36         stm_apl_initialize();
37         stm_apl_initialize_variable();
38
39         // Initialize near_homecsreen layer
40         stm_nhl_initialize();
41         stm_nhl_initialize_variable();
42
43         /* Initialize restriction layer */
44         stm_rel_initialize();
45         stm_rel_initialize_variable();
46
47         g_stm_map_is_activated = STM_FALSE;
48 }
49
50 /**
51  *  Transition State
52  */
53 int stmTransitionStateInner(int event_id, StmState* state) {
54     g_stm_event    = STM_GET_EVENT_FROM_ID(event_id);
55     g_stm_category = STM_GET_CATEGORY_FROM_ID(event_id);
56     g_stm_area     = STM_GET_AREA_FROM_ID(event_id);
57
58     // restriction mode
59     stm_rem_event_call();
60
61     // homescreen layer
62     stm_hsl_event_call();
63
64     // apps layer
65     stm_apl_event_call();
66
67     // near_homecsreen layer
68     stm_nhl_event_call();
69
70     // restriction layer
71     stm_rel_event_call();
72
73     // on_screen layer
74     stm_osl_event_call();
75
76     // Copy current state for return
77     memcpy(state, &g_stm_crr_state, sizeof(g_stm_crr_state));
78
79     return 0;
80 }
81
82 /**
83  *  Undo State
84  */
85 void stmUndoStateInner() {
86     g_stm_event = StmEvtNoUndo;
87
88     // apps layer
89     stm_apl_event_call();
90
91     // near_homecsreen layer
92     stm_nhl_event_call();
93
94     // restriction layer
95     stm_rel_event_call();
96
97     // on_screen layer
98     stm_osl_event_call();
99
100         g_stm_crr_state = g_stm_prv_state;
101 }
102