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(¶m, 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(¶m); 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); }
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(¶m); //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); }
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(¶m); //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); }