Move global variable to PolicyManager member
[apps/agl-service-windowmanager.git] / src / policy_manager / zipc / dummy_stm.h
1 /*
2  * Copyright (c) 2018 TOYOTA MOTOR CORPORATION
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef TMCAGLWM_DUMMY_STM_HPP
18 #define TMCAGLWM_DUMMY_STM_HPP
19
20
21 #define STM_TRUE 1
22 #define STM_FALSE 0
23
24 #define STM_CREATE_EVENT_ID(evt, ctg, area) \
25     ((evt) | ((ctg) << 8) | ((area) << 16))
26
27 #define STM_GET_EVENT_FROM_ID(id) \
28     ((id) & 0xFF)
29
30 #define STM_GET_CATEGORY_FROM_ID(id) \
31     (((id) >> 8) & 0xFF)
32
33 #define STM_GET_AREA_FROM_ID(id) \
34     (((id) >> 16) & 0xFF)
35
36 // Event number
37 enum StmEvtNo {
38     StmEvtNoNone = 0,
39     StmEvtNoActivate,
40     StmEvtNoDeactivate,
41     StmEvtNoTransGearN,
42     StmEvtNoTransGearNotN,
43     StmEvtNoParkingBrakeOff,
44     StmEvtNoParkingBrakeOn,
45     StmEvtNoAccelPedalOff,
46     StmEvtNoAccelPedalOn,
47     StmEvtNoLampOff,
48     StmEvtNoLampOn,
49     StmEvtNoLightstatusBrakeOff,
50     StmEvtNoLightstatusBrakeOn,
51     StmEvtNoRestrictionModeOff,
52     StmEvtNoRestrictionModeOn,
53
54     StmEvtNoNum,
55
56     StmEvtNoMin = StmEvtNoNone,
57     StmEvtNoMax = StmEvtNoNum - 1,
58 };
59
60 // Category number
61 enum StmCtgNo {
62     StmCtgNoNone = 0,
63     StmCtgNoHomescreen,
64     StmCtgNoMap,
65     StmCtgNoGeneral,
66     StmCtgNoSplitable,
67     StmCtgNoPopUp,
68     StmCtgNoSystemAlert,
69     StmCtgNoRestriction,
70     StmCtgNoSystem,
71
72     StmCtgNoNum,
73
74     StmCtgNoMin = StmCtgNoNone,
75     StmCtgNoMax = StmCtgNoNum - 1,
76 };
77
78 // Area number
79 enum StmAreaNo {
80     StmAreaNoNone = 0,
81     StmAreaNoFullscreen,
82     StmAreaNoNormal,
83     StmAreaNoSplitMain,
84     StmAreaNoSplitSub,
85     StmAreaNoPopUp,
86     StmAreaNoRestrictionNormal,
87     StmAreaNoRestrictionSplitMain,
88     StmAreaNoRestrictionSplitSub,
89
90     StmAreaNoNum,
91
92     StmAreaNoMin = StmAreaNoNone,
93     StmAreaNoMax = StmAreaNoNum - 1,
94 };
95
96 // Layer number
97 enum StmLayerNo {
98     StmLayerNoHomescreen = 0,
99     StmLayerNoApps,
100     StmLayerNoRestriction,
101     StmLayerNoOnScreen,
102
103     StmLayerNoNum,
104
105     StmLayerNoMin = StmLayerNoHomescreen,
106     StmLayerNoMax = StmLayerNoNum - 1,
107 };
108
109 // Layout number
110 enum StmLayoutNo {
111     StmLayoutNoNone = 0,
112     StmLayoutNoPopUp,
113     StmLayoutNoSysAlt,
114     StmLayoutNoMapNml,
115     StmLayoutNoMapSpl,
116     StmLayoutNoMapFll,
117     StmLayoutNoSplNml,
118     StmLayoutNoSplSpl,
119     StmLayoutNoGenNml,
120     StmLayoutNoHms,
121     StmLayoutNoRstNml,
122     StmLayoutNoRstSplMain,
123     StmLayoutNoRstSplSub,
124     StmLayoutNoSysNml,
125
126     StmLayoutNoNum,
127
128     StmLayoutNoMin = StmLayoutNoNone,
129     StmLayoutNoMax = StmLayoutNoNum - 1,
130 };
131
132 // Car element number
133 enum StmCarElementNo {
134     StmCarElementNoTransGear = 0,
135     StmCarElementNoParkingBrake,
136     StmCarElementNoAccelPedal,
137     StmCarElementNoRunning,
138     StmCarElementNoLamp,
139     StmCarElementNoLightstatusBrake,
140     StmCarElementNoRestrictionMode,
141
142     StmCarElementNoNum,
143
144     StmCarElementNoMin = StmCarElementNoTransGear,
145     StmCarElementNoMax = StmCarElementNoNum - 1,
146 };
147
148 // Enum for car element state
149 enum StmTransGearStt {
150     StmTransGearSttNoN = 0,
151     StmTransGearSttNoNotN
152 };
153
154 enum StmParkingBrakeStt {
155     StmParkingBrakeSttNoOff = 0,
156     StmParkingBrakeSttNoOn
157 };
158
159 enum StmAccelPedalStt {
160     StmAccelPedalSttNoOff = 0,
161     StmAccelPedalSttNoOn
162 };
163
164 enum StmCarStt {
165     StmRunningNoStop = 0,
166     StmRunningNoRun
167 };
168
169 enum StmLampStt {
170     StmLampSttNoOff = 0,
171     StmLampSttNoOn
172 };
173
174 enum StmLightstatusBrakeStt {
175     StmLightstatusBrakeSttNoOff = 0,
176     StmLightstatusBrakeSttNoOn
177 };
178
179 enum StmRestrictionModeSttNo {
180     StmRestrictionModeSttNoOff = 0,
181     StmRestrictionModeSttNoOn
182 };
183
184 // String for state
185 extern const char* kStmEventName[];
186 extern const char* kStmCategoryName[];
187 extern const char* kStmAreaName[];
188 extern const char* kStmLayoutName[];
189 extern const char* kStmLayerName[];
190 extern const char* kStmCarElementName[];
191 extern const char** kStmCarStateNameList[];
192
193 // Struct for state
194 typedef struct StmBaseState {
195     int changed;
196     int state;
197 } StmBaseState;
198
199 typedef struct StmState {
200     StmBaseState car_element[StmCarElementNoNum];
201     StmBaseState layer[StmLayerNoNum];
202 } StmState;
203
204 #if 0
205 struct stm_state_t {
206     stm_base_state car_element[gStmCarElementNoNum];
207     stm_base_state layer[gStmLayerNoNum];
208 };
209 typedef struct stm_state_t stm_state_t;
210 #endif
211
212 // API
213 void stmInitialize();
214 int stmTransitionState(int event_no, StmState* state);
215 void stmUndoState();
216
217
218 #endif  // TMCAGLWM_DUMMY_STM_HPP