PolicyManager can judge the current car state
[apps/agl-service-windowmanager.git] / src / policy_manager / zipc / dummy_stm.h
index 18af99b..42c5148 100644 (file)
 #define STM_FALSE 0
 
 // Event number
-#define STM_EVT_NO_ACTIVATE      0x01
-#define STM_EVT_NO_DEACTIVATE    0x02
-#define STM_EVT_NO_CAR_STOP      0x03
-#define STM_EVT_NO_CAR_RUN       0x04
-#define STM_EVT_NO_TIMER_EXPIRED 0x05
-#define STM_EVT_NO_LAMP_OFF      0x06
-#define STM_EVT_NO_LAMP_ON       0x07
+#define STM_EVT_NO_ACTIVATE          0x01
+#define STM_EVT_NO_DEACTIVATE        0x02
+#define STM_EVT_NO_PARKING_BRAKE_OFF 0x03
+#define STM_EVT_NO_PARKING_BRAKE_ON  0x04
+#define STM_EVT_NO_ACCEL_PEDAL_OFF   0x05
+#define STM_EVT_NO_ACCEL_PEDAL_ON    0x06
+#define STM_EVT_NO_TIMER_EXPIRED     0x07
+#define STM_EVT_NO_LAMP_OFF          0x08
+#define STM_EVT_NO_LAMP_ON           0x09
 
 // Category number
 #define STM_CTG_NO_HOMESCREEN   0x0100
 #define STM_CTG_NO_SPLITABLE    0x0400
 #define STM_CTG_NO_POPUP        0x0500
 #define STM_CTG_NO_SYSTEM_ALERT 0x0600
+#define STM_CTG_NO_RESTRICTION  0x0700
 
 // Area number
-#define STM_ARA_NO_FULL       0x010000
-#define STM_ARA_NO_NORMAL     0x020000
-#define STM_ARA_NO_SPLIT_MAIN 0x030000
-#define STM_ARA_NO_SPLIT_SUB  0x040000
-#define STM_ARA_NO_ON_SCREEN  0x050000
+#define STM_ARA_NO_FULL                   0x010000
+#define STM_ARA_NO_NORMAL                 0x020000
+#define STM_ARA_NO_SPLIT_MAIN             0x030000
+#define STM_ARA_NO_SPLIT_SUB              0x040000
+#define STM_ARA_NO_ON_SCREEN              0x050000
+#define STM_ARA_NO_RESTRICTION_NORMAL     0x060000
+#define STM_ARA_NO_RESTRICTION_SPLIT_MAIN 0x070000
+#define STM_ARA_NO_RESTRICTION_SPLIT_SUB  0x080000
 
 // Mask
 #define STM_MSK_EVT_NO 0x0000FF
 #define STM_MSK_CTG_NO 0x00FF00
 #define STM_MSK_ARA_NO 0xFF0000
 
+// Number of events, categories and areas
+#define STM_NUM_EVT  9
+#define STM_NUM_CTG  7
+#define STM_NUM_ARA  8
+
 // Enum for state
+enum stm_parking_brake_state_ {
+    gStmParkingBrakeStateNoOff = 0,
+    gStmParkingBrakeStateNoOn
+};
+
+enum stm_accel_pedal_state_ {
+    gStmAccelPedalStateNoOff = 0,
+    gStmAccelPedalStateNoOn
+};
+
 enum stm_car_state_ {
     gStmCarStateNoStop = 0,
     gStmCarStateNoRun
@@ -73,36 +94,28 @@ enum stm_layout_ {
     gStmLayoutNoS1,
     gStmLayoutNoS2,
     gStmLayoutNoG,
-    gStmLayoutNoHs
+    gStmLayoutNoHs,
+    gStmLayoutNoRestriction,
+    gStmLayoutNoRestrictionSplitMain,
+    gStmLayoutNoRestrictionSplitSub,
 };
 
 
-#if 0
-// String for state
-const char* gStmCarStateNo2Name[] {
-    "car_stop",
-    "car_run"
-};
-
-const char* gStmLampStateNo2Name[] {
-    "lamp_off",
-    "lamp_on"
-};
+extern const char* gStmEventName[];
+extern const int gStmEventNo[];
+extern const char* gStmCategoryName[];
+extern const int gStmCategoryNo[];
+extern const char* gStmAreaName[];
+extern const int gStmAreaNo[];
 
-const char* gStmLayoutNo2Name[] {
-    "none",
-    "pu",
-    "sa",
-    "m1",
-    "m2",
-    "mf",
-    "s1",
-    "s2",
-    "g",
-    "hs",
-};
-#endif
+// String for state
+extern const char* gStmParkingBrakeStateNo2Name[];
+extern const char* gStmAccelPedalStateNo2Name[];
+extern const char* gStmCarStateNo2Name[];
+extern const char* gStmLampStateNo2Name[];
+extern const char* gStmLayoutNo2Name[];
 
+// Struct for state
 typedef struct stm_base_state_ {
     int is_changed;
     int state;
@@ -110,17 +123,21 @@ typedef struct stm_base_state_ {
 
 typedef struct stm_layer_state_ {
     stm_base_state on_screen;
+    stm_base_state restriction;
     stm_base_state apps;
     stm_base_state homescreen;
 } stm_layer_state;
 
-// Struct for state
 typedef struct {
+    stm_base_state parking_brake;
+    stm_base_state accel_pedal;
     stm_base_state car;
     stm_base_state lamp;
     stm_layer_state layer;
 } stm_state_t;
 
+
+void stmInitialize();
 int stmTransitionState(int event_no, stm_state_t* state);