X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fpolicy_manager%2Fzipc%2Fdummy_stm.c;h=0b2120adb069047aa0c85d604fbc8f71a19be22d;hb=208368fcc1c61319fa2728d950688523b0557b1f;hp=50efaf37d56bd723ca2fdfce5847348e943fd10b;hpb=cffad8be821cf9226bce993f18a2451fc9fd8646;p=apps%2Fagl-service-windowmanager.git diff --git a/src/policy_manager/zipc/dummy_stm.c b/src/policy_manager/zipc/dummy_stm.c index 50efaf3..0b2120a 100644 --- a/src/policy_manager/zipc/dummy_stm.c +++ b/src/policy_manager/zipc/dummy_stm.c @@ -3,7 +3,6 @@ #include "hmi-debug.h" const char* gStmEventName[] = { - "none", "activate", "deactivate", "trans_gear_neutral", @@ -22,7 +21,6 @@ const char* gStmEventName[] = { }; const int gStmEventNo[] = { - STM_EVT_NO_NONE, STM_EVT_NO_ACTIVATE, STM_EVT_NO_DEACTIVATE, STM_EVT_NO_TRANS_GEAR_N, @@ -41,19 +39,17 @@ const int gStmEventNo[] = { }; const char* gStmCategoryName[] = { - "none", "homescreen", "map", "general", "splitable", - "popup", + "pop_up", "system_alert", "restriction", "system", }; const int gStmCategoryNo[] = { - STM_CTG_NO_NONE, STM_CTG_NO_HOMESCREEN, STM_CTG_NO_MAP, STM_CTG_NO_GENERAL, @@ -70,7 +66,7 @@ const char* gStmAreaName[] = { "normal", "split.main", "split.sub", - "onscreen", + "pop_up", "restriction.normal", "restriction.split.main", "restriction.split.sub", @@ -82,49 +78,49 @@ const int gStmAreaNo[] = { STM_ARA_NO_NORMAL, STM_ARA_NO_SPLIT_MAIN, STM_ARA_NO_SPLIT_SUB, - STM_ARA_NO_ON_SCREEN, + STM_ARA_NO_POP_UP, STM_ARA_NO_RESTRICTION_NORMAL, STM_ARA_NO_RESTRICTION_SPLIT_MAIN, STM_ARA_NO_RESTRICTION_SPLIT_SUB, }; // String for state -const char* gStmTransGearStateNo2Name[] = { - "trans_gear_neutral", - "trans_gear_not_neutral" +const char* gStmTransGearStateName[] = { + "neutral", + "not_neutral" }; -const char* gStmParkingBrakeStateNo2Name[] = { - "parking_brake_off", - "parking_brake_on" +const char* gStmParkingBrakeStateName[] = { + "off", + "on" }; -const char* gStmAccelPedalStateNo2Name[] = { - "accel_pedal_off", - "accel_pedal_on" +const char* gStmAccelPedalStateName[] = { + "off", + "on" }; -const char* gStmRunningNo2Name[] = { - "car_stop", - "car_run" +const char* gStmRunningStateNo2Name[] = { + "stop", + "run" }; -const char* gStmLampStateNo2Name[] = { - "lamp_off", - "lamp_on" +const char* gStmLampStateName[] = { + "off", + "on" }; -const char* gStmLightstatusBrakeStateNo2Name[] = { - "lightstatus_brake_off", - "lightstatus_brake_on" +const char* gStmLightstatusBrakeStateName[] = { + "off", + "on" }; -const char* gStmRestrictionModeStateNo2Name[] = { - "restriction_mode_off", - "restriction_mode_on" +const char* gStmRestrictionModeStateName[] = { + "off", + "on" }; -const char* gStmLayoutNo2Name[] = { +const char* gStmLayoutName[] = { "none", "pu", "sa", @@ -142,7 +138,6 @@ const char* gStmLayoutNo2Name[] = { }; const char* gStmLayerName[] = { - "none", "homescreen", "apps", "restriction", @@ -160,17 +155,18 @@ const char* gStmCarElementName[] = { }; const char** gStmCarStateNameList[] = { - gStmTransGearStateNo2Name, - gStmParkingBrakeStateNo2Name, - gStmAccelPedalStateNo2Name, - gStmRunningNo2Name, - gStmLampStateNo2Name, - gStmLightstatusBrakeStateNo2Name, - gStmRestrictionModeStateNo2Name, + gStmTransGearStateName, + gStmParkingBrakeStateName, + gStmAccelPedalStateName, + gStmRunningStateNo2Name, + gStmLampStateName, + gStmLightstatusBrakeStateName, + gStmRestrictionModeStateName, }; stm_state_t g_crr_state; stm_state_t g_prv_state; +int g_prv_on_screen_state_car_stop = 0; int g_prv_restriction_state_car_stop = 0; int g_prv_apps_state_car_stop = 0; int g_map_is_activated = STM_FALSE; @@ -197,7 +193,7 @@ void stmInitialize() { int stmTransitionState(int event, stm_state_t* state) { int event_no, category_no, area_no; - int restriction_state, apps_state; + int on_screen_state, restriction_state, apps_state; int trans_gear_state, parking_brake_state, lightstatus_brake_state, accel_pedal_state, car_state, lamp_state, restriction_mode_state; event_no = event & STM_MSK_EVT_NO; @@ -208,6 +204,7 @@ int stmTransitionState(int event, stm_state_t* state) { g_prv_state = g_crr_state; // Get previous state + on_screen_state = g_prv_state.layer[gStmLayerNoOnScreen].state; restriction_state = g_prv_state.layer[gStmLayerNoRestriction].state; apps_state = g_prv_state.layer[gStmLayerNoApps].state; trans_gear_state = g_prv_state.car_element[gStmCarElementNoTransGear].state; @@ -219,17 +216,17 @@ int stmTransitionState(int event, stm_state_t* state) { restriction_mode_state = g_prv_state.car_element[gStmCarElementNoRestrictionMode].state; // Clear flags - g_crr_state.layer[gStmLayerNoOnScreen].is_changed = STM_FALSE; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_FALSE; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_FALSE; - g_crr_state.layer[gStmLayerNoHomescreen].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoTransGear].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoParkingBrake].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoLightstatusBrake].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoAccelPedal].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoRunning].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoLamp].is_changed = STM_FALSE; - g_crr_state.car_element[gStmCarElementNoRestrictionMode].is_changed = STM_FALSE; + g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_FALSE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_FALSE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_FALSE; + g_crr_state.layer[gStmLayerNoHomescreen].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoTransGear].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoParkingBrake].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoAccelPedal].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoRunning].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoLamp].changed = STM_FALSE; + g_crr_state.car_element[gStmCarElementNoRestrictionMode].changed = STM_FALSE; // Set car state @@ -237,61 +234,61 @@ int stmTransitionState(int event, stm_state_t* state) { case STM_EVT_NO_TRANS_GEAR_N: if (gStmTransGearStateNoN != trans_gear_state) { g_crr_state.car_element[gStmCarElementNoTransGear].state = gStmTransGearStateNoN; - g_crr_state.car_element[gStmCarElementNoTransGear].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoTransGear].changed = STM_TRUE; } break; case STM_EVT_NO_TRANS_GEAR_NOT_N: if (gStmTransGearStateNoNotN != trans_gear_state) { g_crr_state.car_element[gStmCarElementNoTransGear].state = gStmTransGearStateNoNotN; - g_crr_state.car_element[gStmCarElementNoTransGear].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoTransGear].changed = STM_TRUE; } break; case STM_EVT_NO_PARKING_BRAKE_OFF: if (gStmParkingBrakeStateNoOff != parking_brake_state) { g_crr_state.car_element[gStmCarElementNoParkingBrake].state = gStmParkingBrakeStateNoOff; - g_crr_state.car_element[gStmCarElementNoParkingBrake].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoParkingBrake].changed = STM_TRUE; } break; case STM_EVT_NO_PARKING_BRAKE_ON: if (gStmParkingBrakeStateNoOn != parking_brake_state) { g_crr_state.car_element[gStmCarElementNoParkingBrake].state = gStmParkingBrakeStateNoOn; - g_crr_state.car_element[gStmCarElementNoParkingBrake].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoParkingBrake].changed = STM_TRUE; } break; case STM_EVT_NO_ACCEL_PEDAL_OFF: if (gStmAccelPedalStateNoOff != accel_pedal_state) { g_crr_state.car_element[gStmCarElementNoAccelPedal].state = gStmAccelPedalStateNoOff; - g_crr_state.car_element[gStmCarElementNoAccelPedal].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoAccelPedal].changed = STM_TRUE; } break; case STM_EVT_NO_ACCEL_PEDAL_ON: if (gStmAccelPedalStateNoOn != accel_pedal_state) { g_crr_state.car_element[gStmCarElementNoAccelPedal].state = gStmAccelPedalStateNoOn; - g_crr_state.car_element[gStmCarElementNoAccelPedal].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoAccelPedal].changed = STM_TRUE; } break; case STM_EVT_NO_LAMP_OFF: if (gStmLampStateNoOff != lamp_state) { g_crr_state.car_element[gStmCarElementNoLamp].state = gStmLampStateNoOff; - g_crr_state.car_element[gStmCarElementNoLamp].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoLamp].changed = STM_TRUE; } break; case STM_EVT_NO_LAMP_ON: if (gStmLampStateNoOn != lamp_state) { g_crr_state.car_element[gStmCarElementNoLamp].state = gStmLampStateNoOn; - g_crr_state.car_element[gStmCarElementNoLamp].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoLamp].changed = STM_TRUE; } break; case STM_EVT_NO_LIGHTSTATUS_BRAKE_OFF: if (gStmLightstatusBrakeStateNoOff != lightstatus_brake_state) { g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state = gStmLightstatusBrakeStateNoOff; - g_crr_state.car_element[gStmCarElementNoLightstatusBrake].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed = STM_TRUE; } break; case STM_EVT_NO_LIGHTSTATUS_BRAKE_ON: if (gStmLightstatusBrakeStateNoOn != lightstatus_brake_state) { g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state = gStmLightstatusBrakeStateNoOn; - g_crr_state.car_element[gStmCarElementNoLightstatusBrake].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed = STM_TRUE; } break; default: @@ -300,27 +297,27 @@ int stmTransitionState(int event, stm_state_t* state) { } #if 1 // FOR ALS - if (g_crr_state.car_element[gStmCarElementNoLightstatusBrake].is_changed - || g_crr_state.car_element[gStmCarElementNoAccelPedal].is_changed) { + if (g_crr_state.car_element[gStmCarElementNoLightstatusBrake].changed + || g_crr_state.car_element[gStmCarElementNoAccelPedal].changed) { if ((gStmLightstatusBrakeStateNoOff == g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state) && (gStmAccelPedalStateNoOn == g_crr_state.car_element[gStmCarElementNoAccelPedal].state)){ #else - if (g_crr_state.car_element[gStmCarElementNoParkingBrake].is_changed - || g_crr_state.car_element[gStmCarElementNoTransGear].is_changed) { + if (g_crr_state.car_element[gStmCarElementNoParkingBrake].changed + || g_crr_state.car_element[gStmCarElementNoTransGear].changed) { if ((gStmParkingBrakeStateNoOff == g_crr_state.car_element[gStmCarElementNoParkingBrake].state) && (gStmTransGearStateNoNotN == g_crr_state.car_element[gStmCarElementNoTransGear].state)){ #endif if (gStmRunningNoRun != car_state) { // Car state is changed stop -> run g_crr_state.car_element[gStmCarElementNoRunning].state = gStmRunningNoRun; - g_crr_state.car_element[gStmCarElementNoRunning].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoRunning].changed = STM_TRUE; } } else { if (gStmRunningNoStop != car_state) { // Car state is changed run -> stop g_crr_state.car_element[gStmCarElementNoRunning].state = gStmRunningNoStop; - g_crr_state.car_element[gStmCarElementNoRunning].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoRunning].changed = STM_TRUE; } } } @@ -332,19 +329,24 @@ int stmTransitionState(int event, stm_state_t* state) { // Restriction mode is changed OFF -> ON g_crr_state.car_element[gStmCarElementNoRestrictionMode].state = gStmRestrictionModeStateNoOn; - g_crr_state.car_element[gStmCarElementNoRestrictionMode].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoRestrictionMode].changed = STM_TRUE; + + // Update on screen layer + g_prv_on_screen_state_car_stop = on_screen_state; + g_crr_state.layer[gStmLayerNoOnScreen].state = gStmLayoutNoNone; + g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_TRUE; // Update restriction layer g_prv_restriction_state_car_stop = restriction_state; g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoNone; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; // Update apps layer g_prv_apps_state_car_stop = apps_state; if ((STM_TRUE == g_map_is_activated) && (gStmLayoutNoSystem != apps_state)) { g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM1; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; } } else if ((STM_EVT_NO_RESTRICTION_MODE_OFF == event_no) @@ -353,16 +355,20 @@ int stmTransitionState(int event, stm_state_t* state) { // Restriction mode is changed ON -> OFF g_crr_state.car_element[gStmCarElementNoRestrictionMode].state = gStmRestrictionModeStateNoOff; - g_crr_state.car_element[gStmCarElementNoRestrictionMode].is_changed = STM_TRUE; + g_crr_state.car_element[gStmCarElementNoRestrictionMode].changed = STM_TRUE; + + // Update on screen layer + g_crr_state.layer[gStmLayerNoOnScreen].state = g_prv_on_screen_state_car_stop; + g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_TRUE; // Update restriction layer g_crr_state.layer[gStmLayerNoRestriction].state = g_prv_restriction_state_car_stop; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; // Update apps layer if (STM_TRUE == g_map_is_activated) { g_crr_state.layer[gStmLayerNoApps].state = g_prv_apps_state_car_stop; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; } } @@ -374,12 +380,12 @@ int stmTransitionState(int event, stm_state_t* state) { case STM_CTG_NO_HOMESCREEN: // Homescreen layer g_crr_state.layer[gStmLayerNoHomescreen].state = gStmLayoutNoHs; - g_crr_state.layer[gStmLayerNoHomescreen].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoHomescreen].changed = STM_TRUE; // Apps layer if (gStmLayoutNoNone != apps_state) { g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoNone; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; } break; case STM_CTG_NO_MAP: @@ -392,7 +398,7 @@ int stmTransitionState(int event, stm_state_t* state) { break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoMf; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; } break; @@ -404,11 +410,11 @@ int stmTransitionState(int event, stm_state_t* state) { break; case gStmLayoutNoS1: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM1; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; } break; case STM_ARA_NO_SPLIT_MAIN: @@ -417,7 +423,7 @@ int stmTransitionState(int event, stm_state_t* state) { case gStmLayoutNoS1: case gStmLayoutNoS2: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoS2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; default: // nop @@ -436,7 +442,7 @@ int stmTransitionState(int event, stm_state_t* state) { break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoG; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; } break; @@ -455,7 +461,7 @@ int stmTransitionState(int event, stm_state_t* state) { break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoSystem; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; } break; @@ -471,7 +477,7 @@ int stmTransitionState(int event, stm_state_t* state) { switch (apps_state) { case gStmLayoutNoM1: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; case gStmLayoutNoMf: case gStmLayoutNoS1: @@ -479,7 +485,7 @@ int stmTransitionState(int event, stm_state_t* state) { break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoS1; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; } break; @@ -488,11 +494,11 @@ int stmTransitionState(int event, stm_state_t* state) { switch (apps_state) { case gStmLayoutNoS1: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoS2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; case gStmLayoutNoS2: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoS2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; default: // nop @@ -504,19 +510,19 @@ int stmTransitionState(int event, stm_state_t* state) { switch (apps_state) { case gStmLayoutNoM1: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; case gStmLayoutNoM2: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; case gStmLayoutNoS1: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoS2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; case gStmLayoutNoS2: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoS2; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; default: // nop @@ -548,7 +554,7 @@ int stmTransitionState(int event, stm_state_t* state) { break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoM1; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; } break; } @@ -563,7 +569,7 @@ int stmTransitionState(int event, stm_state_t* state) { break; default: g_crr_state.layer[gStmLayerNoApps].state = gStmLayoutNoSystem; - g_crr_state.layer[gStmLayerNoApps].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoApps].changed = STM_TRUE; break; } break; @@ -597,7 +603,7 @@ int stmTransitionState(int event, stm_state_t* state) { case gStmLayoutNoNone: if (g_crr_state.layer[gStmLayerNoApps].state == gStmLayoutNoS1) { g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoRestriction; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; } break; default: @@ -609,7 +615,7 @@ int stmTransitionState(int event, stm_state_t* state) { switch (restriction_state) { case gStmLayoutNoNone: g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoRestrictionSplitMain; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; break; default: // nop @@ -621,7 +627,7 @@ int stmTransitionState(int event, stm_state_t* state) { case gStmLayoutNoNone: if (g_crr_state.layer[gStmLayerNoApps].state == gStmLayoutNoM2) { g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoRestrictionSplitSub; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; } break; default: @@ -641,7 +647,7 @@ int stmTransitionState(int event, stm_state_t* state) { case gStmLayoutNoRestrictionSplitMain: case gStmLayoutNoRestrictionSplitSub: g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoNone; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; break; default: // nop @@ -649,27 +655,53 @@ int stmTransitionState(int event, stm_state_t* state) { } } } - else if (g_crr_state.layer[gStmLayerNoApps].is_changed) { + else if (g_crr_state.layer[gStmLayerNoApps].changed) { if (gStmLightstatusBrakeStateNoOff == g_crr_state.car_element[gStmCarElementNoLightstatusBrake].state) { if (gStmLayoutNoM2 == g_crr_state.layer[gStmLayerNoApps].state) { g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoRestrictionSplitSub; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; } else if (gStmLayoutNoS1 == g_crr_state.layer[gStmLayerNoApps].state) { g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoRestriction; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; } else { if (gStmLayoutNoNone != g_crr_state.layer[gStmLayerNoRestriction].state) { g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoNone; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; } } } else { if (gStmLayoutNoNone != g_crr_state.layer[gStmLayerNoRestriction].state) { g_crr_state.layer[gStmLayerNoRestriction].state = gStmLayoutNoNone; - g_crr_state.layer[gStmLayerNoRestriction].is_changed = STM_TRUE; + g_crr_state.layer[gStmLayerNoRestriction].changed = STM_TRUE; + } + } + } + + // Set on screen layer + if (STM_CTG_NO_POPUP == category_no) { + if (STM_EVT_NO_ACTIVATE == event_no) { + switch (on_screen_state) { + case gStmLayoutNoNone: + g_crr_state.layer[gStmLayerNoOnScreen].state = gStmLayoutNoPu; + g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_TRUE; + break; + default: + // nop + break; + } + } + else if (STM_EVT_NO_DEACTIVATE == event_no) { + switch (on_screen_state) { + case gStmLayoutNoPu: + g_crr_state.layer[gStmLayerNoOnScreen].state = gStmLayoutNoNone; + g_crr_state.layer[gStmLayerNoOnScreen].changed = STM_TRUE; + break; + default: + // nop + break; } } } @@ -678,7 +710,7 @@ int stmTransitionState(int event, stm_state_t* state) { memcpy(state, &g_crr_state, sizeof(g_crr_state)); if ((STM_FALSE == g_map_is_activated) - && (STM_TRUE == g_crr_state.layer[gStmLayerNoApps].is_changed) + && (STM_TRUE == g_crr_state.layer[gStmLayerNoApps].changed) && ((gStmLayoutNoM1 == g_crr_state.layer[gStmLayerNoApps].state) || (gStmLayoutNoM2 == g_crr_state.layer[gStmLayerNoApps].state) || (gStmLayoutNoMf == g_crr_state.layer[gStmLayerNoApps].state))) {