void win_timerset_timerservice_change(BOOL update) { UINT8 action; TEXT_FIELD *txt; MULTISEL *msel; UINT16 ch_idx, ch_cnt; TIMER_SET_CONTENT *settimer; P_NODE p_node; settimer = &timer_set; if (TIMER_MODE == TIMER_MODE_OFF) action = C_ATTR_INACTIVE; else { if (TIMER_SERVICE_TYPE == TIMER_SERVICE_MESSAGE) action = C_ATTR_INACTIVE; else action = C_ATTR_ACTIVE; } /* TIMER service information: message or channel */ txt = &timer_txt_serviceinfo; msel = &timer_msel_serviceinfo; if (TIMER_SERVICE_TYPE == TIMER_SERVICE_MESSAGE) { /* TIMER_SERVICE_SMG */ OSD_SetMultiselSelType(msel, STRING_ID); OSD_SetMultiselCount(msel, 3); OSD_SetMultiselSelTable(msel, (void*)WakeupMessageStr_id); if (settimer->wakeup_message >= 3) settimer->wakeup_message = 0; OSD_SetMultiselSel(msel, settimer->wakeup_message); } else { //modified by Robin if (get_prog_by_id(settimer->wakeup_channel, &p_node) == DB_SUCCES) ch_idx = get_prog_pos(settimer->wakeup_channel); else ch_idx = sys_data_get_cur_group_cur_mode_channel(); ch_cnt = get_prog_num(VIEW_ALL | settimer->wakeup_chan_mode, 0); OSD_SetMultiselSelType(msel, STRING_PROC); OSD_SetMultiselCount(msel, ch_cnt); OSD_SetMultiselSel(msel, ch_idx); } OSD_SetTextFieldContent(txt, STRING_ID, (UINT32)TimerServiceTxtStr_id[TIMER_SERVICE_TYPE]); if (update) OSD_DrawObject((POBJECT_HEAD) &timer_con_serviceinfo, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); set_container_active(&timer_con_duration, action); if (update) OSD_DrawObject((POBJECT_HEAD) &timer_con_duration, C_UPDATE_ALL); }
static void load_settings(void) { MULTISEL * msel; SYSTEM_DATA* sys_data; UINT32 sel; sys_data = sys_data_get(); //country msel = &item_country_sel; OSD_SetMultiselCount(msel, COUNTRY_NCNT); sel = sys_data->country; OSD_SetMultiselSel(msel, sel); old_country_sel = sel; //network msel = &item_network_sel; if(sys_data->country == GERMANY) { OSD_SetMultiselCount(msel, GERM_SER_CNT); msel->bSelType = STRING_ID; msel->pSelTable = network_str; sel = sys_data->germ_servs_type; //germ_network_setting_to_osd(&(sys_data->current_ft), sys_data->current_ft_count); old_germ_serv_sel = sel; old_network_sel = 0; } else { OSD_SetMultiselCount(msel, NETWORK_NCNT); msel->bSelType = STRING_ID; //STRING_ANSI; msel->pSelTable = network_str+4; sel = network_setting_to_osd(&(sys_data->current_ft[0])); old_germ_serv_sel = 0; old_network_sel = sel; } OSD_SetMultiselSel(msel, sel); if (from_auto_scan) OSD_SetContainerFocus( (CONTAINER*)&win_country_net_con,NETWORK_ID); else OSD_SetContainerFocus( (CONTAINER*)&win_country_net_con,COUNTRY_ID); }
static void win_av_load_tv_mode_setting(BOOL bDraw) { MULTISEL * msel; SYSTEM_DATA* sys_data; UINT32 i,sel,cnt; UINT32 focus = OSD_GetFocusID((POBJECT_HEAD)&win_av_con); sys_data = sys_data_get(); /* TV MODE */ msel = av_item_set[TVMODE_ID - 1]; OSD_SetMultiselCount(msel, get_tv_mode_count()); sel = tvmode_setting_to_osd(sys_data->avset.tv_mode); OSD_SetMultiselSel(msel, sel); if (bDraw) { if (focus == TVMODE_ID) { OSD_TrackObject((POBJECT_HEAD)av_items[TVMODE_ID - 1], C_UPDATE_ALL); } else { OSD_DrawObject((POBJECT_HEAD)av_items[TVMODE_ID - 1], C_UPDATE_ALL); } } /* Video Output */ msel = av_item_set[VIDEOOUT_ID - 1]; #ifdef HDTV_SUPPORT if (sys_data_get_scart_out() == SCART_YUV) { sel = 0; } else { sel = 1; } #else sel = sys_data->avset.scart_out; #endif OSD_SetMultiselSel(msel, sel); if (bDraw) { if (focus == VIDEOOUT_ID) { OSD_TrackObject((POBJECT_HEAD)av_items[VIDEOOUT_ID - 1], C_UPDATE_ALL); } else { OSD_DrawObject((POBJECT_HEAD)av_items[VIDEOOUT_ID - 1], C_UPDATE_ALL); } } }
void win_timerset_timerserviceinfo_change(BOOL update,UINT16 sel) { MULTISEL *msel; TIMER_SET_CONTENT* settimer; P_NODE p_node; UINT16 ch_idx,ch_cnt; settimer = &timer_set; msel = &timer_msel_serviceinfo; if(TIMER_SERVICE_TYPE == TIMER_SERVICE_MESSAGE) { OSD_SetMultiselSelType(msel,STRING_ID); OSD_SetMultiselCount(msel,3); OSD_SetMultiselSelTable(msel, (void*)WakeupMessageStr_id); if(sel >=3) sel = 0; settimer->wakeup_message = sel; OSD_SetMultiselSel(msel,settimer->wakeup_message); } else { if(get_prog_at(sel,&p_node) == DB_SUCCES) ch_idx = sel; else { ch_idx = sel = 0; get_prog_at(sel,&p_node); } settimer->wakeup_channel = p_node.prog_id; ch_cnt = get_prog_num(VIEW_ALL | settimer->wakeup_chan_mode, 0); OSD_SetMultiselSelType(msel,STRING_PROC); OSD_SetMultiselCount(msel,ch_cnt); OSD_SetMultiselSel(msel, ch_idx); } if(update) OSD_DrawObject((POBJECT_HEAD)&timer_con_serviceinfo, C_DRAW_SIGN_EVN_FLG |C_UPDATE_ALL); }
static PRESULT win_sys_backup_init(void) { unsigned long block_id; RET_CODE block_ret,filelist_ret; MULTISEL *pMsel; block_ret = usbupg_block_init(&usbupg_blocks_cnt); if(block_ret == RET_FAILURE) { usbupg_block_free(); return PROC_LEAVE; } pMsel = &sys_backup_sel_upgrade_type; OSD_SetMultiselSel(pMsel, 0); OSD_SetMultiselCount(pMsel, EM_BACKUP_MODE_NUM); sys_backup_txt_start.bX = TXTN_L_OF; return PROC_PASS; }
static PRESULT av_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT8 bID; UINT32 sel; UINT16* Uni_str; SYSTEM_DATA* sys_data; OSD_RECT rect; COM_POP_LIST_PARAM_T param; bID = OSD_GetObjID(pObj); sys_data = sys_data_get(); switch(event) { case EVN_PRE_CHANGE://51 sel = *((UINT32*)param1); break; case EVN_POST_CHANGE://52 sel = param1; switch(bID) { case TVMODE_ID: sys_data->avset.tv_mode = tvmode_osd_to_setting(sel); api_video_set_tvout(sys_data->avset.tv_mode); break; case TVASPECT_ID: win_av_set_ratio(sys_data,sel); sys_data_set_display_mode(&(sys_data->avset)); break; case VIDEOOUT_ID: #ifdef HDTV_SUPPORT if (sel == 0) sys_data->avset.scart_out = SCART_YUV; else sys_data->avset.scart_out = SCART_RGB; #else sys_data->avset.scart_out = sel; #endif if(sel == SCART_CVBS) { api_Scart_RGB_OnOff(0); #ifdef VDAC_USE_SVIDEO_TYPE api_Svideo_OnOff(0); #endif } else if(sel == SCART_RGB) { api_Scart_RGB_OnOff(1); //api_Svideo_OnOff(0);/*RGB output will cut off svideo output,ommit here*/ } else { api_Scart_RGB_OnOff(0); #ifdef VDAC_USE_SVIDEO_TYPE api_Svideo_OnOff(1); #endif } #if(SYS_MAIN_BOARD == BOARD_DB_M3602_04V01) system_config.avset.scart_out = sys_data->avset.scart_out; if(sel != 0) // RGB { MULTISEL * msel; if(TV_MODE_PAL != sys_data->avset.tv_mode || TV_MODE_NTSC358 != sys_data->avset.tv_mode) { sys_data->avset.tv_mode = TV_MODE_PAL; system_config.avset.tv_mode = TV_MODE_PAL; } msel = av_item_set[TVMODE_ID - 1]; OSD_SetMultiselCount(msel, get_tv_mode_count()); sel = tvmode_setting_to_osd(sys_data->avset.tv_mode); OSD_SetMultiselSel(msel, sel); msel->bSelType = STRING_ANSI; msel->pSelTable = tv_mode_sd; OSD_DrawObject((POBJECT_HEAD)&av_item_con1, C_UPDATE_ALL); msel->bSelType = STRING_PROC; g_rgb_yuv_changed = 1; } else // YUV { MULTISEL * msel; msel = av_item_set[TVMODE_ID - 1]; OSD_SetMultiselCount(msel, get_tv_mode_count()); sel = tvmode_setting_to_osd(sys_data->avset.tv_mode); OSD_SetMultiselSel(msel, sel); msel->bSelType = STRING_ANSI; msel->pSelTable = tv_mode; OSD_DrawObject((POBJECT_HEAD)&av_item_con1, C_UPDATE_ALL); msel->bSelType = STRING_PROC; g_rgb_yuv_changed = 1; } api_video_set_tvout(sys_data->avset.tv_mode); g_rgb_yuv_changed = 0; #endif win_av_set_vcrloop_action(TRUE); if(sys_data->avset.scart_out == SCART_RGB) api_Scart_OutPut_Switch(1); else api_Scart_OutPut_Switch(sys_data->vcrloopmode); break; case VCR_ID: sys_data->vcrloopmode = sel; api_Scart_OutPut_Switch(sys_data->vcrloopmode ); break; case RFSYSTEM_ID: sys_data->avset.rf_mode = sel; win_check_rf_channel(sys_data); OSD_SetMultiselSelTable(av_item_set[RFCHAN_ID - 1], rf_ch_range[sel]); sys_data_set_rf(sys_data->avset.rf_mode, sys_data->avset.rf_channel); break; case RFCHAN_ID: sys_data->avset.rf_channel = sel; sys_data_set_rf(sys_data->avset.rf_mode, sys_data->avset.rf_channel); break; #ifdef HDTV_SUPPORT case HDMIOUT_ID: sys_data->avset.video_format = sel; sys_data_set_video_format(sys_data->avset.video_format); break; case AUDIOOUT_ID: sys_data->avset.audio_output = sel; sys_data_set_audio_output(sys_data->avset.audio_output); break; #endif #if (SUPPORT_DUAL_OUTPUT_ONOFF) case DUALOUT_ID: sys_data->avset.dual_output = sel; sys_data_set_dual_output(sys_data->avset.dual_output); break; #endif } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; switch(bID) { case TVMODE_ID: ComAscStr2Uni(get_tv_mode_string(sel), Uni_str); break; case TVASPECT_ID: ComAscStr2Uni(tv_ratio[sel], Uni_str); break; #ifdef HDTV_SUPPORT case VIDEOOUT_ID: ComAscStr2Uni(video_output[sel], Uni_str); break; #endif // case VCR_ID: break; case RFSYSTEM_ID: ComAscStr2Uni(rf_mode_stings[sel], Uni_str); break; // case RFCHAN_ID: break; } break; case EVN_UNKNOWN_ACTION: win_av_enter_key(bID); break; } return ret; }
static PRESULT satsrch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; MULTISEL* msel; UINT16 title_id,sat_idx,sat_cnt; OSD_RECT rect; POBJECT_HEAD lastitem; SYSTEM_DATA* sys_data = sys_data_get(); UINT16 i; UINT8 flag; S_NODE s_node; switch(event) { case EVN_PRE_OPEN: sat_idx = 0; if(!single_multi_srch_flag) { if(sys_data_get_cur_satidx() == (UINT16)(~0)) sat_idx = win_load_default_satidx(); else sat_idx = sys_data_get_cur_satidx(); } recreate_sat_view(VIEW_ALL, 0); #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) for(i=0;i<get_sat_num(VIEW_ALL);i++) { get_sat_at((UINT16)i,VIEW_ALL,&s_node); flag = s_node.tuner1_valid | s_node.tuner2_valid; if(s_node.selected_flag != flag) { s_node.selected_flag = flag; modify_sat(s_node.sat_id, &s_node); } } #endif msel = satsrch_sels[SAT_ID - 1]; sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT); OSD_SetMultiselCount(msel, sat_cnt); if(sat_idx >= sat_cnt) { sat_idx = 0; } OSD_SetMultiselSel(msel,sat_idx); if(single_multi_srch_flag) title_id = RS_INSTALLATION_MULTI_SEARCH; else title_id = RS_INSTALLATION_SINGLE_SEARCH; wincom_open_subtitle(pObj,title_id,0); /*lastitem = (POBJECT_HEAD)&satsrch_item7; if(single_multi_srch_flag) OSD_SetObjpNext(lastitem, &satsrch_multisats_back); //OSD_SetObjpNext(lastitem, NULL); else OSD_SetObjpNext(lastitem, NULL);*/ win_satsrch_set_nitactive(FALSE); set_container_active(&satsrch_item6, C_ATTR_INACTIVE); get_sat_at(sat_idx,SET_SELECTED,&s_node); if(sys_data->antenna_connect_type == ANTENNA_CONNECT_DUAL_DIFF) { #ifdef SUPPORT_SELECT_SAME_SAT OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, ((s_node.reserve_1 == 0)? RS_LNB1 : RS_LNB2)); #else OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, (s_node.tuner1_valid ? RS_LNB1 : RS_LNB2)); #endif } else { OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, RS_LNB1); } OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL); #ifndef SUPPORT_TWO_TUNER remove_menu_item(&g_win_sat_srchset,(POBJECT_HEAD)&satsrch_item6,(CON_H + CON_GAP)); //guop add #endif break; case EVN_POST_OPEN: if(single_multi_srch_flag == 1) { OSD_DrawObject((POBJECT_HEAD)&satsrch_split,C_UPDATE_ALL); } win_satsrch_set_drawselectsats(); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: wincom_close_subtitle(); OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL); break; } return ret; }
static PRESULT usbupg_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { UINT8 bID; UINT16 sel,block_idx,*Uni_str; UINT32 block_len; char str_buf[20] = {0}; char str_extend[4] = {0}; char str_filter[4] = {0}; PRESULT ret = PROC_PASS; USBUPG_FILENODE filenode; MULTISEL *pMsel; bID = OSD_GetObjID(pObj); switch(event) { case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; // NOTICE: Uni_str size is 32 (#define MAX_STR_LEN 32) in obj_multisel.c if(bID == UPG_MODE_ID) { ComUniStrCopyChar(Uni_str,OSD_GetUnicodeString(usb_upgrade_type_name[sel])); //memcpy(str_buf, usb_upgrade_type_name[sel], STRLEN(usb_upgrade_type_name[sel])); //ComAscStr2Uni(str_buf, Uni_str); } else if(bID == UPG_FILE_ID) { if(usbupg_files_cnt == 0) { pMsel = &usbupg_sel_upgrade_type; usbupg_get_file_filter(OSD_GetMultiselSel(pMsel), str_extend, str_filter); string_to_lower(str_extend); #ifdef USBUPG_UPGFILE_FILTER string_to_lower(str_filter); #else str_filter[0] = 0; #endif { UINT16 *pStr=NULL; UINT16 uni_string[50]={0}; UINT16 uni_string2[50]={0}; pStr = OSD_GetUnicodeString(RS_NO_FILE); ComUniStrCopyChar(&uni_string,(UINT16 *)pStr); sprintf(str_buf, "(%s*.%s)", str_filter, str_extend); ComAscStr2Uni(str_buf, uni_string2); ComUniStrCat(&uni_string,uni_string2); ComUniStrCopyChar(Uni_str,uni_string); //sprintf(str_buf, "No File(%s*.%s)", str_filter, str_extend); //ComAscStr2Uni(str_buf, Uni_str); } } else { usbupg_get_filenode(&filenode,sel); filenode.upg_file_name[31] = 0; ComAscStr2Uni(filenode.upg_file_name, Uni_str); } } else { ComAscStr2Uni("", Uni_str); } break; case EVN_POST_CHANGE: if(bID == 1) { sel = param1; usbupg_create_filelist(sel,&usbupg_files_cnt); pMsel = &usbupg_filelist_sel; OSD_SetMultiselSel(pMsel, 0); OSD_SetMultiselCount(pMsel, (usbupg_files_cnt)); OSD_DrawObject((POBJECT_HEAD)pMsel,C_UPDATE_ALL); } break; default: break; } return ret; }
static void win_otaset_load_sat_setting(UINT32 sat_idx, BOOL update) { MULTISEL* msel; S_NODE s_node; T_NODE t_node; UINT32 val = 0; CONTAINER* sat_item = &wota_con0; POBJECT_HEAD pObj; UINT32 i,tp_num; get_tuner_sat(OTA_TUNER_IDX, sat_idx,&s_node); tp_num = get_tp_num_sat(s_node.sat_id); msel = &wota_num1; OSD_SetMultiselCount(msel, tp_num); OSD_SetMultiselSel(msel, 0);/*First TP*/ if(s_node.sat_orbit == OTA_DATA_SAT_POS)/*If default Sat,set to default TP*/ { for(i=0;i<tp_num;i++) { get_tp_at(s_node.sat_id,i,&t_node); if( t_node.frq >= (OTA_DATA_TP_FREQ - 3) && t_node.frq <= (OTA_DATA_TP_FREQ + 3) && t_node.sym >= (OTA_DATA_TP_SYMB - 500) && t_node.sym <= (OTA_DATA_TP_SYMB + 500) && t_node.pol == OTA_DATA_TP_POL) { OSD_SetMultiselSel(msel,i);/*Default TP pos*/ break; } } } if(TP_NUM > 0) { get_tp_at(s_node.sat_id,TP_POS,&t_node); ota_freq = t_node.frq; ota_symb = t_node.sym; ota_pol = t_node.pol; } else { ota_freq = OTA_DATA_TP_FREQ; ota_symb = OTA_DATA_TP_SYMB; ota_pol = OTA_DATA_TP_POL; } win_otaset_load_FreqSymbPid_display(); if(update) { pObj = (POBJECT_HEAD)sat_item; pObj = OSD_GetObjpNext(pObj); while(pObj) { OSD_DrawObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); pObj = OSD_GetObjpNext(pObj); } }
static PRESULT av_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT8 bID; UINT32 sel; UINT16* Uni_str; SYSTEM_DATA* sys_data; OSD_RECT rect; COM_POP_LIST_PARAM_T param; #ifdef HDMI_CERTIFICATION_UI MULTISEL * msel; #endif bID = OSD_GetObjID(pObj); sys_data = sys_data_get(); switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); break; case EVN_POST_CHANGE: sel = param1; switch(bID) { case TVMODE_ID: sys_data->avset.tv_mode = tvmode_osd_to_setting(sel); api_video_set_tvout(sys_data->avset.tv_mode); #ifdef HDMI_CERTIFICATION_UI msel = av_item_set[TVASPECT_ID - 1]; if( check_tv_display_in_hd_mode() ) { win_av_set_ratio(sys_data,3); // 16:9 sys_data_set_display_mode(&(sys_data->avset)); OSD_SetMultiselCount(msel, 1); OSD_SetMultiselSel(msel, 3); } else { OSD_SetMultiselCount(msel, TV_RATIO_NCNT); } OSD_DrawObject((POBJECT_HEAD)msel, C_UPDATE_CONTENT); OSD_DrawObject((POBJECT_HEAD)&win_av_con, C_UPDATE_CONTENT); #endif break; case TVASPECT_ID: #ifdef HDMI_CERTIFICATION_UI msel = av_item_set[TVASPECT_ID - 1]; if( check_tv_display_in_hd_mode() ) { win_av_set_ratio(sys_data,3); // 16:9 OSD_SetMultiselSel(msel, 3); } else #endif { win_av_set_ratio(sys_data,sel); } sys_data_set_display_mode(&(sys_data->avset)); break; case VIDEOOUT_ID: #ifdef HDTV_SUPPORT if (sel == 0) { sys_data->avset.scart_out = SCART_YUV; sys_data->avset.tv_mode = TV_MODE_1080I_25; api_Scart_RGB_OnOff(0); } else { sys_data->avset.scart_out = SCART_RGB; api_Scart_RGB_OnOff(1); } #ifndef GPIO_RGB_YUV_SWITCH api_video_set_tvout(sys_data->avset.tv_mode); #endif win_av_load_tv_mode_setting(TRUE); #else sys_data->avset.scart_out = sel; if(sel == SCART_CVBS) { api_Scart_RGB_OnOff(0); #ifdef VDAC_USE_SVIDEO_TYPE api_Svideo_OnOff(0); #endif } else if(sel == SCART_RGB) { api_Scart_RGB_OnOff(1); //api_Svideo_OnOff(0);/*RGB output will cut off svideo output,ommit here*/ } else { api_Scart_RGB_OnOff(0); #ifdef VDAC_USE_SVIDEO_TYPE api_Svideo_OnOff(1); #endif } #endif win_av_set_vcrloop_action(TRUE); if(sys_data->avset.scart_out == SCART_RGB) api_Scart_OutPut_Switch(1); else api_Scart_OutPut_Switch(sys_data->vcrloopmode); break; case VCR_ID: sys_data->vcrloopmode = sel; api_Scart_OutPut_Switch(sys_data->vcrloopmode ); break; case RFSYSTEM_ID: sys_data->avset.rf_mode = sel; win_check_rf_channel(sys_data); OSD_SetMultiselSelTable(av_item_set[RFCHAN_ID - 1], rf_ch_range[sel]); sys_data_set_rf(sys_data->avset.rf_mode, sys_data->avset.rf_channel); break; case RFCHAN_ID: sys_data->avset.rf_channel = sel; sys_data_set_rf(sys_data->avset.rf_mode, sys_data->avset.rf_channel); break; #ifdef HDTV_SUPPORT case HDMIOUT_ID: #ifdef HDMI_CERTIFICATION_UI if(!check_hdmi_out_in_dvi_mode()) { // STB only output RGB in DVI mode sys_data->avset.video_format = convert_ui_hdmi_out_sel_to_sys_video_format(sel); sys_data_set_video_format(sys_data->avset.video_format); } #else sys_data->avset.video_format = sel; sys_data_set_video_format(sys_data->avset.video_format); #endif break; case AUDIOOUT_ID: sys_data->avset.audio_output = sel; sys_data_set_audio_output(sys_data->avset.audio_output); break; #endif #if (SUPPORT_DUAL_OUTPUT_ONOFF) case DUALOUT_ID: sys_data->avset.dual_output = sel; sys_data_set_dual_output(sys_data->avset.dual_output); break; #endif } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; switch(bID) { case TVMODE_ID: ComAscStr2Uni(get_tv_mode_string(sel), Uni_str); break; case TVASPECT_ID: #ifdef HDMI_CERTIFICATION_UI if( check_tv_display_in_hd_mode() ) { sel = 3; // 16:9 } #endif ComAscStr2Uni(tv_ratio[sel], Uni_str); break; #ifdef HDTV_SUPPORT case VIDEOOUT_ID: ComAscStr2Uni(video_output[sel], Uni_str); break; #endif // case VCR_ID: break; case RFSYSTEM_ID: ComAscStr2Uni(rf_mode_stings[sel], Uni_str); break; // case RFCHAN_ID: break; } break; case EVN_UNKNOWN_ACTION: win_av_enter_key(bID); break; } return ret; }
static PRESULT factoryset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; CONTAINER* cont = (CONTAINER*)pObj; UINT8 id = OSD_GetObjID(pObj); UINT16 sat_idx,sat_cnt;//-a by wangyang 2011-11-03 for factory set del sat program UINT16 i; UINT8 flag; S_NODE s_node; switch(event) { case EVN_PRE_OPEN: //OSD_SetContainerFocus(cont, 1); //-a by wangyang 2011-11-03 for factory set del sat program{{ sat_idx = 0; if(sys_data_get_cur_satidx() == (UINT16)(~0)) sat_idx = win_load_default_satidx(); else sat_idx = sys_data_get_cur_satidx(); recreate_sat_view(VIEW_ALL, 0); #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) for(i=0;i<get_sat_num(VIEW_ALL);i++) { get_sat_at((UINT16)i,VIEW_ALL,&s_node); flag = s_node.tuner1_valid | s_node.tuner2_valid; if(s_node.selected_flag != flag) { s_node.selected_flag = flag; modify_sat(s_node.sat_id, &s_node); } } #endif //msel = satsrch_sels[SAT_ID - 1]; sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT); OSD_SetMultiselCount(&factoryset_sel5, sat_cnt); /*if(sat_idx >= sat_cnt)//albert.li del 2011.7.6 { sat_idx = 0; } OSD_SetMultiselSel(msel,sat_idx);*/ //sat_idx=get_sat_idx_in_selected_sats2(sat_cnt);//albert.li add 2011.7.6 OSD_SetMultiselSel(&factoryset_sel5,sat_idx); //-a by wangyang 2011-11-03 for factory set del sat program}} wincom_open_subtitle((POBJECT_HEAD)&win_factoryset_con,RS_TOOLS_FACTORY_SETTING, 0); break; case EVN_POST_OPEN: break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: wincom_close_subtitle(); OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL); break; } return ret; }
static PRESULT satsrch_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; MULTISEL* msel; UINT16 title_id,sat_idx,sat_cnt; OSD_RECT rect; POBJECT_HEAD lastitem; SYSTEM_DATA* sys_data = sys_data_get(); UINT16 i; UINT8 flag; S_NODE s_node; switch(event) { case EVN_PRE_OPEN: #ifdef EXIT_KEY_EXIT_ALL_MENU exit_key_flag = FALSE; #endif sat_idx = 0; if(!single_multi_srch_flag) { if(sys_data_get_cur_satidx() == (UINT16)(~0)) sat_idx = win_load_default_satidx(); else sat_idx = sys_data_get_cur_satidx(); } recreate_sat_view(VIEW_ALL, 0); #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) for(i=0; i<get_sat_num(VIEW_ALL); i++) { get_sat_at((UINT16)i,VIEW_ALL,&s_node); flag = s_node.tuner1_valid | s_node.tuner2_valid; if(s_node.selected_flag != flag) { s_node.selected_flag = flag; modify_sat(s_node.sat_id, &s_node); } } #endif msel = satsrch_sels[SAT_ID - 1]; sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT); OSD_SetMultiselCount(msel, sat_cnt); /*if(sat_idx >= sat_cnt)//albert.li del 2011.7.6 { sat_idx = 0; } OSD_SetMultiselSel(msel,sat_idx);*/ sat_idx=get_sat_idx_in_selected_sats(sat_cnt);//albert.li add 2011.7.6 OSD_SetMultiselSel(msel,sat_idx); if(single_multi_srch_flag) title_id = RS_INSTALLATION_MULTI_SEARCH; else title_id = RS_INSTALLATION_SINGLE_SEARCH; //wincom_open_subtitle(pObj,title_id,0); wincom_open_subtitle_ex(pObj,title_id,0,-15,0,-10);//albert.li add 2011.6.21 /*lastitem = (POBJECT_HEAD)&satsrch_item7; if(single_multi_srch_flag) OSD_SetObjpNext(lastitem, &satsrch_multisats_back); //OSD_SetObjpNext(lastitem, NULL); else OSD_SetObjpNext(lastitem, NULL);*/ win_satsrch_set_nitactive(FALSE); set_container_active(&satsrch_item6, C_ATTR_INACTIVE); get_sat_at(sat_idx,SET_SELECTED,&s_node); if(sys_data->antenna_connect_type == ANTENNA_CONNECT_DUAL_DIFF) { #ifdef SUPPORT_SELECT_SAME_SAT OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, ((s_node.reserve_1 == 0)? RS_LNB1 : RS_LNB2)); #else OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, (s_node.tuner1_valid ? RS_LNB1 : RS_LNB2)); #endif } else { OSD_SetTextFieldContent(&satsrch_txt6_note , STRING_ID, RS_LNB1); } OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL); #ifndef SUPPORT_TWO_TUNER remove_menu_item(&g_win_sat_srchset,(POBJECT_HEAD)&satsrch_item6,(CON_H + CON_GAP)); //guop add #endif break; case EVN_POST_OPEN: //wincom_open_help(pObj,search_set_helpinfo, HELP_CNT); wincom_open_commen_help(pObj); if(single_multi_srch_flag == 1) { OSD_DrawObject((POBJECT_HEAD)&satsrch_split,C_UPDATE_ALL); } sat_cnt = get_tuner_sat_cnt(TUNER_EITHER_SELECT); if(sat_cnt <=(SELSAT_ROW_CNT*2)) win_satsrch_set_fix_drawselectsats(); else { start_scroll_sat_id=0; //api_stop_timer(&sat_display_scroll); sat_display_scroll = api_start_timer("SATDISP",500,(OSAL_T_TIMER_FUNC_PTR)sat_search_scroll_disp_handler); } break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: api_stop_timer(&sat_display_scroll); wincom_close_subtitle(); OSD_ClearObject((POBJECT_HEAD)&g_win_sat_srchset,C_UPDATE_ALL);//albert.li add //OSD_TrackObject( (POBJECT_HEAD) &g_win_submenu/*g_win_mainmenu*/, C_UPDATE_ALL); #ifdef EXIT_KEY_EXIT_ALL_MENU if( exit_key_flag == TRUE) { exit_key_flag =FALSE; mm_leave_all_menu(); } #endif break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_SAT_SCROLL_DISP) { start_scroll_sat_id=win_satsrch_set_scroll_drawselectsats(start_scroll_sat_id); if(sat_display_scroll!=OSAL_INVALID_ID) { api_stop_timer(&sat_display_scroll); sat_display_scroll = api_start_timer("SATDISP",500,(OSAL_T_TIMER_FUNC_PTR)sat_search_scroll_disp_handler); } } break; } return ret; }
static void win_rs232upg_load_chunk_info() { CHUNK_HEADER blk_header; UINT32 id,mask; UINT8 chunk_number; UINT8 i; char strTmp[30]; char strTmp1[30]; char strTmp2[30]; char strTmp3[30]; char strTmp4[30]; char strTmp5[30]; char strTmp6[30]; char strTmp7[30]; char strTmp8[30]; #if (defined HDCP_IN_FLASH ||defined DIVX_CERT_ENABLE) UINT32 Block_id = 0, HDCP_key_ID = 0,divx_key_ID = 0,ciplus_key_ID = 0; UINT8 hdcp_chunk_index = 0; UINT8 cipluskey_chunk_index = 0; BOOL has_hdcp_chunk = FALSE; BOOL has_cipluskey_chunk = FALSE; UINT8 divx_chunk_index = 0; BOOL has_divx_chunk = FALSE; UINT32 special_type =0; #endif //-a by wangyang del seecode upgrade {{ UINT32 seecode_key_ID = 0; UINT8 seecode_chunk_index = 0; BOOL has_seecodekey_chunk = FALSE; //-a by wangyang del seecode upgrade }} chunk_number = sto_chunk_count(0,0); if(chunk_number == 0) return; if(InitBlockList() != SUCCESS) return; if(rs232upg_upgtype_chars != NULL) FREE(rs232upg_upgtype_chars); rs232upg_upgtype_chars = (UINT16**)MALLOC(sizeof(UINT16*)*chunk_number); if(rs232upg_upgtype_chars == NULL) ASSERT(0); for(i=0; i<chunk_number; i++) { rs232upg_upgtype_chars[i] = (UINT16*)MALLOC(16*sizeof(UINT16)); if(rs232upg_upgtype_chars[i] == NULL) ASSERT(0); } // STRCPY(rs232upg_upgtype_chars[0],"allcode"); { UINT16 *unistr=NULL; unistr=OSD_GetUnicodeString(RS_TOTAL_FLASH); ComUniStrCopyChar(rs232upg_upgtype_chars[0],(UINT16 *)unistr); //ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_TOTAL_FLASH),strTmp); //STRCPY(rs232upg_upgtype_chars[0],strTmp); } for(i=1; i<chunk_number; i++) { id = mask = 0; sto_chunk_goto(&id,mask,i + 1); sto_get_chunk_header(id, &blk_header); #if (defined HDCP_IN_FLASH ||defined DIVX_CERT_ENABLE || defined CI_PLUS_SUPPORT ) special_type = 0; #ifdef HDCP_IN_FLASH HDCP_key_ID = HDCPKEY_CHUNK_ID; if(((UINT32)blk_header.id) == HDCP_key_ID) { hdcp_chunk_index = i; has_hdcp_chunk = TRUE; special_type = 1; } #endif #ifdef DIVX_CERT_ENABLE divx_key_ID = DIVX_CHUCK_ID; if(((UINT32)blk_header.id) == divx_key_ID) { divx_chunk_index = i; has_divx_chunk = TRUE; special_type = 1; } #endif #ifdef CI_PLUS_SUPPORT ciplus_key_ID = CIPLUSKEY_CHUNK_ID; if(((UINT32)blk_header.id) == ciplus_key_ID) { cipluskey_chunk_index = i; has_cipluskey_chunk = TRUE; special_type = 1; } #endif //-a by wangyang del seecode upgrade {{ seecode_key_ID =SEECODE_CHUNK_ID if(((UINT32)blk_header.id) == ciplus_key_ID) { seecode_chunk_index = i; has_seecodekey_chunk = TRUE; special_type = 1; } //-a by wangyang del seecode upgrade }} if(special_type != 1) { STRCPY(rs232upg_upgtype_chars[i], blk_header.name); //-a by wangyang del seecode upgrade {{ if(i==1) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_FIRMWARE),strTmp1); STRCPY(rs232upg_upgtype_chars[i], strTmp1); } else if (i == 2) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_SEECODE),strTmp2); STRCPY(rs232upg_upgtype_chars[i],strTmp2); } else if (i == 3) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_LOGO),strTmp3); STRCPY(rs232upg_upgtype_chars[i], strTmp3); } else if (i == 4) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_CCCAM_PRIO),strTmp4); STRCPY(rs232upg_upgtype_chars[i], strTmp4); } else if (i == 5) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_CCCAM_NEWCAM),strTmp5); STRCPY(rs232upg_upgtype_chars[i], strTmp5); } else if (i == 6) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_DEFAULT_DATA),strTmp6); STRCPY(rs232upg_upgtype_chars[i], strTmp6); } else if (i == 7) { ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_USER_DATA),strTmp7); STRCPY(rs232upg_upgtype_chars[i], strTmp7); } //-a by wangyang del seecode upgrade }} } #else STRCPY(rs232upg_upgtype_chars[i],blk_header.name); //-a by wangyang del seecode upgrade {{ seecode_key_ID =SEECODE_CHUNK_ID; if(((UINT32)blk_header.id) == seecode_key_ID) { seecode_chunk_index = i; has_seecodekey_chunk = TRUE; //special_type = 1; } if(i==1) { UINT16 *unistr=NULL; unistr=OSD_GetUnicodeString(RS_FIRMWARE); ComUniStrCopyChar(rs232upg_upgtype_chars[1],(UINT16 *)unistr); //ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_FIRMWARE),strTmp1); //STRCPY(rs232upg_upgtype_chars[1], strTmp1); } else if (i == 2) { // ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_SEECODE),strTmp2); // STRCPY(rs232upg_upgtype_chars[i], strTmp2); } else if (i == 3) { // ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_LOGO),strTmp3); // STRCPY(rs232upg_upgtype_chars[i],strTmp3); } else if (i == 4) { // ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_CCCAM_PRIO),strTmp4); // STRCPY(rs232upg_upgtype_chars[i], strTmp4); } else if (i == 5) { // ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_CCCAM_NEWCAM),strTmp5); // STRCPY(rs232upg_upgtype_chars[i], strTmp5); } else if (i == 6) { // ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_DEFAULT_DATA),strTmp6); // STRCPY(rs232upg_upgtype_chars[i], strTmp6); } else if (i == 9) { // ComUniStrToAsc((UINT8 *)OSD_GetUnicodeString(RS_USER_DATA),strTmp7); // STRCPY(rs232upg_upgtype_chars[2],strTmp7); } //-a by wangyang del seecode upgrade }} #endif } //-a by wangyang del seecode upgrade {{ if(has_seecodekey_chunk == TRUE) { FREE(rs232upg_upgtype_chars[seecode_chunk_index]); for(i=seecode_chunk_index; i<chunk_number;i++) rs232upg_upgtype_chars[i] = rs232upg_upgtype_chars[i+1]; chunk_number--; #ifdef HDCP_IN_FLASH if( (has_seecodekey_chunk == TRUE) && seecode_chunk_index < hdcp_chunk_index) hdcp_chunk_index --; if( (has_divx_chunk == TRUE) && seecode_chunk_index < cipluskey_chunk_index) cipluskey_chunk_index --; if( (has_divx_chunk == TRUE) && seecode_chunk_index < divx_chunk_index) divx_chunk_index --; #endif } //-a by wangyang del seecode upgrade }} #ifdef HDCP_IN_FLASH if(has_hdcp_chunk == TRUE) { FREE(rs232upg_upgtype_chars[hdcp_chunk_index]); for(i=hdcp_chunk_index; i<chunk_number;i++) rs232upg_upgtype_chars[i] = rs232upg_upgtype_chars[i+1]; chunk_number--; if( (has_cipluskey_chunk == TRUE) && hdcp_chunk_index < cipluskey_chunk_index) cipluskey_chunk_index --; if( (has_divx_chunk == TRUE) && hdcp_chunk_index < divx_chunk_index) divx_chunk_index --; } #endif #ifdef DIVX_CERT_ENABLE if(has_divx_chunk == TRUE) { FREE(rs232upg_upgtype_chars[divx_chunk_index]); for(i=divx_chunk_index; i<chunk_number;i++) rs232upg_upgtype_chars[i] = rs232upg_upgtype_chars[i+1]; chunk_number--; if( (has_cipluskey_chunk == TRUE) && divx_chunk_index < cipluskey_chunk_index) cipluskey_chunk_index --; } #endif #ifdef CI_PLUS_SUPPORT if(has_cipluskey_chunk == TRUE) { FREE(rs232upg_upgtype_chars[cipluskey_chunk_index]); for(i=cipluskey_chunk_index; i<chunk_number;i++) rs232upg_upgtype_chars[i] = rs232upg_upgtype_chars[i+1]; chunk_number--; } #endif #if (defined HDCP_IN_FLASH ||defined DIVX_CERT_ENABLE || defined CI_PLUS_SUPPORT ) OSD_SetMultiselSelTable(&rs232upg_sel_upgrade_type,rs232upg_upgtype_chars); OSD_SetMultiselCount(&rs232upg_sel_upgrade_type, chunk_number); #else OSD_SetMultiselSelTable(&rs232upg_sel_upgrade_type,rs232upg_upgtype_chars); OSD_SetMultiselCount(&rs232upg_sel_upgrade_type, 2); #endif }
static void win_pvod_load_prog_info() { UINT16 prog_count; UINT8 i; char string[MAX_STRING_LEN]; FILE *pFileSrc=NULL; char *buf=NULL; int FileLen; SchduleProg prog; int ret; if(pvod_prog_name != NULL) { FREE(pvod_prog_name); } #if 0 pFileSrc = fopen(xml_path,"rb"); if(pFileSrc==NULL) { OSD_SetMultiselSelType(&pvod_sel_prog_name,STRING_PROC); return; } fseek( pFileSrc, 0, SEEK_END ); FileLen = ftell( pFileSrc ); buf = (char*)MALLOC(FileLen*sizeof(char)); if(buf==NULL) { ASSERT(0); } fseek( pFileSrc, 0, SEEK_SET); fread(buf, 1, FileLen,pFileSrc); if(parse_xml_for_CTI(buf,FileLen)==RET_FAILURE) { return; } Set_first_Prog_for_CTI(); prog_count = Get_Prog_Count_for_CTI(); pvod_prog_name = (char**)MALLOC(sizeof(char*)*prog_count); Get_Prog_Attributes_for_CTI(&prog); for(i=0; i<prog_count; i++) { pvod_prog_name[i] = (char*)MALLOC(MAX_STRING_LEN*sizeof(char)); if(pvod_prog_name[i] == NULL) ASSERT(0); } for(i=0; i<prog_count; i++) { Get_Prog_Attributes_for_CTI(&prog); pvod_prog_name[i] = (char*)MALLOC(MAX_STRING_LEN*sizeof(char)); STRCPY(pvod_prog_name[i],prog.progGID); Set_next_Prog_for_CTI(); //sprintf(string,"123-test-prog-%d",i+1); //STRCPY(pvod_prog_name[i],string);//test } #endif pvod_prog_name = (char**)MALLOC(sizeof(char*)*1); pvod_prog_name[0] = MALLOC(MAX_STRING_LEN*sizeof(char)); STRCPY(pvod_prog_name[0],"322-121-PvodV1.0"); OSD_SetMultiselSelType(&pvod_sel_prog_name,STRING_ANSI); OSD_SetMultiselSelTable(&pvod_sel_prog_name,pvod_prog_name); OSD_SetMultiselCount(&pvod_sel_prog_name, 1); OSD_SetMultiselSel(&pvod_sel_prog_name,0); return; }
void win_av_load_setting(void) { MULTISEL * msel; SYSTEM_DATA* sys_data; UINT32 i,sel,cnt,rf_mode; sys_data = sys_data_get(); /* TV MODE */ msel = av_item_set[TVMODE_ID - 1]; OSD_SetMultiselCount(msel, get_tv_mode_count()); sel = tvmode_setting_to_osd(sys_data->avset.tv_mode); OSD_SetMultiselSel(msel, sel); /* TV Aspect */ msel = av_item_set[TVASPECT_ID - 1]; sel = win_av_get_index(sys_data); OSD_SetMultiselSel(msel, sel); /* Video Output */ msel = av_item_set[VIDEOOUT_ID - 1]; #ifdef HDTV_SUPPORT if (sys_data_get_scart_out() == SCART_YUV) sel = 0; else sel = 1; #else sel = sys_data->avset.scart_out; #endif OSD_SetMultiselSel(msel, sel); /* VCR loopthrough */ msel = av_item_set[VCR_ID - 1]; if(sys_data->avset.scart_out == SCART_RGB) sel = 1; else sel = sys_data->vcrloopmode; OSD_SetMultiselSel(msel, sel); /* RF Mode */ msel = av_item_set[RFSYSTEM_ID - 1]; cnt = OSD_GetMultiselCount(msel); sel = sys_data->avset.rf_mode; if(sel >= cnt) { sel = 0; sys_data->avset.rf_mode = sel; } OSD_SetMultiselSel(msel, sel); rf_mode = sel; /* RF Channel */ msel = av_item_set[RFCHAN_ID - 1]; sel = sys_data->avset.rf_channel; if(sel < rf_ch_range[rf_mode][0] || sel> rf_ch_range[rf_mode][1]) { sel = rf_ch_range[rf_mode][0]; sys_data->avset.rf_channel = sel; sys_data_set_rf(sys_data->avset.rf_mode,sys_data->avset.rf_channel); } OSD_SetMultiselSel(msel, sel); OSD_SetMultiselSelTable(msel, rf_ch_range[rf_mode]); #ifdef HDTV_SUPPORT /* HDMI Video Out */ msel = av_item_set[HDMIOUT_ID - 1]; sel = sys_data->avset.video_format; OSD_SetMultiselSel(msel, sel); /* Digital Audio Out */ msel = av_item_set[AUDIOOUT_ID - 1]; sel = sys_data->avset.audio_output; OSD_SetMultiselSel(msel, sel); #endif #if (SUPPORT_DUAL_OUTPUT_ONOFF) /* Dual Output */ msel = av_item_set[DUALOUT_ID- 1]; sel = sys_data->avset.dual_output; OSD_SetMultiselSel(msel, sel); #endif }
static void win_atnsetm_load_motor_antenna_setting(BOOL update) { MULTISEL* msel; EDIT_FIELD* edf; CONTAINER* item; SYSTEM_DATA* sys_data; antenna_t* pAntenna; Usals_Local* pLocal; UINT32 val = 0; sys_data = sys_data_get(); pAntenna = &sys_data->tuner_lnb_antenna[antset_cur_tuner]; pLocal = &sys_data->local; val = pLocal->local_longitude & 0x7FFF; if(val>18000) pLocal->local_longitude = 0; val = pLocal->local_latitude & 0x7FFF; if(val>9000) pLocal->local_latitude = 0; /* LNB type */ msel = anesetm_msels[LNB_ID - 1]; OSD_SetMultiselCount(msel, get_lnb_type_cnt()); val = get_lnb_type_index(pAntenna->lnb_type,pAntenna->lnb_low,pAntenna->lnb_high); if(val >= get_lnb_type_cnt()) val = 0; msel->nSel = val; item = anesetm_items[LNB_ID - 1]; if(update) OSD_DrawObject((POBJECT_HEAD)item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); /* Motor type */ msel = anesetm_msels[MOTOR_ID - 1]; if(pAntenna->motor_type != LNB_MOTOR_DISEQC12 && pAntenna->motor_type != LNB_MOTOR_USAL) pAntenna->motor_type = LNB_MOTOR_DISEQC12; if(pAntenna->motor_type == LNB_MOTOR_DISEQC12) val = 0; else val = 1; msel->nSel = val; item = anesetm_items[MOTOR_ID - 1]; if(update) OSD_DrawObject((POBJECT_HEAD)item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); /* Local longitute */ edf = anesetm_edfs[0]; OSD_SetEditFieldContent(edf,STRING_NUMBER,pLocal->local_longitude & 0x7FFF); if(pLocal->local_longitude & 0x8000) val = 1; else val = 0; OSD_SetEditFieldSuffix(edf, STRING_ANSI, (UINT32)longitute_sub_chars[val]); longitute_sub_idx = val; /* Local latitute */ edf = anesetm_edfs[1]; OSD_SetEditFieldContent(edf,STRING_NUMBER,pLocal->local_latitude & 0x7FFF); if(pLocal->local_latitude & 0x8000) val = 1; else val = 0; OSD_SetEditFieldSuffix(edf, STRING_ANSI, (UINT32)latitute_sub_chars[val]); latitute_sub_idx = val; win_atnsetm_load_local_action(update); }
static PRESULT atnsetf_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 level,quality,lock; UINT16 default_satidx; UINT32 sat_cnt; static UINT8 tone_voice_init; SYSTEM_DATA* sys_data; static UINT32 interval; MULTISEL* msel; VACTION unact; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: if(sys_data_get_cur_satidx() == (UINT16)(~0)) {//sat_idx have been modified in other page default_satidx = win_load_default_satidx(); } else {//do not modified yet,load default playing programme satellite default_satidx = sys_data_get_cur_satidx(); } recreate_sat_view(VIEW_ALL, 0); win_atnsetf_load_tuner_configuration(); sat_cnt = win_atnsetf_load_sat_cnt(FALSE); if(sat_cnt == 0) { ret = PROC_LEAVE; } else { /*Sat Name*/ if(default_satidx >= sat_cnt) default_satidx = 0; msel = anesetf_msels[SAT_ID - 1]; OSD_SetMultiselCount(msel, sat_cnt); OSD_SetMultiselSel(msel,default_satidx); win_atnsetf_load_sat_setting(default_satidx,FALSE); } if(ret != PROC_LEAVE) wincom_open_subtitle(pObj,RS_INSTALLATION_ANTENNA_SETUP,0); break; case EVN_POST_OPEN: tone_voice_init = 0; //win_signal_open(pObj); #if 1//def SUPPORT_TWO_TUNER win_signal_open_ex(pObj,pObj->frame.uLeft+20,pObj->frame.uTop + 7 * (CON_H + CON_GAP) + 50); #else win_signal_open_ex(pObj,pObj->frame.uLeft+20,pObj->frame.uTop + 6 * (CON_H + CON_GAP) + 50); #endif wincom_open_help(pObj,antenna_setup_helpinfo , HELP_CNT); win_atnsetf_tuner_frontend(); win_signal_refresh(); //win_signal_update(); break; case EVN_PRE_CLOSE: if(check_node_modified(TYPE_SAT_NODE) ) { UINT8 back_saved; win_compopup_init(WIN_POPUP_TYPE_SMSG); win_compopup_set_msg(NULL, NULL, RS_MSG_SAVING_DATA); win_compopup_open_ext(&back_saved); update_data(TYPE_SAT_NODE); osal_task_sleep(500); win_compopup_smsg_restoreback(); } /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: win_signal_close(); sys_data_save(1); wincom_close_help(); wincom_close_subtitle(); OSD_TrackObject( (POBJECT_HEAD) &g_win_mainmenu, C_UPDATE_ALL); #ifdef ANTENNA_INSTALL_BEEP if(sys_data->install_beep) { #if(defined(DVBT_BEE_TONE) && ANTENNA_INSTALL_BEEP == 1) api_audio_stop_tonevoice(); #elif (defined(AUDIO_SPECIAL_EFFECT) && ANTENNA_INSTALL_BEEP == 2) api_audio_beep_stop(); #endif } #endif break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_STATUS_SIGNAL) { win_signal_refresh(); //win_signal_update(); #ifdef ANTENNA_INSTALL_BEEP if(sys_data->install_beep) { level = (UINT8)(param2>>16); quality = (UINT8)(param2>>8); lock = (UINT8)(param2>>0); #if(defined(DVBT_BEE_TONE) && ANTENNA_INSTALL_BEEP == 1) if(quality<20) level = 0; else if(quality<40) level = 1; else if(quality<55) level = 3; else if(quality <70) level = 5; else level = 7; api_audio_gen_tonevoice(level, tone_voice_init); #elif (defined(AUDIO_SPECIAL_EFFECT) && ANTENNA_INSTALL_BEEP == 2) if(lock) level = 100;//100/quality; else level = 1;//100/quality; if(!tone_voice_init || level!=interval) { if(!tone_voice_init) api_audio_beep_start(beep_bin_array,beep_bin_array_size); interval = level; api_audio_beep_set_interval(interval); } #endif tone_voice_init = 1; } #endif }