Ejemplo n.º 1
0
__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;
}
Ejemplo n.º 3
0
__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;
}