static UINT32 as_nim_tuning(struct as_module_info *info, T_NODE *tp) { #if (SYS_PROJECT_FE == PROJECT_FE_DVBS||SYS_PROJECT_FE == PROJECT_FE_DVBS2) struct cc_xpond_info *xponder = &info->xponder; struct cc_antenna_info *antenna = &info->antenna; xponder->frq = tp->frq; xponder->sym = tp->sym; xponder->pol = info->polar = tp->pol; if (antenna->pol != LNB_POL_POFF) antenna->pol = info->polar+1; set_antenna(antenna); set_xpond(xponder); /* for low symbol rate detection */ return (AS_TUNE_TIMEOUT*5); #elif (SYS_PROJECT_FE == PROJECT_FE_DVBC) nim_channel_change(info->nim, tp->frq, tp->sym, tp->FEC_inner); return AS_TUNE_TIMEOUT; #endif }
static void win_tplist_tuner_frontend(void) { S_NODE s_node; T_NODE t_node; #ifdef NEW_DEMO_FRAME struct ft_antenna antenna; union ft_xpond xpond_info; struct nim_device *nim = NULL; #else struct cc_antenna_info antenna; struct cc_xpond_info xpond_info; #endif OBJLIST* ol; UINT32 tp_idx; UINT16 pre_sat_id,cur_sat_id; UINT8 back_saved; BOOL old_get_key; nim_io_control(g_nim_dev, NIM_DRIVER_STOP_CHANSCAN, 0); ap_set_key_notify_proc(win_tplist_key_notify_proc); old_get_key = ap_enable_key_task_get_key(TRUE); win_signal_set_level_quality(0, 0, 0); win_signal_update(); OSD_UpdateVscr(OSD_GetTaskVscr(osal_task_get_current_id())); 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 SUPPORT_TWO_TUNER #ifdef SUPPORT_SELECT_SAME_SAT cur_tuner_idx = s_node.reserve_1; //antset_cur_tuner;//s_node.tuner1_valid? 0 : 1; #else cur_tuner_idx = s_node.tuner1_valid? 0 : 1; #endif #endif #ifndef NEW_DEMO_FRAME struct cc_antenna_info antenna; struct cc_xpond_info xpond_info; sat2antenna_ext(&s_node, &antenna,cur_tuner_idx); xpond_info.frq = t_node.frq; xpond_info.sym = t_node.sym; xpond_info.pol = t_node.pol; set_antenna(&antenna); set_xpond(&xpond_info); #else MEMSET(&antenna, 0, sizeof(struct ft_antenna)); MEMSET(&xpond_info, 0, sizeof(union ft_xpond)); sat2antenna(&s_node, &antenna); xpond_info.s_info.type = FRONTEND_TYPE_S; xpond_info.s_info.frq = t_node.frq; xpond_info.s_info.sym = t_node.sym; xpond_info.s_info.pol = t_node.pol; xpond_info.s_info.tp_id = t_node.tp_id; #ifdef SUPPORT_SELECT_SAME_SAT nim = (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, ((s_node.reserve_1 == 0)? 0 : ((s_node.reserve_1 == 1) ? 1 : 0))); #else nim = (struct nim_device *)dev_get_by_id(HLD_DEV_TYPE_NIM, (s_node.tuner1_valid ? 0 : (s_node.tuner2_valid ? 1 : 0))); #endif frontend_tuning(nim, &antenna, &xpond_info, 1); #endif if(pre_tp_sat_idx != cur_tp_sat_idx) { get_tuner_sat(TUNER_EITHER, pre_tp_sat_idx, &s_node); pre_sat_id = s_node.sat_id; get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node); cur_sat_id = s_node.sat_id; wincom_dish_move_popup_open(/*pre_sat_id*/0xFFFF,cur_sat_id,cur_tuner_idx,&back_saved); pre_tp_sat_idx = cur_tp_sat_idx; } ap_enable_key_task_get_key(old_get_key); ap_set_key_notify_proc(NULL); nim_io_control(g_nim_dev, NIM_DRIVER_STOP_CHANSCAN, 0); }
static INT32 as_blind_scan() { UINT32 from = as_info->param.as_from; UINT32 to = as_info->param.as_to; UINT32 loop; INT32 ret = SUCCESS; struct NIM_Auto_Scan *as_para = &as_info->nim_para; if ((get_LNB_ctrl(as_info->antenna.lnb_type) != LNB_CTRL_22K) &&(get_LNB_ctrl(as_info->antenna.lnb_type) != LNB_CTRL_UNICABLE) /* Unicable */ ||(!as_info->dual_LNB)) { if (as_info->voltage_ctrl) { loop = as_info->cur_sat.pol; as_info->polar = as_info->cur_sat.pol - 1; if (as_info->dual_LNB) { if (as_info->polar == 0) to = 1550; else from = 1551; } } else { as_info->polar = 0; loop = as_info->dual_LNB? 1: 2; } } else { if (as_info->voltage_ctrl) { loop = as_info->cur_sat.pol; as_info->polar = as_info->cur_sat.pol - 1; } else { as_info->polar = 0; loop = 2; } } if (get_LNB_ctrl(as_info->cur_sat.lnb_type)==LNB_CTRL_22K || (get_LNB_ctrl(as_info->cur_sat.lnb_type)==LNB_CTRL_UNICABLE && as_info->dual_LNB)/* Unicable */) { as_info->antenna.k22 = as_info->cur_sat.k22 = 0; if (as_info->cur_sat.lnb_low>as_info->cur_sat.lnb_high) to = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_high; else to = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_low; from = as_info->param.as_from; } while (!as_info->stop_scan_signal) { for(; as_info->polar<loop; as_info->polar++) { if (as_info->antenna.pol != LNB_POL_POFF) { /* it is not good... */ if (as_para->unicable) //Unicable as_info->antenna.pol = as_info->polar; else as_info->antenna.pol = as_info->polar+1; } if (!as_para->unicable) //Unicable { set_antenna(&as_info->antenna); wait_nim_ready(); //osal_task_sleep(350); } // as_info->param.as_from = from; // as_info->param.as_to = to; if (as_info->stop_scan_signal) break; // make up the autoscan parameter list as_para->sfreq = from; as_para->efreq = to; as_para->callback = dvbs_as_callback; ret = nim_ioctl_ext(as_info->nim, NIM_DRIVER_AUTO_SCAN, as_para); if (ret!=SUCCESS) break; dvbs_as_callback(AS_SGN_INIT, 0, 0, 0, 0); } if (get_LNB_ctrl(as_info->cur_sat.lnb_type)==LNB_CTRL_UNICABLE && !as_info->dual_LNB) /* Unicable */ break; else if (ret||(as_info->cur_sat.k22 == 1)|| ((get_LNB_ctrl(as_info->cur_sat.lnb_type)!=LNB_CTRL_22K) &&(get_LNB_ctrl(as_info->cur_sat.lnb_type)!=LNB_CTRL_UNICABLE)/*Unicable*/)) break; else { as_info->antenna.k22 = as_info->cur_sat.k22 = 1; if (as_info->cur_sat.lnb_low>as_info->cur_sat.lnb_high) from = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_low; else from = KU_LNB_22K_EDGE_FREQUENCY-as_info->cur_sat.lnb_high; to = as_info->param.as_to; if (as_info->voltage_ctrl) { loop = as_info->cur_sat.pol; as_info->polar = loop - 1; } else { as_info->polar = 0; loop = 2; } } } return ret; }