Modify API of PolicyManager
[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 #define STM_EVT_NO_ACTIVATE              0x01
28 #define STM_EVT_NO_DEACTIVATE            0x02
29 #define STM_EVT_NO_TRANS_GEAR_N          0x03
30 #define STM_EVT_NO_TRANS_GEAR_NOT_N      0x04
31 #define STM_EVT_NO_PARKING_BRAKE_OFF     0x05
32 #define STM_EVT_NO_PARKING_BRAKE_ON      0x06
33 #define STM_EVT_NO_ACCEL_PEDAL_OFF       0x07
34 #define STM_EVT_NO_ACCEL_PEDAL_ON        0x08
35 #define STM_EVT_NO_TIMER_EXPIRED         0x09
36 #define STM_EVT_NO_LAMP_OFF              0x0A
37 #define STM_EVT_NO_LAMP_ON               0x0B
38 #define STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF 0x0C
39 #define STM_EVT_NO_LIGHTSTATUS_BRAKE_ON  0x0D
40 #define STM_EVT_NO_RESTRICTION_MODE_OFF  0x0E
41 #define STM_EVT_NO_RESTRICTION_MODE_ON   0x0F
42
43 // Category number
44 #define STM_CTG_NO_NONE         0x0100
45 #define STM_CTG_NO_HOMESCREEN   0x0200
46 #define STM_CTG_NO_MAP          0x0300
47 #define STM_CTG_NO_GENERAL      0x0400
48 #define STM_CTG_NO_SPLITABLE    0x0500
49 #define STM_CTG_NO_POPUP        0x0600
50 #define STM_CTG_NO_SYSTEM_ALERT 0x0700
51 #define STM_CTG_NO_RESTRICTION  0x0800
52
53 // Area number
54 #define STM_ARA_NO_FULL                   0x010000
55 #define STM_ARA_NO_NORMAL                 0x020000
56 #define STM_ARA_NO_SPLIT_MAIN             0x030000
57 #define STM_ARA_NO_SPLIT_SUB              0x040000
58 #define STM_ARA_NO_ON_SCREEN              0x050000
59 #define STM_ARA_NO_RESTRICTION_NORMAL     0x060000
60 #define STM_ARA_NO_RESTRICTION_SPLIT_MAIN 0x070000
61 #define STM_ARA_NO_RESTRICTION_SPLIT_SUB  0x080000
62
63 // Mask
64 #define STM_MSK_EVT_NO 0x0000FF
65 #define STM_MSK_CTG_NO 0x00FF00
66 #define STM_MSK_ARA_NO 0xFF0000
67
68 // Number of events, categories and areas
69 #define STM_NUM_EVT 15
70 //#define STM_NUM_CTG  7
71 #define STM_NUM_ARA  8
72
73 // Enum for state
74 enum stm_trans_gear_state_ {
75     gStmTransGearStateNoN = 0,
76     gStmTransGearStateNoNotN
77 };
78
79 enum stm_parking_brake_state_ {
80     gStmParkingBrakeStateNoOff = 0,
81     gStmParkingBrakeStateNoOn
82 };
83
84 enum stm_accel_pedal_state_ {
85     gStmAccelPedalStateNoOff = 0,
86     gStmAccelPedalStateNoOn
87 };
88
89 enum stm_car_state_ {
90     gStmCarStateNoStop = 0,
91     gStmCarStateNoRun
92 };
93
94 enum stm_lamp_state_ {
95     gStmLampStateNoOff = 0,
96     gStmLampStateNoOn
97 };
98
99 enum stm_lightstatus_brake_state_ {
100     gStmLightstatusBrakeStateNoOff = 0,
101     gStmLightstatusBrakeStateNoOn
102 };
103
104 enum stm_restriction_mode_state_ {
105     gStmRestrictionModeStateNoOff = 0,
106     gStmRestrictionModeStateNoOn
107 };
108
109 enum stm_layout_ {
110     gStmLayoutNoNone = 0,
111     gStmLayoutNoPu,
112     gStmLayoutNoSa,
113     gStmLayoutNoM1,
114     gStmLayoutNoM2,
115     gStmLayoutNoMf,
116     gStmLayoutNoS1,
117     gStmLayoutNoS2,
118     gStmLayoutNoG,
119     gStmLayoutNoHs,
120     gStmLayoutNoRestriction,
121     gStmLayoutNoRestrictionSplitMain,
122     gStmLayoutNoRestrictionSplitSub,
123 };
124
125 enum stm_category_ {
126     gStmCategoryNoNone = 0,
127     gStmCategoryNoHomescreen,
128     gStmCategoryNoMap,
129     gStmCategoryNoGeneral,
130     gStmCategoryNoSplitable,
131     gStmCategoryNoPopup,
132     gStmCategoryNoSystemAlert,
133     gStmCategoryNoRestriction,
134
135     gStmCategoryNoNum,
136
137     gStmCategoryNoMin = gStmCategoryNoNone,
138     gStmCategoryNoMax = gStmCategoryNoNum - 1,
139 };
140
141 enum stm_layer_ {
142     gStmLayerNoNone = 0,
143     gStmLayerNoHomescreen,
144     gStmLayerNoApps,
145     gStmLayerNoRestriction,
146     gStmLayerNoOnScreen,
147
148     gStmLayerNoNum,
149
150     gStmLayerNoMin = gStmLayerNoNone,
151     gStmLayerNoMax = gStmLayerNoNum - 1,
152 };
153
154 extern const char* gStmEventName[];
155 extern const int gStmEventNo[];
156 extern const char* gStmCategoryName[];
157 extern const int gStmCategoryNo[];
158 extern const char* gStmAreaName[];
159 extern const int gStmAreaNo[];
160 extern const char* gStmLayerName[];
161
162 // String for state
163 extern const char* gStmParkingBrakeStateNo2Name[];
164 extern const char* gStmAccelPedalStateNo2Name[];
165 extern const char* gStmCarStateNo2Name[];
166 extern const char* gStmLampStateNo2Name[];
167 extern const char* gStmLayoutNo2Name[];
168 extern const char* gStmLightstatusBrakeStateNo2Name[];
169 extern const char* gStmRestrictionModeStateNo2Name[];
170
171 // Struct for state
172 typedef struct stm_base_state_ {
173     int is_changed;
174     int state;
175 } stm_base_state;
176
177 typedef struct stm_layer_state_ {
178     stm_base_state on_screen;
179     stm_base_state restriction;
180     stm_base_state apps;
181     stm_base_state homescreen;
182 } stm_layer_state;
183
184 typedef struct {
185     stm_base_state trans_gear;
186     stm_base_state parking_brake;
187     stm_base_state accel_pedal;
188     stm_base_state car;
189     stm_base_state lamp;
190     stm_base_state lightstatus_brake;
191     stm_base_state restriction_mode;
192     stm_base_state layer[gStmLayerNoNum];
193 //    stm_layer_state layer;
194 } stm_state_t;
195
196
197 void stmInitialize();
198 int stmTransitionState(int event_no, stm_state_t* state);
199 void stmUndoState();
200
201
202 #endif  // TMCAGLWM_DUMMY_STM_HPP