Add policy of switchng accel pedal status to dummy 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 #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_ACCEL_PEDAL_OFF   0x05
32 #define STM_EVT_NO_ACCEL_PEDAL_ON    0x06
33 #define STM_EVT_NO_CAR_STOP          0x07
34 #define STM_EVT_NO_CAR_RUN           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
39 // Category number
40 #define STM_CTG_NO_HOMESCREEN   0x0100
41 #define STM_CTG_NO_MAP          0x0200
42 #define STM_CTG_NO_GENERAL      0x0300
43 #define STM_CTG_NO_SPLITABLE    0x0400
44 #define STM_CTG_NO_POPUP        0x0500
45 #define STM_CTG_NO_SYSTEM_ALERT 0x0600
46 #define STM_CTG_NO_RESTRICTION  0x0700
47
48 // Area number
49 #define STM_ARA_NO_FULL                   0x010000
50 #define STM_ARA_NO_NORMAL                 0x020000
51 #define STM_ARA_NO_SPLIT_MAIN             0x030000
52 #define STM_ARA_NO_SPLIT_SUB              0x040000
53 #define STM_ARA_NO_ON_SCREEN              0x050000
54 #define STM_ARA_NO_RESTRICTION_NORMAL     0x060000
55 #define STM_ARA_NO_RESTRICTION_SPLIT_MAIN 0x070000
56 #define STM_ARA_NO_RESTRICTION_SPLIT_SUB  0x080000
57
58 // Mask
59 #define STM_MSK_EVT_NO 0x0000FF
60 #define STM_MSK_CTG_NO 0x00FF00
61 #define STM_MSK_ARA_NO 0xFF0000
62
63 // Number of events, categories and areas
64 #define STM_NUM_EVT 11
65 #define STM_NUM_CTG  7
66 #define STM_NUM_ARA  8
67
68 // Enum for state
69 enum stm_parking_brake_state_ {
70     gStmParkingBrakeStateNoOff = 0,
71     gStmParkingBrakeStateNoOn
72 };
73
74 enum stm_accel_pedal_state_ {
75     gStmAccelPedalStateNoOff = 0,
76     gStmAccelPedalStateNoOn
77 };
78
79 enum stm_car_state_ {
80     gStmCarStateNoStop = 0,
81     gStmCarStateNoRun
82 };
83
84 enum stm_lamp_state_ {
85     gStmLampStateNoOff = 0,
86     gStmLampStateNoOn
87 };
88
89 enum stm_layout_ {
90     gStmLayoutNoNone = 0,
91     gStmLayoutNoPu,
92     gStmLayoutNoSa,
93     gStmLayoutNoM1,
94     gStmLayoutNoM2,
95     gStmLayoutNoMf,
96     gStmLayoutNoS1,
97     gStmLayoutNoS2,
98     gStmLayoutNoG,
99     gStmLayoutNoHs,
100     gStmLayoutNoRestriction,
101     gStmLayoutNoRestrictionSplitMain,
102     gStmLayoutNoRestrictionSplitSub,
103 };
104
105
106 extern const char* gStmEventName[];
107 extern const int gStmEventNo[];
108 extern const char* gStmCategoryName[];
109 extern const int gStmCategoryNo[];
110 extern const char* gStmAreaName[];
111 extern const int gStmAreaNo[];
112
113 // String for state
114 extern const char* gStmParkingBrakeStateNo2Name[];
115 extern const char* gStmAccelPedalStateNo2Name[];
116 extern const char* gStmCarStateNo2Name[];
117 extern const char* gStmLampStateNo2Name[];
118 extern const char* gStmLayoutNo2Name[];
119
120 // Struct for state
121 typedef struct stm_base_state_ {
122     int is_changed;
123     int state;
124 } stm_base_state;
125
126 typedef struct stm_layer_state_ {
127     stm_base_state on_screen;
128     stm_base_state restriction;
129     stm_base_state apps;
130     stm_base_state homescreen;
131 } stm_layer_state;
132
133 typedef struct {
134     stm_base_state parking_brake;
135     stm_base_state accel_pedal;
136     stm_base_state car;
137     stm_base_state lamp;
138     stm_layer_state layer;
139 } stm_state_t;
140
141
142 void stmInitialize();
143 int stmTransitionState(int event_no, stm_state_t* state);
144
145
146 #endif  // TMCAGLWM_DUMMY_STM_HPP