__s32 BSP_disp_layer_set_bottom(__u32 sel, __u32 hid) { __s32 i,j; __u32 layer_prio[4]; hid = HANDTOID(hid); HLID_ASSERT(hid, gdisp.screen[sel].max_layers); if(gdisp.screen[sel].layer_manage[hid].status & LAYER_USED) { __u32 prio = 0; for(i=0; i<gdisp.screen[sel].max_layers; i++) { layer_prio[i] = gdisp.screen[sel].layer_manage[i].para.prio; } layer_prio[hid] = prio++; for(j=0; j<gdisp.screen[sel].max_layers; j++)//for every prio from low to high { for(i=0; i<gdisp.screen[sel].max_layers; i++)//for every layer that prio is j { if((gdisp.screen[sel].layer_manage[i].status & LAYER_USED) && (i != hid) && (gdisp.screen[sel].layer_manage[i].para.prio == j)) { layer_prio[i] = prio++; } } } for(i=0;i<gdisp.screen[sel].max_layers;i++) { if(gdisp.screen[sel].layer_manage[i].status & LAYER_USED) { DE_BE_Layer_Set_Prio(sel, i, layer_prio[i]); gdisp.screen[sel].layer_manage[i].para.prio = layer_prio[i]; } } } else { return DIS_OBJ_NOT_INITED; } return DIS_SUCCESS; }
__s32 BSP_disp_layer_set_top(__u32 sel, __u32 hid) { __s32 i, j; __u32 layer_prio[4]; hid = HANDTOID(hid); HLID_ASSERT(hid, gdisp.screen[sel].max_layers); if (gdisp.screen[sel].layer_manage[hid].status & LAYER_USED) { __u32 prio = gdisp.screen[sel].max_layers - 1; for (i = 0; i < gdisp.screen[sel].max_layers; i++) layer_prio[i] = gdisp.screen[sel].layer_manage[i].para.prio; layer_prio[hid] = prio--; for (j = gdisp.screen[sel].max_layers - 1; j >= 0; j--) { for (i = 0; i < gdisp.screen[sel].max_layers; i++) { if ((gdisp.screen[sel].layer_manage[i].status & LAYER_USED) && (i != hid) && (gdisp.screen[sel].layer_manage[i].para.prio == j)) layer_prio[i] = prio--; } } for (i = 0; i < gdisp.screen[sel].max_layers; i++) { if (gdisp.screen[sel].layer_manage[i].status & LAYER_USED) { DE_BE_Layer_Set_Prio(sel, i, layer_prio[i]); gdisp.screen[sel].layer_manage[i].para.prio = layer_prio[i]; } } } else { return DIS_OBJ_NOT_INITED; } return DIS_SUCCESS; }
__s32 bsp_disp_layer_set_top(__u32 screen_id, __u32 hid) { __s32 i,j; __u32 layer_prio[4]; hid = HANDTOID(hid); HLID_ASSERT(hid, gdisp.screen[screen_id].max_layers); if(gdisp.screen[screen_id].layer_manage[hid].status & LAYER_USED) { __u32 prio = gdisp.screen[screen_id].max_layers-1; for(i=0; i<gdisp.screen[screen_id].max_layers; i++) { layer_prio[i] = gdisp.screen[screen_id].layer_manage[i].para.prio; } layer_prio[hid] = prio--; /* for every prio from high to low */ for(j=gdisp.screen[screen_id].max_layers-1; j>=0; j--) { /* for every layer_prio that prio is j */ for(i=0; i<gdisp.screen[screen_id].max_layers; i++) { if((gdisp.screen[screen_id].layer_manage[i].status & LAYER_USED) && (i != hid) && (gdisp.screen[screen_id].layer_manage[i].para.prio == j)) { layer_prio[i] = prio--; } } } for(i=0;i<gdisp.screen[screen_id].max_layers;i++) { if(gdisp.screen[screen_id].layer_manage[i].status & LAYER_USED) { DE_BE_Layer_Set_Prio(screen_id, i, layer_prio[i]); gdisp.screen[screen_id].layer_manage[i].para.prio = layer_prio[i]; } } } else { return DIS_OBJ_NOT_INITED; } return DIS_SUCCESS; }