Esempio n. 1
0
/*NIt search callback for update tp*/
static UINT8 as_update_tp(TP_INFO *t_info)
{
    INT32 i;

    if(as_info->param.as_frontend_type==FRONTEND_TYPE_S)
    {
        dvbs_tp_info2db(t_info, &as_info->cur_tp);
		//Check whether Current TP Param is Valid or not
        	if(dvbs_tp_sanity_check(as_info->voltage_ctrl, &as_info->cur_tp, &as_info->cur_sat) == FALSE)
        	{
            		return as_info->stop_scan_signal;
        	}
    	}
    	else if(as_info->param.as_frontend_type == FRONTEND_TYPE_C)
    	{
    		//Copy Input TP Info to Current TP
        	dvbc_tp_info2db(t_info, &as_info->cur_tp);
		//Check whether Current TP Param is Valid or not
        	if(dvbc_tp_sanity_check(FALSE, &as_info->cur_tp, NULL) == FALSE)
        	{
            		return as_info->stop_scan_signal;
        	}
	}

	//Search TP Info in DB. If can't find, then Add this TP Info into DB
    	as_info->cur_tp.sat_id = as_info->cur_sat.sat_id;
    	if(db_search_lookup_node(TYPE_SEARCH_TP_NODE, &as_info->cur_tp) != SUCCESS)
    	{
        	if(add_node(TYPE_SEARCH_TP_NODE, as_info->cur_tp.sat_id, &as_info->cur_tp) == STORE_SPACE_FULL)
        	{
            		return 1;
        	}
    	}

    	AS_DUMP_TP(&as_info->cur_tp);
	//Search Current TP in Waiting Scan TP List, if find, then Return, otherwise Add Current TP 
	//to Waiting Scan TP List
    	for(i = as_info->tp_nr - 1; i >= 0; i--)
    	{
        	if (as_info->tp_id[i] == as_info->cur_tp.tp_id)
        	{
            		return as_info->stop_scan_signal; 
        	}
	}		
    	as_info->tp_id[as_info->tp_nr++] = as_info->cur_tp.tp_id;

	if(as_info->param.as_handler != NULL)
    	{
        	as_info->param.as_handler(ASM_TYPE_INC_TRANSPONDER, 0);
    	}

    	return as_info->stop_scan_signal; 
}
Esempio n. 2
0
static UINT8 as_update_tp(TP_INFO *t_info)
{
    INT32 i;
    T_NODE* tp = &(as_info->xp);

	if(as_info->param.as_frontend_type == FRONTEND_TYPE_C)
	{
//for jilin prj,filter the HD program.      
#ifdef JILIN_FEATURE
            if((t_info->c_info.frequency==72200)
                ||(t_info->c_info.frequency==73000)
                ||(t_info->c_info.frequency==73800))
            {
                libc_printf("\ncur freq:%d\n",t_info->c_info.frequency);
                return as_info->stop_scan_signal;
            }
#endif       
		//Copy Input TP Info to Current TP
    		dvbc_tp_info2db(t_info, &as_info->cur_tp);
	    //Check whether Current TP Param is Valid or not
	    	if(dvbc_tp_sanity_check(FALSE, &as_info->cur_tp, NULL) == FALSE)
	    	{
	        		return as_info->stop_scan_signal;
	    	}
	}
	

	//Search TP Info in DB. If can't find, then Add this TP Info into DB
    	as_info->cur_tp.sat_id = as_info->cur_sat.sat_id;
    	if(db_search_lookup_node(TYPE_SEARCH_TP_NODE, &as_info->cur_tp) != SUCCESS)
    	{
        	if(add_node(TYPE_SEARCH_TP_NODE, as_info->cur_tp.sat_id, &as_info->cur_tp) == STORE_SPACE_FULL)
        	{
            		return 1;
        	}
    	}

    	AS_DUMP_TP(&as_info->cur_tp);
	//Search Current TP in Waiting Scan TP List, if find, then Return, otherwise Add Current TP 
	//to Waiting Scan TP List

    	for(i = as_info->tp_nr - 1; i >= 0; i--)
    	{
        	if (as_info->tp_id[i] == as_info->cur_tp.tp_id && as_info->tp_si[i])
        	{
            		return as_info->stop_scan_signal; 
        	}
	}		


    	as_info->tp_id[as_info->tp_nr++] = as_info->cur_tp.tp_id;
#ifdef NIT_AUTO_SEARCH_SUPPORT// add for auto scan with nit search 
	if(as_info->atp.nit_enable == 1 && as_info->tp_nr > 0)
		b_found_nit_tp = TRUE;
	else 
		b_found_nit_tp = FALSE;
#endif

	if(as_info->param.as_handler != NULL)
    	{
        	as_info->param.as_handler(ASM_TYPE_INC_TRANSPONDER, 0);
    	}

    	return as_info->stop_scan_signal; 
}