static PRESULT srch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT16 title_id; POBJECT_HEAD mainmenu; UINT8 av_flag; UINT16 cur_chan; UINT8 back_saved; switch(event) { case EVN_PRE_OPEN: system_state = SYS_STATE_SEARCH_PROG; if(win_search_param.as_method == AS_METHOD_TP || win_search_param.as_method == AS_METHOD_NIT_TP) // tp scan title_id = RS_INSTALLATION_TP_SCAN; else if(win_search_param.as_method == AS_METHOD_FFT || win_search_param.as_method == AS_METHOD_MULTI_FFT)//auto scan title_id = RS_INSTALLATION_AUTO_SCAN; else if(win_search_param.as_method == AS_METHOD_SAT_TP ||win_search_param.as_method == AS_METHOD_MULTI_TP || win_search_param.as_method == AS_METHOD_NIT || win_search_param.as_method == AS_METHOD_MULTI_NIT)//preset scan title_id = RS_INSTALLATION_PRESET_SCAN; else title_id = RS_INSTALLATION_AUTO_SCAN; wincom_open_subtitle(pObj,title_id,0); /*Remove progress bar when search type is AS_METHOD_NIT_TP/AS_METHOD_NIT/AS_METHOD_MULTI_NIT*/ if(win_search_param.as_method == AS_METHOD_NIT_TP || win_search_param.as_method == AS_METHOD_NIT|| win_search_param.as_method == AS_METHOD_MULTI_NIT) { OSD_SetAttr(&srch_progress_txt, C_ATTR_HIDDEN); OSD_SetAttr(&srch_progress_bar, C_ATTR_HIDDEN); } else { OSD_SetAttr(&srch_progress_txt, C_ATTR_ACTIVE); OSD_SetAttr(&srch_progress_bar, C_ATTR_ACTIVE); } key_pan_display("srch", 4); epg_off(); stop_tdt(); #ifdef AUTOSCAN_BYPASS_CI // Before Autoscan, DMX0 bypass CI if(win_search_param.as_method == AS_METHOD_FFT || win_search_param.as_method == AS_METHOD_MULTI_FFT)//auto scan { tsi_dmx_src_select(TSI_DMX_0, TSI_TS_B); tsi_para_src_select(TSI_SPI_1,0); api_set_nim_ts_type(2, 0x03); } #endif #ifdef HW_SS830C tsi_dmx_src_select(TSI_DMX_0, TSI_TS_B); api_set_nim_ts_type(2, 0x03); #endif break; case EVN_POST_OPEN: win_search_init(); break; case EVN_PRE_CLOSE: win_search_pre_close = 1; osal_task_dispatch_off(); moving_disk = 0;/*Clear moving dish flag*/ win_search_stop_signal = 1; osal_task_dispatch_on(); as_service_stop(); db_search_exit(); //api_stop_timer(&win_search_tmr_id); /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; prog_callback_unregister(); pid_search_flg = 0; break; case EVN_POST_CLOSE: if((srch_ch_cnt[0] != 0x0) || (srch_ch_cnt[1] != 0x0)) { win_search_last_tp_ok_failed(srch_tp_cnt); win_compopup_init(WIN_POPUP_TYPE_SMSG); win_compopup_set_msg(NULL, NULL, RS_MSG_WAIT_FOR_SAVING); //win_compopup_open(); win_compopup_open_ext(&back_saved); update_data(); win_compopup_smsg_restoreback(); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg("Search End", NULL, 0); win_compopup_open_ext(&back_saved); /* Change to all satellite group */ UINT32 grp_idx = sys_data_get_cur_group_index(); sys_data_check_channel_groups(); sys_data_set_cur_group_index(grp_idx); av_flag = sys_data_get_cur_chan_mode(); if(sys_data_get_sate_group_num(av_flag) == 0) { av_flag = (av_flag == TV_CHAN)? RADIO_CHAN : TV_CHAN; sys_data_set_cur_chan_mode(av_flag); } if(av_flag == RADIO_CHAN && (srch_ch_cnt[1] != 0x0)) //guop add 20101231 { av_flag = TV_CHAN; sys_data_set_cur_chan_mode(av_flag); } sys_data_change_group(grp_idx); if(srch_ch_cnt[av_flag] > 0) { cur_chan = get_prog_pos(win_search_cur_prog[av_flag].prog_id); if(cur_chan == 0xFFFF) { grp_idx = get_sat_pos(cur_sat_id) + 1; sys_data_change_group(grp_idx); cur_chan = get_prog_pos(win_search_cur_prog[av_flag].prog_id); if (cur_chan == 0xFFFF) { sys_data_change_group(0); cur_chan = get_prog_pos(win_search_cur_prog[av_flag].prog_id); if (cur_chan == 0xffff) cur_chan = 0; } } sys_data_set_cur_group_channel(cur_chan); } else if(sys_data_get_sate_group_num(av_flag)) key_pan_display("noCH", 4); else key_pan_display("----", 4); sys_data_save(1); epg_reset(); } OSD_ClearObject( (POBJECT_HEAD)&srch_progress_bar, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&srch_progress_txt, C_UPDATE_ALL); mainmenu = (POBJECT_HEAD)&g_win_mainmenu; OSD_TrackObject(mainmenu,C_UPDATE_ALL); #ifdef AUTOSCAN_BYPASS_CI // After Autoscan, DMX0 NOT bypass CI if(win_search_param.as_method == AS_METHOD_FFT || win_search_param.as_method == AS_METHOD_MULTI_FFT)//auto scan { tsi_dmx_src_select(TSI_DMX_0, TSI_TS_A); tsi_para_src_select(TSI_SPI_1,0); } #endif start_tdt(); system_state = SYS_STATE_NORMAL; break; case EVN_MSG_GOT: ret = win_search_message_proc(param1,param2); break; } return ret; }
static void reset_factory_setting() { UINT8 bID, back_saved; win_popup_choice_t choice; UINT32 chunk_id, default_db_addr, default_db_len; CONTAINER *factory_msg_con; factory_msg_con = &fac_msg_con; TEXT_FIELD *factory_msg_txt; factory_msg_txt = &factoryset_msg; MULTISEL *factory_multisel; factory_multisel = &factory_state; api_stop_play(1); epg_reset(); OSD_SetTextFieldContent(factory_msg_txt, STRING_ID, (UINT32)RS_FACTORY_RESTORING); OSD_DrawObject((POBJECT_HEAD)factory_msg_txt, C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD)factory_msg_con, C_UPDATE_ALL); //老版本弹出恢复出厂信息 //win_compopup_init(WIN_POPUP_TYPE_SMSG); //win_compopup_set_msg(NULL, NULL, RS_FACTORY_RESTORING); //win_compopup_open_ext(&back_saved); sys_data_factroy_init(); sys_data_set_factory_reset(TRUE); sys_data_set_cur_chan_mode(TV_CHAN); sys_data_save(TRUE); sys_data_load(); chunk_id = STB_CHUNK_DEFAULT_DB_ID; api_get_chuck_addlen(chunk_id, &default_db_addr, &default_db_len); set_default_value(DEFAULT_ALL_PROG, default_db_addr + 16); reset_search_param(); /*reset the local static param in full_band_search*/ if (GetMuteState()) SetMuteOnOff(FALSE); if (GetPauseState()) SetPauseOnOff(FALSE); #if(defined(MIS_AD) || defined(MIS_AD_NEW)) MIS_SetOSDAlpha(0x00); #endif #ifdef MULTI_CAS #if (CAS_TYPE == CAS_DVN) ap_cas_set_messageID(0); cas_flags_reset(); #elif(CAS_TYPE==CAS_IRDETO) setFirstIn(1); #elif (CAS_TYPE == CAS_CDCA) api_mcas_stop_transponder(); #endif #endif setMtxt(0); //win_compopup_smsg_restoreback();消除完成恢复出厂设置后出现的小黑框现象---#JingJin OSD_SetTextFieldContent(factory_msg_txt, STRING_ID, (UINT32)RS_FACTORY_DONE); OSD_DrawObject((POBJECT_HEAD)factory_msg_txt, C_UPDATE_ALL); OSD_SetTextFieldContent(factory_msg_txt, STRING_ID, (UINT32)RS_FACTORY_USER_SURE); OSD_SetMultiselSel(factory_multisel, 0); OSD_TrackObject((POBJECT_HEAD)factory_multisel, C_DRAW_TYPE_HIGHLIGHT); //老版本弹出恢复出厂信息 //win_compopup_init(WIN_POPUP_TYPE_SMSG); //win_compopup_set_msg(NULL, NULL, RS_FACTORY_DONE); //win_compopup_open_ext(&back_saved); }