예제 #1
0
static PRESULT hddfmt_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT16 title_id;
	POBJECT_HEAD nextObj;

	switch(event)
	{
	case EVN_PRE_OPEN:
		if(hddfmt_window_active)
		{
			hddfmt_window_active= TRUE;
			title_id = RS_STORAGE_FORMAT;
			OSD_SetContainerNextObj(&g_win_hddformat, (POBJECT_HEAD)&hddfmt_item_con1);
		}
		else
		{
			title_id = RS_HDD_NFORMATION;
			hddfmt_window_active = FALSE;
			OSD_SetContainerNextObj(&g_win_hddformat, NULL);
		}			
		hddfmt_vol_init();
		hddfmt_set_vol_string(&hddfmt_item_txtset1);
	
		wincom_open_title(pObj,title_id,0);
		break;
	case EVN_POST_OPEN:
		break;
	case EVN_PRE_CLOSE:
		/* Make OSD not flickering */
		*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;
	case EVN_POST_CLOSE:
		break;
	case EVN_POST_DRAW:
		win_hddfmt_draw_disk_infor();
		break;
    case EVN_MSG_GOT:
        if(param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER)
        {
			storage_dev_mount_hint(1);
			hddfmt_vol_init();
			if(storage_get_volume_count() == 0)
			{
				ret = PROC_LEAVE;
			}
			else if(hddfmt_window_active)
			{
				hddfmt_set_vol_string(&hddfmt_item_txtset1);
				OSD_TrackObject((POBJECT_HEAD)&g_win_hddformat, C_UPDATE_ALL);
				win_hddfmt_draw_disk_infor();
			}
        }
		break;
		
	}

	return ret;
}
예제 #2
0
static void win_atnsetm_load_tuner_configuration(void)
{
	CONTAINER* tuner_item= &atnsetm_item1;
	CONTAINER* win =&g_win_antenna_set_motor;
	CONTAINER* lnb_item = &atnsetm_item2;
	MULTISEL* msel;
	POBJECT_HEAD pObj;

	UINT32 i,tuner_cnt;
	UINT8 action;
	static BOOL bFirstTime = 1;

#ifdef SUPPORT_TWO_TUNER


	msel = anesetm_msels[TUNER_ID - 1];
	tuner_cnt = get_tuner_cnt();

	msel->nCount = tuner_cnt;
	if(antset_cur_tuner >= tuner_cnt)
		antset_cur_tuner = tuner_cnt - 1;
	msel->nSel = antset_cur_tuner;
	
	action = (tuner_cnt == 1)? C_ATTR_INACTIVE : C_ATTR_ACTIVE;
	OSD_SetAttr(tuner_item, action);
	pObj = OSD_GetContainerNextObj(tuner_item);
	while(pObj)
	{
		OSD_SetAttr(pObj , action);
		pObj = OSD_GetObjpNext(pObj);				
	}
	if((C_ATTR_INACTIVE == action)&&(TUNER_ID == OSD_GetContainerFocus(win)))
 		OSD_SetContainerFocus(win, LNB_ID);

	tuner_type_ids[0] = get_tuner_strid(0);
	tuner_type_ids[1] = get_tuner_strid(1);
#else
	if(bFirstTime)
	{
		OSD_SetContainerNextObj(win,lnb_item);
		lnb_item->head.bUpID = tuner_item->head.bUpID;

		pObj = (POBJECT_HEAD)lnb_item;
		OSD_MoveObject(pObj,0, -(CON_H + CON_GAP), TRUE);
		while(pObj->pNext)
		{
			pObj = pObj->pNext;
			OSD_MoveObject(pObj,0, -(CON_H + CON_GAP), TRUE);
		}
		pObj->bDownID = lnb_item->head.bID;
    	OSD_SetContainerFocus(win, LNB_ID);
	}
	bFirstTime = 0;
	
#endif
}
예제 #3
0
static void win_antcnt_load_setting(void)
{
	CONTAINER* win = &g_win_antenna_connect;
	
	SYSTEM_DATA* sys_data;
	MULTISEL* msel;
	static BOOL bFirstTime = 1;

	sys_data = sys_data_get();

	/* Antenna connect */
	msel = antcnt_msels[0];
	if(sys_data->antenna_connect_type >= msel->nCount)
		sys_data->antenna_connect_type  = ANTENNA_CONNECT_SINGLE;
	msel->nSel = sys_data->antenna_connect_type;		
	
	/* LNB1 */
	msel = antcnt_msels[1];	
	if(sys_data->tuner_lnb_type[0] >= msel->nCount)
		sys_data->tuner_lnb_type[0] = LNB_FIXED;
	msel->nSel = sys_data->tuner_lnb_type[0];
		
	/* LNB2 */
	msel = antcnt_msels[2];
	if(sys_data->tuner_lnb_type[1] >= msel->nCount)
		sys_data->tuner_lnb_type[1] = LNB_FIXED;
	msel->nSel = sys_data->tuner_lnb_type[1];	

#ifdef SUPPORT_TWO_TUNER
	win_antcnt_update_lnb12_action(0);
	OSD_SetContainerFocus(win, ANTENNA_CONNECT_ID);
#else
	if(bFirstTime)
	{
		POBJECT_HEAD pObj = (POBJECT_HEAD)&antcnt_item2;
		OSD_MoveObject(pObj,0, -(CON_H + CON_GAP), TRUE);
		
		pObj->bUpID = pObj->bDownID = pObj->bID;
		pObj->pNext = NULL;
		OSD_SetContainerNextObj(win, pObj);
	}
	OSD_SetContainerFocus(win, LNB1_TYPE_ID);
	bFirstTime = 0;
	
#endif

}
예제 #4
0
/*
static void win_operator_IPPV_draw(GUI_RECT* pRect,UINT16 strid)
{
	TEXT_FIELD* txt;
	UINT16 *string;
	
	//index: 0 for title, 1~9 for list item
	txt = &IPPVinfo_title;
	OSD_SetRect2(&txt->head.frame,pRect);
	
	if (txt->pString != NULL)
	{
		txt->pString = NULL;
	}
	OSD_SetTextFieldContent(txt, STRING_ID, (UINT32)strid);
	
	OSD_DrawObject((POBJECT_HEAD)txt, C_UPDATE_ALL);
}

void	win_ippv_draw_title(void)
{
	UINT8 i;

	for (i=0;i<6;i++)
	{
		win_operator_IPPV_draw(&win_ippv_title_rect[i], win_ippv_title_string[i]);
	}
}
*/
static void ippv_txt_info_display(UINT16 info_idx,PCONTAINER pCon)	
{
	UINT8 i,j,date[11];
	UINT16 top,index, curitem,count,strid=0;
	PTEXT_FIELD pTxt;
	OBJLIST *ol = &IPPVinfo_olist;
	PCONTAINER ppcon;
	
	curitem = OSD_GetObjListCurPoint(ol);
	count = OSD_GetObjListCount(ol);
	top  = OSD_GetObjListTop(ol);
	index = top +info_idx -1; //for container index is 1,2,....9

	ppcon = pCon;
	if (count == 0)
	{
		IPPVINFO_PRINT("@@@@ippv_txt_info_display: list count is 0!\n ");
	}
	else if (index<count)
	{
		for(i = 0;i < IPPVINFO_ITEM_TXT_CNT; i++)
		{
			pTxt= IPPVinfo_listtxt[i];
			OSD_SetObjRoot(pTxt,ppcon);
			OSD_SetContainerFocus(ppcon,1);
			OSD_SetObjRect(pTxt, pTxt->head.frame.uLeft, ppcon->head.frame.uTop, pTxt->head.frame.uWidth, pTxt->head.frame.uHeight);
					
			if (i==0)//operator id
			{
				OSD_SetTextFieldContent(pTxt, STRING_NUMBER, (UINT32)current_operator_ID);
				OSD_SetContainerNextObj(ppcon, pTxt);
			}

			if (i==1)//slot id
			{
				OSD_SetTextFieldContent(pTxt, STRING_NUMBER, (UINT32)IPPV_program_info[index].m_bySlotID);
			}
			if (i==2)//prog id
			{
				OSD_SetTextFieldContent(pTxt, STRING_NUMBER, (UINT32)IPPV_program_info[index].m_dwProductID);
			}
			if (i==3)//booking status
			{
				switch(IPPV_program_info[index].m_byBookEdFlag)
				{
					case CDCA_IPPVSTATUS_BOOKING:  // 1 for booking
						strid = 0;
						break;
					case 2: // 2 for expired????? (how to confirm??)
						strid = 0;
						break;
					case CDCA_IPPVSTATUS_VIEWED: // 3 for viewed
						strid = RS_IPPV_STATUS_VIEWED;
						break;
				}
				OSD_SetTextFieldContent(pTxt, STRING_ID, (UINT32)strid);
			}
			if (i==4)//tape
			{
				OSD_SetTextFieldContent(pTxt, STRING_ANSI, (UINT32)((IPPV_program_info[index].m_bCanTape)?"Yes":"No"));
			}
			if (i==5)//price
			{
				OSD_SetTextFieldContent(pTxt, STRING_NUMBER, (UINT32)IPPV_program_info[index].m_wPrice);
			}
			if (i==6)//expired time
			{
				YMD_calculate(IPPV_program_info[index].m_wExpiredDate, date);
				OSD_SetTextFieldContent(pTxt, STRING_ANSI, (UINT32)date);
			}
		}
		
		if ((curitem%9) == (info_idx-1))
			OSD_TrackObject((POBJECT_HEAD)ppcon, C_UPDATE_ALL);
		else
			OSD_DrawObject((POBJECT_HEAD)ppcon, C_UPDATE_ALL);
	}

	else 
	{
		for(i = 0;i < IPPVINFO_ITEM_TXT_CNT; i++)
		{
			pTxt= IPPVinfo_listtxt[i];
			OSD_SetObjRoot(pTxt,ppcon);
			OSD_SetObjRect(pTxt, pTxt->head.frame.uLeft, ppcon->head.frame.uTop, pTxt->head.frame.uWidth, pTxt->head.frame.uHeight);
			if (3==i)
				OSD_SetTextFieldContent(pTxt, STRING_ID, (UINT32)0);
			else
				OSD_SetTextFieldContent(pTxt, STRING_ANSI, (UINT32)"");
		}
	}
}