示例#1
0
static void win_tpsrch_set_search_param(UINT32 fta_only,UINT32 srch_chan,UINT32 nit_flag)
{
	S_NODE s_node;
	T_NODE t_node;
	struct as_service_param param;
	OBJLIST* ol;
	UINT16 tp_idx;

	struct vdec_device *vdec;
	struct vdec_io_get_frm_para vfrm_param;
	UINT32 addr, len;

	ol = &tplst_olist;
	tp_idx = OSD_GetObjListCurPoint(ol);

	get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node);
	get_tp_at(s_node.sat_id,tp_idx,&t_node);
#ifdef NEW_DEMO_FRAME
	MEMSET(&param, 0, sizeof(struct as_service_param));	
	param.as_frontend_type = FRONTEND_TYPE_S;
	param.as_prog_attr = fta_only |srch_chan;
	param.as_to = 0;
	param.as_sat_cnt = 1;
	param.sat_ids[0] = s_node.sat_id;
	param.as_from = t_node.tp_id;
#else	
	param.as_prog_attr = fta_only |srch_chan;
	param.as_to = 0;
	param.as_sat_id = s_node.sat_id;
	param.as_from = t_node.tp_id;
#endif	
	param.as_method = nit_flag? AS_METHOD_NIT_TP : AS_METHOD_TP;
	param.as_p_add_cfg = PROG_ADD_REPLACE_OLD;
	
	// set param 
	win_search_set_param(&param);

	update_data();
#if 0
	vdec = (struct vdec_device *)dev_get_by_id(HLD_DEV_TYPE_DECV, 0);
	vfrm_param.ufrm_mode = VDEC_UN_DISPLAY;
	vdec_io_control(vdec, VDEC_IO_GET_FRM, (UINT32)&vfrm_param);
	addr = vfrm_param.tFrmInfo.uC_Addr;
	len = (vfrm_param.tFrmInfo.uHeight*vfrm_param.tFrmInfo.uWidth*3)/2;
#else
    addr = __MM_AUTOSCAN_DB_BUFFER_ADDR;
    addr &= 0x8fffffff;
    len = __MM_AUTOSCAN_DB_BUFFER_LEN;
#endif
	db_search_init((UINT8 *)addr, len);

}
示例#2
0
static void win_satsrch_set_search_param(void)
{
	UINT32  search_mode;
	UINT32 prog_type;
	S_NODE s_node;
	struct as_service_param param;
	struct nim_device *nim;
	struct vdec_device *vdec;
	struct vdec_io_get_frm_para vfrm_param;
	UINT32 addr, len;
	UINT32 i;
	//tv/radio/all
	if(SATSRCH_CHAN_IDX==1)
		prog_type = P_SEARCH_TV;
	else if(SATSRCH_CHAN_IDX==2)
		prog_type = P_SEARCH_RADIO;
	else// if(SATSRCH_CHAN_IDX==0)
		prog_type = P_SEARCH_TV|P_SEARCH_RADIO;
	
	/* FTA Only */
	if (SATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA;
	else// if (sSATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA|P_SEARCH_SCRAMBLED;

	param.as_from = AS_FREQ_MIN;
	param.as_to = AS_FREQ_MAX;

	param.as_prog_attr = prog_type|search_mode;
#ifndef NEW_DEMO_FRAME
    if(single_multi_srch_flag == 0)   
    {
	    get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX,&s_node);
        param.as_sat_id = s_node.sat_id;
        if (s_node.lnb_type == LNB_CTRL_22K)
        {
        	param.as_from = 950;
	        param.as_to = 2150;
        }
    }
    else
    {
         param.as_sat_ids = sat_ids;
    }
#else
	param.as_frontend_type = FRONTEND_TYPE; 
	if(single_multi_srch_flag == 0)   
	{
		get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX, &s_node);
		param.sat_ids[0] = s_node.sat_id;
		param.as_sat_cnt = 1;
	}
	else
	{
		param.as_sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);

		// multi-search max satellite number is 256
		if(param.as_sat_cnt > 256)
			param.as_sat_cnt = 256;
		MEMCPY(param.sat_ids, sat_ids, param.as_sat_cnt * sizeof(UINT16));
	}
#endif
#ifdef ORDER_GZ1011001   
	if(SATSRCH_MODE_IDX == 1)
#else
	if(SATSRCH_MODE_IDX == IDX_SCAN_MODE_AUTO_SCAN ||SATSRCH_MODE_IDX == IDX_SCAN_MODE_ACCURATE_SCAN )
#endif
	{
        if(single_multi_srch_flag == 0)        
		    param.as_method = AS_METHOD_FFT;
        else
            param.as_method = AS_METHOD_MULTI_FFT;
	}
	else if (SATSRCH_MODE_IDX == IDX_SCAN_MODE_PRESET_SCAN)
	{
		
		if(single_multi_srch_flag == 0)  
		    param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_SAT_TP : AS_METHOD_NIT;
        else
            param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_MULTI_TP : AS_METHOD_MULTI_NIT;
	}
 	for(i = 0;i < param.as_sat_cnt;i++)
 	{
 		 get_sat_by_id(param.sat_ids[i], &s_node);
	 	 if(s_node.tuner1_valid == 1)
	 	 	{
	 	 	 nim=    (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, 0);
	 	 	}
		 else if(s_node.tuner2_valid == 1)
		 	{
		 	nim=    (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, 1);
		 	}
		 else 
		 	continue;
		 if(SATSRCH_MODE_IDX == IDX_SCAN_MODE_ACCURATE_SCAN)
		 	nim_io_control(nim, NIM_DRIVER_SET_BLSCAN_MODE, 1);
		 else
			nim_io_control(nim, NIM_DRIVER_SET_BLSCAN_MODE, 0);	
	}
	
	param.as_p_add_cfg = PROG_ADD_REPLACE_OLD;
	param.as_handler = NULL;

	// set param 
	win_search_set_param(&param);

	//update_data();
#if 0
	vdec = (struct vdec_device *)dev_get_by_id(HLD_DEV_TYPE_DECV, 0);
	vfrm_param.ufrm_mode = VDEC_UN_DISPLAY;
	vdec_io_control(vdec, VDEC_IO_GET_FRM, (UINT32)&vfrm_param);
	addr = vfrm_param.tFrmInfo.uC_Addr;
	len = (vfrm_param.tFrmInfo.uHeight*vfrm_param.tFrmInfo.uWidth*3)/2;
#else
    addr = __MM_AUTOSCAN_DB_BUFFER_ADDR;
    addr &= 0x8fffffff;
    len = __MM_AUTOSCAN_DB_BUFFER_LEN;
#endif
	db_search_init((UINT8 *)addr, len);

}
示例#3
0
static void win_satsrch_set_search_param(void)
{
	UINT32  search_mode;
	UINT32 prog_type;
	S_NODE s_node;
	struct as_service_param param;

	struct vdec_device *vdec;
	struct vdec_io_get_frm_para vfrm_param;
	UINT32 addr, len;

	UINT32  sat_index = 0 ; /*sky.bi 20101228*/
	UINT32  default_satidx = 0;
	UINT32  temp_value = 0;
//	BOOL   find_flag = false;
	
	//tv/radio/all
	if(SATSRCH_CHAN_IDX==1)
		prog_type = P_SEARCH_TV;
	else if(SATSRCH_CHAN_IDX==2)
		prog_type = P_SEARCH_RADIO;
	else// if(SATSRCH_CHAN_IDX==0)
		prog_type = P_SEARCH_TV|P_SEARCH_RADIO;
	
	/* FTA Only */
	if (SATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA;
	else// if (sSATSRCH_FTA_IDX == 1)
		search_mode = P_SEARCH_FTA|P_SEARCH_SCRAMBLED;

	param.as_from = AS_FREQ_MIN;
	param.as_to = AS_FREQ_MAX;

	param.as_prog_attr = prog_type|search_mode;
#ifndef NEW_DEMO_FRAME
    if(single_multi_srch_flag == 0)   
    {
	    get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX,&s_node);
        param.as_sat_id = s_node.sat_id;
        if (s_node.lnb_type == LNB_CTRL_22K)
        {
        	param.as_from = 950;
	        param.as_to = 2150;
        }
    }
    else
    {
         param.as_sat_ids = sat_ids;
    }
#else
	param.as_frontend_type = FRONTEND_TYPE_S; 
   	if(single_multi_srch_flag == 0)   
    	{
		get_tuner_sat(TUNER_EITHER,SATSRCH_SAT_IDX, &s_node);
		param.sat_ids[0] = s_node.sat_id;
 		param.as_sat_cnt = 1;
   	}
    	else
    	{
        	param.as_sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT);

		/*设置选中的卫星为第一颗卫星 20101228  sky.bi   */
		default_satidx = sys_data_get_cur_satidx();   

		for (sat_index = 0; sat_index < param.as_sat_cnt;++sat_index)
		{
			if (default_satidx > param.as_sat_cnt)    
			{
				break;
			}

			if (sat_ids[default_satidx] == sat_ids[sat_index] )
			{				
				temp_value = sat_ids[0];
				sat_ids[0] = sat_ids[default_satidx];
				sat_ids[default_satidx] = temp_value;

				break;
			}
			
		}
		
		MEMCPY(param.sat_ids, sat_ids, param.as_sat_cnt * sizeof(UINT16));
    	}
#endif
    
	if(SATSRCH_MODE_IDX == 0)
	{
        if(single_multi_srch_flag == 0)        
		    param.as_method = AS_METHOD_FFT;
        else
            param.as_method = AS_METHOD_MULTI_FFT;
	}
	else
	{
		
		if(single_multi_srch_flag == 0)  
		    param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_SAT_TP : AS_METHOD_NIT;
        else
            param.as_method = (SATSRCH_NIT_IDX==0)? AS_METHOD_MULTI_TP : AS_METHOD_MULTI_NIT;
	}
	param.as_p_add_cfg = PROG_ADD_REPLACE_OLD;   /*sky.bi 20101225*/
	param.as_handler = NULL;

	// set param 
	win_search_set_param(&param);

	//update_data();
#if 0
	vdec = (struct vdec_device *)dev_get_by_id(HLD_DEV_TYPE_DECV, 0);
	vfrm_param.ufrm_mode = VDEC_UN_DISPLAY;
	vdec_io_control(vdec, VDEC_IO_GET_FRM, (UINT32)&vfrm_param);
	addr = vfrm_param.tFrmInfo.uC_Addr;
	len = (vfrm_param.tFrmInfo.uHeight*vfrm_param.tFrmInfo.uWidth*3)/2;
#else
    addr = __MM_AUTOSCAN_DB_BUFFER_ADDR;
    addr &= 0x8fffffff;
    len = __MM_AUTOSCAN_DB_BUFFER_LEN;
#endif
	db_search_init((UINT8 *)addr, len);

}