Exemple #1
0
static PRESULT par_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT32 i;
	UINT8	unact;
	CONTAINER* cont = (CONTAINER*)pObj;
	UINT8	id = OSD_GetObjID(pObj);
	SYSTEM_DATA* p_sys_data;

	static UINT32 default_key_exit[] = 
	{
		V_KEY_EXIT,V_KEY_MENU,V_KEY_LEFT,V_KEY_UP,V_KEY_DOWN
	};
	
	switch(event)
	{
	case EVN_PRE_OPEN:
		
		if(win_pwd_open(default_key_exit,ARRAY_SIZE(default_key_exit))==FALSE)
		{
			return PROC_LEAVE;
		}
		wincom_open_subtitle((POBJECT_HEAD)&win_parental_con,RS_SYSTME_PARENTAL_LOCK, 0);
		OSD_ChangeFocus((POBJECT_HEAD)&win_parental_con,MENU_PARENTAL_MENU_LOCK,0);
		p_sys_data=sys_data_get();
		win_par_set_menu_lock_string(p_sys_data->menu_lock);
		win_par_set_channel_lock_string(p_sys_data->channel_lock);
		win_par_switch_confirm(FALSE);
		g_PL_Input_Bit_Number=0;
		g_PL_Input_Status=FALSE;
		win_pl_password_value[0]=0;
		win_pl_password_value[1]=0;
		win_pl_set_password_str(0);
		win_pl_set_password_str(1);
		break;
	
	case EVN_POST_OPEN:
		break;
		
	case EVN_PRE_CLOSE:
		sys_data_save(1);
        *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG;	
		break;

	case EVN_POST_CLOSE:
  		wincom_close_subtitle();
		OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL);
		break;
	}
	return ret;
}
Exemple #2
0
static PRESULT timerset_btn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{	
	PRESULT ret = PROC_PASS;
	UINT8 bID;
	UINT8 back_save;
	
	bID = OSD_GetObjID(pObj);	

	switch(event)
	{
	case EVN_UNKNOWN_ACTION:
		if(bID == TIMER_BTN_OK_ID)
		{
			if(win_timerset_check_and_save() == 0)
			{
#if 0//def DVR_PVR_SUPPORT
				TIMER_SET_CONTENT* timer = &timer_set;
				P_NODE p_node;
				if(get_prog_by_id(timer->wakeup_channel,&p_node) != DB_SUCCES)
					return PROC_PASS;
				if((p_node.lock_flag)
//					&& (timer->timer_mode != TIMER_MODE_OFF) 
					&& (timer->timer_service == TIMER_SERVICE_DVR_RECORD)
					)
				{
					if(!win_pwd_open(NULL,0))
					{
						return PROC_PASS;
					}
				}		
#endif
				timer_set_ok_cancel_flag= 1;				
				ret = PROC_LEAVE;
			}
			else
			{
				win_compopup_init(WIN_POPUP_TYPE_OK);
				win_compopup_set_msg(NULL,NULL,RS_MSG_INVALID_INPUT_CONTINUE);
				win_compopup_open_ext(&back_save);
			}
		}
		else
			ret = PROC_LEAVE;
		
		break;
	}

	return ret;
}
Exemple #3
0
static PRESULT sys_item_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2)
{
	PRESULT ret = PROC_PASS;
	UINT8 id = 0;
	VACTION act;
	OSD_RECT rct;
	SYSTEM_DATA *psys = NULL;
	psys = sys_data_get();
	struct smc_device *smc_dev;
	smc_dev = (struct smc_device *)dev_get_by_id(HLD_DEV_TYPE_SMC, 0);

	rct.uHeight = 130;
	rct.uWidth = 200;
	rct.uLeft = PREVIEW_L + (PREVIEW_W - rct.uWidth) / 2;
	rct.uTop = PREVIEW_T + PREVIEW_H;

	switch (event)
	{
		case EVN_UNKNOWN_ACTION:
			act = (VACTION)(param1 >> 16);
			switch (act)
			{
			case VACT_ITEM_SELECT:
				id = OSD_GetFocusID(pObj);
#ifdef MULTI_CAS
#if(CAS_TYPE== CAS_DVN)
				if(id==WIN_CA_ID&&(!getIsCardIn()))
				{
					win_popup_msg(NULL, NULL, RS_CAERR_NOSMC);
					break;
				}
#elif(CAS_TYPE== CAS_CONAX)
				if((id == WIN_CA_ID) && (smc_card_exist(smc_dev) != SUCCESS))
				{
					break;
				}
#elif(CAS_TYPE== CAS_ABEL)
				if((id == WIN_CA_ID) && (!api_abel_cas_check_card_inited()))
				{
					win_popup_msg(NULL, NULL, RS_CAERR_NOSMC);
					break;
				}				
#endif
#endif
                    if((id == WIN_PWD_ID)||
                        (psys->menu_lock&&(id == WIN_CA_ID || id == WIN_FACT_ID || id == WIN_OTA_ID)))
				{
					if (!win_pwd_open(NULL, 0, &rct))
						break;
				}
				if ((NULL !=items_list[id - 1]) && (OSD_ObjOpen(items_list[id - 1], 0xFFFFFFFF) != PROC_LEAVE))
					menu_stack_push(items_list[id - 1]);
				break;
			default:
				break;
			}
			ret = PROC_LOOP;
			break;
		default:
			break;
	}
	return ret;
}