Modify definition in stm
[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 // TODO: This file should be existed in STM
21
22 //
23 #define STM_TRUE 1
24 #define STM_FALSE 0
25
26 // Event number
27 enum STM_EVT_NO {
28     STM_EVT_NO_NONE = 0,
29     STM_EVT_NO_ACTIVATE,
30     STM_EVT_NO_DEACTIVATE,
31     STM_EVT_NO_TRANS_GEAR_N,
32     STM_EVT_NO_TRANS_GEAR_NOT_N,
33     STM_EVT_NO_PARKING_BRAKE_OFF,
34     STM_EVT_NO_PARKING_BRAKE_ON,
35     STM_EVT_NO_ACCEL_PEDAL_OFF,
36     STM_EVT_NO_ACCEL_PEDAL_ON,
37     STM_EVT_NO_TIMER_EXPIRED,
38     STM_EVT_NO_LAMP_OFF,
39     STM_EVT_NO_LAMP_ON,
40     STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF,
41     STM_EVT_NO_LIGHTSTATUS_BRAKE_ON,
42     STM_EVT_NO_RESTRICTION_MODE_OFF,
43     STM_EVT_NO_RESTRICTION_MODE_ON,
44
45     STM_EVT_NO_NUM,
46
47     STM_EVT_NO_MIN = STM_EVT_NO_NONE,
48     STM_EVT_NO_MAX = STM_EVT_NO_NUM - 1,
49 };
50
51 // Category number
52 enum STM_CTG_NO {
53     STM_CTG_NO_NONE = 0,
54     STM_CTG_NO_HOMESCREEN,
55     STM_CTG_NO_MAP,
56     STM_CTG_NO_GENERAL,
57     STM_CTG_NO_SPLITABLE,
58     STM_CTG_NO_POPUP,
59     STM_CTG_NO_SYSTEM_ALERT,
60     STM_CTG_NO_RESTRICTION,
61     STM_CTG_NO_SYSTEM,
62
63     STM_CTG_NO_NUM,
64
65     STM_CTG_NO_MIN = STM_CTG_NO_NONE,
66     STM_CTG_NO_MAX = STM_CTG_NO_NUM - 1,
67 };
68
69 // Area number
70 enum STM_AREA_NO {
71     STM_AREA_NO_NONE = 0,
72     STM_AREA_NO_FULL,
73     STM_AREA_NO_NORMAL,
74     STM_AREA_NO_SPLIT_MAIN,
75     STM_AREA_NO_SPLIT_SUB,
76     STM_AREA_NO_POP_UP,
77     STM_AREA_NO_RESTRICTION_NORMAL,
78     STM_AREA_NO_RESTRICTION_SPLIT_MAIN,
79     STM_AREA_NO_RESTRICTION_SPLIT_SUB,
80
81     STM_AREA_NO_NUM,
82
83     STM_AREA_NO_MIN = STM_AREA_NO_NONE,
84     STM_AREA_NO_MAX = STM_AREA_NO_NUM - 1,
85 };
86
87 #define CREATE_EVENT_ID(evt, ctg, area) \
88     ((evt) | ((ctg) << 8) | ((area) << 16))
89
90 #define GET_EVENT_FROM_ID(id) \
91     ((id) & 0xFF)
92
93 #define GET_CATEGORY_FROM_ID(id) \
94     (((id) >> 8) & 0xFF)
95
96 #define GET_AREA_FROM_ID(id) \
97     (((id) >> 16) & 0xFF)
98
99 // Enum for state
100 enum stm_trans_gear_state_ {
101     gStmTransGearStateNoN = 0,
102     gStmTransGearStateNoNotN
103 };
104
105 enum stm_parking_brake_state_ {
106     gStmParkingBrakeStateNoOff = 0,
107     gStmParkingBrakeStateNoOn
108 };
109
110 enum stm_accel_pedal_state_ {
111     gStmAccelPedalStateNoOff = 0,
112     gStmAccelPedalStateNoOn
113 };
114
115 enum stm_car_state_ {
116     gStmRunningNoStop = 0,
117     gStmRunningNoRun
118 };
119
120 enum stm_lamp_state_ {
121     gStmLampStateNoOff = 0,
122     gStmLampStateNoOn
123 };
124
125 enum stm_lightstatus_brake_state_ {
126     gStmLightstatusBrakeStateNoOff = 0,
127     gStmLightstatusBrakeStateNoOn
128 };
129
130 enum stm_restriction_mode_state_ {
131     gStmRestrictionModeStateNoOff = 0,
132     gStmRestrictionModeStateNoOn
133 };
134
135 enum stm_layout_ {
136     gStmLayoutNoNone = 0,
137     gStmLayoutNoPopUp,
138     gStmLayoutNoSysAlt,
139     gStmLayoutNoMapNml,
140     gStmLayoutNoMapSpl,
141     gStmLayoutNoMapFll,
142     gStmLayoutNoSplNml,
143     gStmLayoutNoSplSpl,
144     gStmLayoutNoGenNml,
145     gStmLayoutNoHms,
146     gStmLayoutNoRstNml,
147     gStmLayoutNoRstSplMain,
148     gStmLayoutNoRstSplSub,
149     gStmLayoutNoSysNml,
150
151     gStmLayoutNoNum,
152
153     gStmLayoutNoMin = gStmLayoutNoNone,
154     gStmLayoutNoMax = gStmLayoutNoNum - 1,
155 };
156
157 enum stm_layer_ {
158     gStmLayerNoHomescreen = 0,
159     gStmLayerNoApps,
160     gStmLayerNoRestriction,
161     gStmLayerNoOnScreen,
162
163     gStmLayerNoNum,
164
165     gStmLayerNoMin = gStmLayerNoHomescreen,
166     gStmLayerNoMax = gStmLayerNoNum - 1,
167 };
168
169 enum stm_car_element_ {
170     gStmCarElementNoTransGear = 0,
171     gStmCarElementNoParkingBrake,
172     gStmCarElementNoAccelPedal,
173     gStmCarElementNoRunning,
174     gStmCarElementNoLamp,
175     gStmCarElementNoLightstatusBrake,
176     gStmCarElementNoRestrictionMode,
177
178     gStmCarElementNoNum,
179
180     gStmCarElementNoMin = gStmCarElementNoTransGear,
181     gStmCarElementNoMax = gStmCarElementNoNum - 1,
182 };
183
184 // String for state
185 extern const char* gStmEventName[];
186 extern const char* gStmCategoryName[];
187 extern const char* gStmAreaName[];
188 extern const char* gStmLayoutName[];
189 extern const char* gStmLayerName[];
190 extern const char* gStmCarElementName[];
191 extern const char** gStmCarStateNameList[];
192
193 // Struct for state
194 typedef struct stm_base_state_ {
195     int changed;
196     int state;
197 } stm_base_state;
198
199 typedef struct {
200     stm_base_state car_element[gStmCarElementNoNum];
201     stm_base_state layer[gStmLayerNoNum];
202 } stm_state_t;
203
204
205 void stmInitialize();
206 int stmTransitionState(int event_no, stm_state_t* state);
207 void stmUndoState();
208
209 #endif  // TMCAGLWM_DUMMY_STM_HPP