Add policy of switching parking brake state to dummy stm for validation
[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_PARKING_BRAKE_OFF 0x03
30 #define STM_EVT_NO_PARKING_BRAKE_ON  0x04
31 #define STM_EVT_NO_CAR_STOP          0x05
32 #define STM_EVT_NO_CAR_RUN           0x06
33 #define STM_EVT_NO_TIMER_EXPIRED     0x07
34 #define STM_EVT_NO_LAMP_OFF          0x08
35 #define STM_EVT_NO_LAMP_ON           0x09
36
37 // Category number
38 #define STM_CTG_NO_HOMESCREEN   0x0100
39 #define STM_CTG_NO_MAP          0x0200
40 #define STM_CTG_NO_GENERAL      0x0300
41 #define STM_CTG_NO_SPLITABLE    0x0400
42 #define STM_CTG_NO_POPUP        0x0500
43 #define STM_CTG_NO_SYSTEM_ALERT 0x0600
44
45 // Area number
46 #define STM_ARA_NO_FULL       0x010000
47 #define STM_ARA_NO_NORMAL     0x020000
48 #define STM_ARA_NO_SPLIT_MAIN 0x030000
49 #define STM_ARA_NO_SPLIT_SUB  0x040000
50 #define STM_ARA_NO_ON_SCREEN  0x050000
51
52 // Mask
53 #define STM_MSK_EVT_NO 0x0000FF
54 #define STM_MSK_CTG_NO 0x00FF00
55 #define STM_MSK_ARA_NO 0xFF0000
56
57 // Number of events, categories and areas
58 #define STM_NUM_EVT 9
59 #define STM_NUM_CTG 6
60 #define STM_NUM_ARA 5
61
62 // Enum for state
63 enum stm_parking_brake_state_ {
64     gStmParkingBrakeStateNoOff = 0,
65     gStmParkingBrakeStateNoOn
66 };
67
68 enum stm_car_state_ {
69     gStmCarStateNoStop = 0,
70     gStmCarStateNoRun
71 };
72
73 enum stm_lamp_state_ {
74     gStmLampStateNoOff = 0,
75     gStmLampStateNoOn
76 };
77
78 enum stm_layout_ {
79     gStmLayoutNoNone = 0,
80     gStmLayoutNoPu,
81     gStmLayoutNoSa,
82     gStmLayoutNoM1,
83     gStmLayoutNoM2,
84     gStmLayoutNoMf,
85     gStmLayoutNoS1,
86     gStmLayoutNoS2,
87     gStmLayoutNoG,
88     gStmLayoutNoHs
89 };
90
91
92 extern const char* gStmEventName[];
93 extern const int gStmEventNo[];
94 extern const char* gStmCategoryName[];
95 extern const int gStmCategoryNo[];
96 extern const char* gStmAreaName[];
97 extern const int gStmAreaNo[];
98
99 // String for state
100 extern const char* gStmParkingBrakeStateNo2Name[];
101 extern const char* gStmCarStateNo2Name[];
102 extern const char* gStmLampStateNo2Name[];
103 extern const char* gStmLayoutNo2Name[];
104
105 // Struct for state
106 typedef struct stm_base_state_ {
107     int is_changed;
108     int state;
109 } stm_base_state;
110
111 typedef struct stm_layer_state_ {
112     stm_base_state on_screen;
113     stm_base_state apps;
114     stm_base_state homescreen;
115 } stm_layer_state;
116
117 typedef struct {
118     stm_base_state parking_brake;
119     stm_base_state car;
120     stm_base_state lamp;
121     stm_layer_state layer;
122 } stm_state_t;
123
124 int stmTransitionState(int event_no, stm_state_t* state);
125
126
127 #endif  // TMCAGLWM_DUMMY_STM_HPP