Exemplo n.º 1
0
void ap_osd_layer2_init()
{
    UINT8 *p_pallette;
    struct OSDPara tOpenPara;
    struct OSDRect region1, region2, rc1, rc2;

    cas_osd_dev = (struct osd_device*)dev_get_by_id(HLD_DEV_TYPE_OSD, 0);

    tOpenPara.eMode = OSD_256_COLOR;
    tOpenPara.uGAlphaEnable = 0;
    tOpenPara.uGAlpha = 0x0F;
    tOpenPara.uPalletteSel = 0;
    OSDDrv_Open((HANDLE)cas_osd_dev, &tOpenPara);
    osal_task_sleep(20);
    OSDDrv_IoCtl((HANDLE)cas_osd_dev, OSD_IO_SET_TRANS_COLOR, OSD_TRANSPARENT_COLOR);

    //create region  for bottom osd msg
    region2.uLeft = 0;
    region2.uTop = 530;
    region2.uWidth = 720;
    region2.uHeight = 28;
    rc2.uLeft = 0;
    rc2.uTop = 0;
    rc2.uWidth = region2.uWidth;
    rc2.uHeight = region2.uHeight;
    OSDDrv_CreateRegion((HANDLE)cas_osd_dev, OSDMSG_REGION_BTM, &region2, NULL);

    p_pallette = OSD_GetRscPallette(0x4080 | 0);
    OSDDrv_SetPallette((HANDLE)cas_osd_dev, p_pallette, COLOR_N, OSDDRV_YCBCR);
    OSDDrv_RegionFill((HANDLE)cas_osd_dev,OSDMSG_REGION_BTM,&rc2,OSD_TRANSPARENT_COLOR);
    OSDDrv_ShowOnOff((HANDLE)cas_osd_dev,OSDDRV_ON);

}
Exemplo n.º 2
0
void sys_data_set_palette(UINT8 flag)
{
	static UINT8 *pal = NULL;
	UINT8 *pal_data;
	INT32 i;
	UINT8 val;
	struct osd_device *osd_dev;

	if (pal == NULL)
		pal = (UINT8*)MALLOC(COLOR_N *4);
	pal_data = (UINT8*)OSD_GetRscPallette(0x4080 /*LIB_PALLETE_8BPP*/ | system_config.osd_set.pallete);
	switch (system_config.osd_set.osd_trans)
	{
		case 1:
			//"10%",
			val = 1;
			break;
		case 2:
			//"20%",
			val = 2;
			break;
		case 3:
			//"40%",
			val = 3;
			break;
		case 4:
			//"40%",
			val = 4;
			break;
		case 0:
			//  "No"
		default:
			val = 0;
	}
	MEMCPY(pal, pal_data, COLOR_N *4);
	if (!flag)
	{
		for (i = 0; i < COLOR_N; i++)
		{
			pal[4 *i + 3] = pal[4 *i + 3]*(10-val) / 10;
		}
	}
	osd_dev = (struct osd_device*)dev_get_by_id(HLD_DEV_TYPE_OSD, 0);
	OSDDrv_SetPallette((HANDLE)osd_dev, pal, COLOR_N, OSDDRV_YCBCR);
}