void win_opts_enter_key(POBJECT_HEAD pObj,UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); OSD_RECT rect; COM_POP_LIST_PARAM_T param; rect.uLeft=CON_L+TXTS_L_OF; rect.uWidth=TXTS_W; rect.uHeight=250; param.selecttype = POP_LIST_SINGLESELECT; switch(id) { case MENU_YT_OPTS: rect.uHeight = 300; rect.uTop=CON_T + (CON_H + CON_GAP)*1; param.cur=p_sys_data->osd_set.time_out-1; p_sys_data->osd_set.time_out = win_com_open_sub_list(POP_LIST_MENU_OSDSET,&rect,¶m)+1; win_youtube_opts_ytopt_string(p_sys_data->osd_set.time_out); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_YT_OPTS_NEXT_OPTS: rect.uHeight = 300; rect.uTop=CON_T + (CON_H + CON_GAP)*2; param.cur=p_sys_data->osd_set.osd_trans; p_sys_data->osd_set.osd_trans = win_com_open_sub_list(POP_LIST_MENU_OSDSET,&rect,¶m); win_youtube_opts_ytt_string(p_sys_data->osd_set.osd_trans); OSD_TrackObject(pObj,C_UPDATE_ALL); sys_data_set_palette(0); break; } }
void win_language_enter_key(POBJECT_HEAD pObj,UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); OSD_RECT rect; COM_POP_LIST_PARAM_T param; rect.uLeft=CON_L+TXTS_L_OF; rect.uWidth=TXTS_W; rect.uHeight=340; param.selecttype = POP_LIST_SINGLESELECT; switch(id) { case MENU_LANGUAGE_MENU_LAN: rect.uTop=CON_T; param.cur=p_sys_data->lang.OSD_lang; p_sys_data->lang.OSD_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_OSD,&rect,¶m); win_lan_set_menu_lan_string(p_sys_data->lang.OSD_lang); sys_data_select_language(p_sys_data->lang.OSD_lang); wincom_open_subtitle((POBJECT_HEAD)&win_lan_con,RS_SYSTEM_LANGUAGE, 0); OSD_TrackObject((POBJECT_HEAD)&win_lan_con,C_DRAW_SIGN_EVN_FLG| C_UPDATE_ALL); break; case MENU_LANGUAGE_1ST_AUDIO_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*1; param.cur=p_sys_data->lang.Audio_lang_1; p_sys_data->lang.Audio_lang_1 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_1st_audio_lan_string(p_sys_data->lang.Audio_lang_1); OSD_TrackObject(pObj,C_UPDATE_ALL); ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2); break; case MENU_LANGUAGE_2ND_AUDIO_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*2; param.cur=p_sys_data->lang.Audio_lang_2; p_sys_data->lang.Audio_lang_2 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_2nd_audio_lan_string(p_sys_data->lang.Audio_lang_2); OSD_TrackObject(pObj,C_UPDATE_ALL); ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2); break; case MENU_LANGUAGE_SUB_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*3; param.cur=p_sys_data->lang.sub_lang; p_sys_data->lang.sub_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_subtitle_lan_string(p_sys_data->lang.sub_lang); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_LANGUAGE_TXT_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*3; rect.uHeight=300; param.cur=p_sys_data->lang.ttx_lang; p_sys_data->lang.ttx_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_teletext_lan_string(p_sys_data->lang.ttx_lang); OSD_TrackObject(pObj,C_UPDATE_ALL); break; } }
void win_time_enter_key(POBJECT_HEAD pObj,UINT8 id) { INT32 hoffset, moffset; SYSTEM_DATA* p_sys_data=sys_data_get(); OSD_RECT rect; COM_POP_LIST_PARAM_T param; rect.uLeft=CON_L+TXTS_L_OF; rect.uWidth=TXTS_W; rect.uHeight=MENU_TIMESET_GMT_OFFESET_POPUP_H; param.selecttype = POP_LIST_SINGLESELECT; switch(id) { case MENU_TIMESET_GMT_OFFESET: rect.uHeight = MENU_TIMESET_GMT_OFFESET_POPUP_H; rect.uTop=CON_T + (CON_H + CON_GAP)*1; param.cur=p_sys_data->local_time.GMToffset_count; p_sys_data->local_time.GMToffset_count = win_com_open_sub_list(POP_LIST_MENU_TIME,&rect,¶m); win_time_set_GMT_Offset_string(p_sys_data->local_time.GMToffset_count); OSD_TrackObject(pObj,C_UPDATE_ALL); sys_data_gmtoffset_2_hmoffset(&hoffset, &moffset); set_STC_offset( hoffset, moffset, 0); get_local_time(&win_time_local_time); set_time_data(); set_time_clock(); OSD_DrawObject((POBJECT_HEAD )&time_item_con4,C_UPDATE_ALL); OSD_DrawObject((POBJECT_HEAD )&time_item_con5,C_UPDATE_ALL); win_time_set_time_zone_citys(TRUE); break; } }
void win_tms_enter_key(POBJECT_HEAD pObj,UINT8 id) { #if (defined(MULTI_PARTITION_SUPPORT) && !defined(DISK_MANAGER_SUPPORT)) if (id == 4) { OSD_RECT rect; COM_POP_LIST_PARAM_T param; rect.uLeft = CON_L + TXTS_L_OF - 100; rect.uWidth = TXTS_W+80; rect.uHeight = 300; param.selecttype = POP_LIST_SINGLESELECT; if(storage_get_volume_count()<=1) return; rect.uTop = CON_T + (CON_H + CON_GAP) * (id - 1); param.cur = m_volume_index; m_volume_index = win_com_open_sub_list(POP_LIST_TYPE_VOLUMELIST,&rect,¶m); win_set_vol_string(&tms_item_txtset4); OSD_TrackObject(pObj, C_UPDATE_ALL); } #endif }
void win_dis_enter_key(UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); UINT16 result; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 sel = 0; POBJECT_HEAD pObj,pObjItem; MULTISEL* msel; msel = dis_item_set[id - 1]; pObj = (POBJECT_HEAD)msel; pObjItem = (POBJECT_HEAD)dis_items[id - 1]; rect.uLeft = CON_L+SEL_L_OF; rect.uWidth = SEL_W; rect.uTop = pObj->frame.uTop; param.selecttype = POP_LIST_SINGLESELECT; switch(id) { case IDC_DIS_BRIGHT: sel = p_sys_data->avset.brightness; break; case IDC_DIS_CONTRAST: sel = p_sys_data->avset.contrast; break; case IDC_DIS_SATURATION: sel = p_sys_data->avset.saturation; break; case IDC_DIS_HUE: sel = p_sys_data->avset.hue; break; case IDC_DIS_SHARP: sel = p_sys_data->avset.sharpness; break; } rect.uHeight = 340; param.cur = sel - m_dis_set_range[id][0]; sel = win_com_open_sub_list(POP_LIST_MENU_DISPLAY_SET,&rect,¶m) + m_dis_set_range[id][0]; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); }
static void win_item_enter_key(UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); //UINT16 result; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 sel; POBJECT_HEAD pObj,pObjItem; MULTISEL* msel; msel = multisel_items[id - 1]; pObj = (POBJECT_HEAD)msel; pObjItem = (POBJECT_HEAD)con_items[id - 1]; rect.uLeft=CON_L+TXTS_L_OF; rect.uWidth=TXTS_W; rect.uTop = pObj->frame.uTop; param.selecttype = POP_LIST_SINGLESELECT; if(id == COUNTRY_ID) { param.cur = p_sys_data->country; } else if(id == NETWORK_ID) { if(GERMANY == OSD_GetMultiselSel(&item_country_sel)) param.cur = p_sys_data->germ_servs_type; //germ_network_setting_to_osd(&(p_sys_data->current_ft), p_sys_data->current_ft_count); else { param.cur = network_setting_to_osd(&(p_sys_data->current_ft[0])); } } rect.uHeight=300; sel = win_com_open_sub_list(POP_LIST_MENU_COUNTRY_NETWORK,&rect,¶m); if (sel == param.cur) return; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); }
void hddfmt_vol_enter_key(POBJECT_HEAD pObj,UINT8 id) { OSD_RECT rect; COM_POP_LIST_PARAM_T param; rect.uLeft = CON_L + TXTS_L_OF - 100; rect.uWidth = TXTS_W+80; rect.uHeight = 300; param.selecttype = POP_LIST_SINGLESELECT; if(storage_get_volume_count()<=1 || hddfmt_cur_volume < 0) return; rect.uTop = CON_T + (CON_H + CON_GAP) * 2; param.cur = hddfmt_cur_volume; hddfmt_cur_volume = win_com_open_sub_list(POP_LIST_TYPE_VOLUMELIST,&rect,¶m); hddfmt_set_vol_string(&hddfmt_item_txtset1); OSD_TrackObject(pObj, C_UPDATE_ALL); win_hddfmt_draw_disk_infor(); }
static void nc_enter_key(POBJECT_HEAD pObj) { OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT8 data_fromidx=0,data_toidx=current_index-1; rect.uLeft=CON_L+EDIT_L_OF; rect.uTop=CON_T + (CON_H + CON_GAP)*1; rect.uWidth=EDIT_W; rect.uHeight=300; param.selecttype = POP_LIST_SINGLESELECT; param.cur=data_toidx; data_fromidx = win_com_open_sub_list(POP_LIST_NEWCADM_SERVER,&rect,¶m); nc_copydata(data_fromidx,data_toidx); nc_serinfo_display(current_index,TRUE); OSD_TrackObject(pObj,C_UPDATE_ALL); // nc_serinfo_display(current_index,FALSE); // OSD_TrackObject((POBJECT_HEAD)&g_win_newcamd_setting,C_DRAW_SIGN_EVN_FLG| C_UPDATE_ALL); }
void win_av_enter_key(UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); UINT16 result; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 sel; POBJECT_HEAD pObj,pObjItem; MULTISEL* msel; msel = av_item_set[id - 1]; pObj = (POBJECT_HEAD)msel; pObjItem = (POBJECT_HEAD)av_items[id - 1]; rect.uLeft=CON_L+SEL_L_OF; rect.uWidth=SEL_W; rect.uTop = pObj->frame.uTop; param.selecttype = POP_LIST_SINGLESELECT; extern UINT8 g_rgb_yuv_changed; switch(id) { case TVMODE_ID: rect.uHeight=300; param.cur = tvmode_setting_to_osd(p_sys_data->avset.tv_mode); sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (g_rgb_yuv_changed) break; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case TVASPECT_ID: rect.uHeight= 300;//26*4+20; param.cur=win_av_get_index(p_sys_data); sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (g_rgb_yuv_changed) break; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case RFSYSTEM_ID: rect.uTop = 240; rect.uHeight= 300;//26*4+20; param.cur = p_sys_data->avset.rf_mode; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (g_rgb_yuv_changed) break; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case RFCHAN_ID: rect.uTop = 240; rect.uHeight = 300;//150; param.cur=p_sys_data->avset.rf_channel-rf_ch_range[p_sys_data->avset.rf_mode][0]; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m)+rf_ch_range[p_sys_data->avset.rf_mode][0]; if (g_rgb_yuv_changed) break; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; #ifdef HDTV_SUPPORT case HDMIOUT_ID: rect.uTop = 240; rect.uHeight = 300;//26*5+20; param.cur = p_sys_data->avset.video_format; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (g_rgb_yuv_changed) break; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case AUDIOOUT_ID: rect.uTop = 240; rect.uHeight = 260;//26*3+20; param.cur = p_sys_data->avset.audio_output; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (g_rgb_yuv_changed) break; OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; #endif } }
static PRESULT motorset_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT32 sel; UINT16* Uni_str; UINT8 bID; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; S_NODE s_node; UINT16 cur_idx; UINT8 back_saved; bID = OSD_GetObjID(pObj); switch(event) { case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == SAT_ID) get_tuner_sat_name(antset_cur_tuner,sel,Uni_str); else //TP_ID { get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); get_tp_name(s_node.sat_id,sel,Uni_str); } break; case EVN_POST_CHANGE: sel = param1; SAT_TP_CHANGED: /* Need to turn SAT/TP here*/ if(bID == SAT_ID) { win_motorset_load_sat(SAT_IDX,TRUE); win_motorset_set_frontend(); get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); wincom_dish_move_popup_open(0xFFFF,s_node.sat_id,antset_cur_tuner,&back_saved); } else { win_motorset_turn_tp(); } break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_ENTER) { param.selecttype = POP_LIST_SINGLESELECT; OSD_SetRect2(&rect,&pObj->frame); rect.uLeft -= 40; rect.uWidth += 40; if(bID == SAT_ID) { list_type = POP_LIST_TYPE_SAT; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300; param.id = antset_cur_tuner; param.cur = SAT_IDX; } else// if(bID == TP_ID) { list_type = POP_LIST_TYPE_TP; list_type = POP_LIST_TYPE_TP; rect.uHeight = 300; get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); param.id = s_node.sat_id; param.cur = TP_IDX; } cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; if(bID == SAT_ID) SAT_IDX = cur_idx; else TP_IDX = cur_idx; OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); sel = cur_idx; goto SAT_TP_CHANGED; } break; } return ret; }
static PRESULT timerset_mselinfo_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 sel; VACTION unact; P_NODE p_node; UINT16* Uni_str; TIMER_SET_CONTENT* settimer; COM_POP_LIST_PARAM_T param; OSD_RECT rect; settimer = &timer_set; switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); break; case EVN_POST_CHANGE: sel = param1; break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_ENTER) // select channel { OSD_SetRect2(&rect,&pObj->frame); rect.uTop -= 80; rect.uLeft -= 40; rect.uWidth += 40; rect.uHeight = 300; param.selecttype = POP_LIST_SINGLESELECT; param.cur = TIMER_SERVICE_INFO; sel = win_com_open_sub_list(POP_LIST_TYPE_CHANLIST,&rect,¶m); if(sel < (UINT32)TIMER_SERVICE_INFO_CNT) { get_prog_at(sel,&p_node); settimer->wakeup_channel = p_node.prog_id; TIMER_SERVICE_INFO = sel; } OSD_TrackObject( (POBJECT_HEAD )&timer_con_serviceinfo, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; get_prog_at(sel,&p_node); if(p_node.ca_mode) ComAscStr2Uni("$", Uni_str); ComUniStrCopyChar((UINT8*)&Uni_str[p_node.ca_mode], p_node.service_name); if((TIMER_MODE == TIMER_MODE_OFF) || (TIMER_SERVICE_TYPE != TIMER_SERVICE_DVR_RECORD) || (p_node.ca_mode == 1)) { set_container_active(&timer_con_rec_type, C_ATTR_INACTIVE); settimer->wakeup_message = 0; } else if((TIMER_SERVICE_TYPE == TIMER_SERVICE_DVR_RECORD) && (!pvr_info.hdd_valid)) //guop add set_container_active(&timer_con_rec_type, C_ATTR_INACTIVE); else { set_container_active(&timer_con_rec_type, C_ATTR_ACTIVE); if(settimer->wakeup_message > 2) settimer->wakeup_message = 0; } OSD_SetMultiselSel(&timer_msel_rec_type, settimer->wakeup_message); OSD_DrawObject((POBJECT_HEAD)&timer_con_rec_type, C_UPDATE_ALL); break; } return ret; }
static PRESULT satsrch_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT32 sel; UINT8 bID; char str[10]; UINT16 * Uni_str; UINT8* pstr; UINT16 cur_idx; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 i,n = 0; S_NODE s_node; UINT32 flag; bID = OSD_GetObjID(pObj); switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); break; case EVN_POST_CHANGE: sel = param1; if(bID == MODE_ID) win_satsrch_set_nitactive(TRUE); if(bID == SAT_ID) { get_sat_at(sel,SET_SELECTED,&s_node); #ifdef SUPPORT_TWO_TUNER //guop modify #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 OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL); #endif } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == SAT_ID) { get_tuner_sat_name(2,sel,Uni_str); sys_data_set_cur_satidx(sel); } break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_POP_UP) { OSD_SetRect2(&rect,&pObj->frame); switch(bID) { case SAT_ID: rect.uLeft -= 80; rect.uWidth += 80; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300; param.id = TUNER_EITHER; param.cur = SATSRCH_SAT_IDX; if(single_multi_srch_flag == 0) param.selecttype = POP_LIST_SINGLESELECT; else { MEMSET(sat_select,0,sizeof(sat_select)); n = get_tuner_sat_cnt(TUNER_EITHER); if(n == 0) { list_type = 0xFF; break; } for(i=0;i<n;i++) { get_tuner_sat(TUNER_EITHER,i,&s_node); if(s_node.selected_flag) sat_select[i] = 1; } #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) param.selecttype = POP_LIST_MULTISELECT; #else param.selecttype = POP_LIST_SINGLESELECT; #endif param.select_array = sat_select; } break; default: list_type = 0xFF; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(single_multi_srch_flag == 0) { if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; } else { /* Check the select satellite */ #if (defined(SUPPORT_TWO_TUNER) || !defined(SELECT_SAT_ONLY)) for(i=0;i<n;i++) { if(win_comlist_ext_check_item_sel(i)) flag = 1; else flag = 0; get_tuner_sat(TUNER_EITHER,i,&s_node); if(s_node.selected_flag != flag) { s_node.selected_flag = flag; modify_sat(s_node.sat_id, &s_node); } } update_data(TYPE_SAT_NODE); #endif } if(single_multi_srch_flag == 0) SATSRCH_SAT_IDX = cur_idx; get_sat_at(cur_idx,SET_SELECTED,&s_node); #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 OSD_DrawObject((POBJECT_HEAD)&satsrch_txt6_note, C_UPDATE_ALL); OSD_TrackObject((POBJECT_HEAD)&satsrch_item1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if(single_multi_srch_flag) { /* TODO : Draw the select satellites name */ win_satsrch_set_drawselectsats(); } } break; } return ret; }
void win_language_enter_key(POBJECT_HEAD pObj,UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT8 lang_code[8]={0}; rect.uLeft=CON_L+TXTS_L_OF; rect.uWidth=TXTS_W; rect.uHeight=350;//340; param.selecttype = POP_LIST_SINGLESELECT; switch(id) { case MENU_LANGUAGE_MENU_LAN: rect.uTop=CON_T; param.cur=p_sys_data->lang.OSD_lang; p_sys_data->lang.OSD_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_OSD,&rect,¶m); win_lan_set_menu_lan_string(p_sys_data->lang.OSD_lang); sys_data_select_language(p_sys_data->lang.OSD_lang); wincom_open_subtitle((POBJECT_HEAD)&win_lan_con,RS_SYSTEM_LANGUAGE, 0); OSD_TrackObject((POBJECT_HEAD)&win_lan_con,C_DRAW_SIGN_EVN_FLG| C_UPDATE_ALL); break; case MENU_LANGUAGE_1ST_AUDIO_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*1; param.cur=p_sys_data->lang.Audio_lang_1; p_sys_data->lang.Audio_lang_1 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_1st_audio_lan_string(p_sys_data->lang.Audio_lang_1); OSD_TrackObject(pObj,C_UPDATE_ALL); ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2); break; case MENU_LANGUAGE_2ND_AUDIO_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*2; param.cur=p_sys_data->lang.Audio_lang_2; p_sys_data->lang.Audio_lang_2 = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_2nd_audio_lan_string(p_sys_data->lang.Audio_lang_2); OSD_TrackObject(pObj,C_UPDATE_ALL); ap_language_setting(p_sys_data->lang.Audio_lang_1, p_sys_data->lang.Audio_lang_2); break; case MENU_LANGUAGE_SUB_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*3; param.cur=p_sys_data->lang.sub_lang; p_sys_data->lang.sub_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); p_sys_data->osd_set.subtitle_display = 1;/*select sub on */ p_sys_data->osd_set.subtitle_lang = 0xFF; win_lan_set_subtitle_lan_string(p_sys_data->lang.sub_lang); OSD_TrackObject(pObj,C_UPDATE_ALL); break; case MENU_LANGUAGE_TXT_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*3; rect.uHeight=300; param.cur=p_sys_data->lang.ttx_lang; p_sys_data->lang.ttx_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_teletext_lan_string(p_sys_data->lang.ttx_lang); OSD_TrackObject(pObj,C_UPDATE_ALL); break; #ifdef ORDER_GZ1207009 case MENU_LANGUAGE_EPG_LAN: rect.uTop=CON_T + (CON_H + CON_GAP)*3; rect.uHeight=300; param.cur=p_sys_data->lang.epg_lang; p_sys_data->lang.epg_lang = win_com_open_sub_list(POP_LIST_MENU_LANGUAGE_STREAM,&rect,¶m); win_lan_set_epg_lan_string(p_sys_data->lang.epg_lang); STRCPY(lang_code,stream_iso_639lang_abbr[p_sys_data->lang.epg_lang]); epg_set_lang_code(lang_code); OSD_TrackObject(pObj,C_UPDATE_ALL); break; #endif } }
static PRESULT win_tplist_list_unkown_act_proc(VACTION act) { PRESULT ret = PROC_LOOP; UINT8 pre_sat_idx; UINT16 sel,sat_cnt; OSD_RECT rect; COM_POP_LIST_PARAM_T param; OBJLIST* ol; S_NODE s_node; T_NODE t_node; UINT32 freq,symb,pol; UINT8 back_saved; UINT32 ftaonly_VPid,srch_chan_APid,nit_PPid; UINT32 choice; POBJECT_HEAD sub_menu; INT32 iret; UINT16 pre_sat_id,cur_sat_id; sat_cnt = get_tuner_sat_cnt(TUNER_EITHER); get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node); ol = &tplst_olist; sel = OSD_GetObjListCurPoint(ol); pre_sat_idx = cur_tp_sat_idx; switch(act) { case VACT_SAT_PRE: if(cur_tp_sat_idx > 0) cur_tp_sat_idx --; else cur_tp_sat_idx = sat_cnt - 1; goto SAT_CHANGE; case VACT_SAT_NEXT: if(cur_tp_sat_idx < (sat_cnt - 1)) cur_tp_sat_idx ++; else cur_tp_sat_idx = 0; goto SAT_CHANGE; case VACT_SAT_SELECT: param.id = TUNER_EITHER; param.cur = cur_tp_sat_idx; param.selecttype = POP_LIST_SINGLESELECT; OSD_SetRect(&rect, LST_SAT_L - 20 , LST_SAT_T, LST_SAT_W + 40, 360); rect.uTop += LST_SAT_H; sel = win_com_open_sub_list(POP_LIST_TYPE_SAT,&rect,¶m); if(sel < sat_cnt) cur_tp_sat_idx = sel; goto SAT_CHANGE; SAT_CHANGE: tp_list_pos = 0; tp_list_top = 0; if(cur_tp_sat_idx != pre_sat_idx) { pre_tp_sat_idx = pre_sat_idx; get_tuner_sat(TUNER_EITHER, pre_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; #ifdef SUPPORT_TWO_TUNER #ifdef SUPPORT_SELECT_SAME_SAT cur_tuner_idx = s_node.reserve_1; //s_node.tuner1_valid? 0 : 1; #else cur_tuner_idx = s_node.tuner1_valid? 0 : 1; #endif #endif if(win_tplist_check_change()) update_data(); win_tplist_load_sat(TRUE); //OSD_TrackObject( (POBJECT_HEAD)&tplst_olist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); api_stop_timer(&tpturn_timer_id); tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } break; case VACT_TP_EDIT: /* If not TP, can't EDIT */ if(OSD_GetObjListCount(ol) == 0) break; get_tp_at(s_node.sat_id,sel, &t_node); choice = win_tpe_open(0, s_node.sat_id, t_node.tp_id); if( choice) { win_tpe_get_setting(&freq, &symb, &pol); if(freq != t_node.frq || symb != t_node.sym || pol != t_node.pol) { t_node.frq = freq; t_node.sym = symb; t_node.pol = pol; modify_tp(t_node.tp_id,&t_node); api_stop_timer(&tpturn_timer_id); tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } } //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case VACT_TP_ADD: if(OSD_GetObjListCount(ol) == MAX_TP_NUM) break; extern UINT32 edit_tp_exist; edit_tp_exist = 0; choice = win_tpe_open(1, s_node.sat_id, 0); if(choice) { win_tpe_get_setting(&freq, &symb, &pol); MEMSET(&t_node,0,sizeof(t_node) ); t_node.frq = freq; t_node.sym = symb; t_node.pol = pol; t_node.sat_id = s_node.sat_id; iret = add_node(TYPE_TP_NODE,s_node.sat_id,(void*)&t_node); if((iret == DBERR_MAX_LIMIT) || (iret == DBERR_FLASH_FULL)) { OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL, RS_DISPLAY_TOO_MANY_TP); win_compopup_open_ext(&back_saved); break; } OSD_SetObjListCount(ol, OSD_GetObjListCount(ol) + 1); //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_ChangeFocus((POBJECT_HEAD)ol,OSD_GetObjListCount(ol) - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); api_stop_timer(&tpturn_timer_id); tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } else { OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if( edit_tp_exist > 0) { OSD_ChangeFocus((POBJECT_HEAD)ol,edit_tp_exist - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); edit_tp_exist = 0; } //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } break; case VACT_TP_DEL: /* If not TP, can't DEL */ if(OSD_GetObjListCount(ol) == 0) break; win_compopup_init(WIN_POPUP_TYPE_OKNO); win_compopup_set_msg(NULL, NULL,RS_DISPLAY_SURE_TO_DELETE); if(win_compopup_open_ext(&back_saved) != WIN_POP_CHOICE_YES) break; get_tp_at(s_node.sat_id,sel, &t_node); del_tp_by_id(t_node.tp_id); OSD_SetObjListCount(ol, OSD_GetObjListCount(ol) -1); OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); if( OSD_GetObjListCount(ol) > 0) { if(sel == OSD_GetObjListCount(ol)) /* Delete last TP */ OSD_ChangeFocus((POBJECT_HEAD)ol,OSD_GetObjListCount(ol) - 1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); else tpturn_timer_id = api_start_timer(TPTURN_TIMER_NAME, TPTURN_TIMER_TIME, win_tplist_tpturn_handler); } break; case VACT_TP_SRCH: /* If not TP, can't SEARCH */ if(OSD_GetObjListCount(ol) == 0) break; sys_data_set_cur_satidx(cur_tp_sat_idx); tp_list_pos = OSD_GetObjListCurPoint(ol); tp_list_top = OSD_GetObjListTop(ol); choice = win_tpsrch_open(&ftaonly_VPid,&srch_chan_APid,&nit_PPid); if(choice==1) { win_tpsrch_set_search_param(ftaonly_VPid,srch_chan_APid,nit_PPid); sub_menu = (POBJECT_HEAD)&g_win_search; wincom_close_help(); if(OSD_ObjOpen(sub_menu, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_push(sub_menu); set_movedish_flag(TRUE);/*only tp search,need not moving dish when return*/ } } else if(choice==2) //pid search { tp_VPid = ftaonly_VPid; tp_APid = srch_chan_APid; tp_PPid = nit_PPid; prog_callback_register((prog_node_return)win_tplist_set_search_pid_callback); get_tp_at(s_node.sat_id,sel,&t_node); win_search_set_pid_param(t_node.tp_id, tp_VPid, tp_APid, tp_PPid); win_tpsrch_set_search_param(P_SEARCH_FTA|P_SEARCH_SCRAMBLED,P_SEARCH_TV|P_SEARCH_RADIO,0); sub_menu = (POBJECT_HEAD)&g_win_search; wincom_close_help(); if(OSD_ObjOpen(sub_menu, 0xFFFFFFFF) != PROC_LEAVE) menu_stack_push(sub_menu); } else { //OSD_TrackObject( (POBJECT_HEAD)ol, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); OSD_TrackObject( (POBJECT_HEAD)&g_win_tplist, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } break; } return ret; }
static PRESULT disk_operate_item_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 unact; UINT8 id = OSD_GetObjID(pObj); OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT8 *cur_select = NULL; UINT8 cur_mode_num; COM_POP_LIST_TYPE_T type; switch(event) { case EVN_PRE_CHANGE: break; case EVN_POST_CHANGE: break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16) ; if(id != MENU_DISK_FORMAT) break; switch(operate_type) { case 0: type = POP_LIST_DISK_MODE; cur_select = &mode_select; cur_mode_num = disk_format_mode_num; break; case 1: type = POP_LIST_DVR_TYPE; cur_select = &dvr_select_type; cur_mode_num = dvr_type_num; break; case 2: type = POP_LIST_PARTITION; cur_select = &partition_select; cur_mode_num = partition_num; break; default: break; } if(unact == VACT_ENTER) { rect.uLeft = CON_L + SEL_L_OF; rect.uWidth = SEL_W; rect.uHeight = 200;//150; param.selecttype = POP_LIST_SINGLESELECT; param.cur = *cur_select; rect.uTop=CON_T + SEL_T_OF + SEL_H; *cur_select = win_com_open_sub_list(type,&rect,¶m); win_disk_info_set_string(operate_type, *cur_select); OSD_TrackObject(pObj,C_UPDATE_ALL); } else if((unact == VACT_DECREASE) || (unact == VACT_INCREASE)) { if(unact == VACT_DECREASE) *cur_select = (*cur_select + cur_mode_num - 1) % cur_mode_num; else *cur_select = (*cur_select + 1) % cur_mode_num; win_disk_info_set_string(operate_type, *cur_select); OSD_TrackObject(pObj,C_UPDATE_ALL); } break; default: break; } return ret; }
static PRESULT timerset_mselinfo_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 sel; VACTION unact; P_NODE p_node; UINT16 *Uni_str; TIMER_SET_CONTENT *settimer; COM_POP_LIST_PARAM_T param; OSD_RECT rect; settimer = &timer_set; switch (event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); break; case EVN_POST_CHANGE: sel = param1; break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1 >> 16); if (unact == VACT_ENTER) // select channel { OSD_SetRect2(&rect, &pObj->frame); rect.uLeft -= 40; rect.uWidth += 40; rect.uHeight = 180; param.selecttype = POP_LIST_SINGLESELECT; param.cur = TIMER_SERVICE_INFO; sel = win_com_open_sub_list(POP_LIST_TYPE_CHANLIST, &rect, ¶m); if (sel < (UINT32)TIMER_SERVICE_INFO_CNT) { get_prog_at(sel, &p_node); settimer->wakeup_channel = p_node.prog_id; //MEMCPY(settimer->event_name, (UINT8 *)&p_node.service_name[0], 40); TIMER_SERVICE_INFO = sel; } OSD_TrackObject((POBJECT_HEAD) &timer_con_serviceinfo, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } break; case EVN_REQUEST_STRING: sel = param1; Uni_str = (UINT16*)param2; get_prog_at(sel, &p_node); if (p_node.ca_mode) ComAscStr2Uni("$", Uni_str); ComUniStrCopyChar((UINT8*) &Uni_str[p_node.ca_mode], p_node.service_name); MEMCPY(settimer->event_name, (UINT8 *)Uni_str, 40); break; } return ret; }
static PRESULT atnsetm_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 sel; UINT8 bID; char str[10]; UINT16 * Uni_str; UINT8* pstr; SYSTEM_DATA* sys_data; POBJECT_HEAD other_antset_menu; VACTION unact; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 cur_idx; BOOL b; UINT8 back_saved; sys_data = sys_data_get(); bID = OSD_GetObjID(pObj); switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); if(bID == TUNER_ID) { if(TUNER_CNT < 2) { ret = PROC_LOOP; break; } b = win_atnsetm_check_save_motor_antenna_setting(); if(!b) { win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL, NULL, RS_MSG_OUT_RANGE); win_compopup_open_ext(&back_saved); ret = PROC_LOOP; break; } /* Check tuner : sel has selected satellite or not.*/ if(get_tuner_sat_cnt(sel) == 0) { UINT8 back_saved; win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL, RS_TUNER_HAS_NO_SATE_SEL); win_compopup_open_ext(&back_saved); antset_cur_tuner = (sel == 0)? 1: 0; ret = PROC_LOOP; } else cur_tuner_idx = antset_cur_tuner = sel; } break; case EVN_POST_CHANGE: sel = param1; if(bID == TUNER_ID) { if(sys_data->tuner_lnb_type[sel] != LNB_MOTOR) { /* Need to change : Fixed antenna setting menu. */ other_antset_menu = (POBJECT_HEAD)&g_win_antenna_set_fixed; if(OSD_ObjOpen(other_antset_menu, MENU_OPEN_TYPE_MENU + bID) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push(other_antset_menu); } ret = PROC_LOOP; } else { //win_atnsetm_load_sat_cnt(TRUE); win_atnsetm_load_motor_antenna_setting(TRUE); } } else if(bID == MOTOR_ID) { win_atnsetm_load_local_action(TRUE); } #ifdef SUPPORT_UNICABLE else if(bID == LNB_ID) { if(win_unicable_setting_open(LNB_IDX)) OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_motor, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); } #endif break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; get_lnb_name(sel,Uni_str); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_ENTER) { OSD_SetRect2(&rect,&pObj->frame); /*Patch: For solve pop-up windows show bugs,for example: Universal(5150-10600) can not be all show*/ OSD_SetRect(&rect, rect.uLeft, rect.uTop, (rect.uWidth + 10), rect.uHeight); param.selecttype = POP_LIST_SINGLESELECT; switch(bID) { case LNB_ID: list_type = POP_LIST_TYPE_LNB; rect.uHeight = 330; param.cur = LNB_IDX; break; default: list_type = 0xFF; break; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; if(bID == LNB_ID) { LNB_IDX = cur_idx; OSD_TrackObject((POBJECT_HEAD)anesetm_items[LNB_ID - 1], C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); #ifdef SUPPORT_UNICABLE if(win_unicable_setting_open(LNB_IDX)) OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_motor, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); #endif } } break; } return ret; }
void win_av_enter_key(UINT8 id) { SYSTEM_DATA* p_sys_data=sys_data_get(); UINT16 result; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 sel; POBJECT_HEAD pObj,pObjItem; MULTISEL* msel; msel = av_item_set[id - 1]; pObj = (POBJECT_HEAD)msel; pObjItem = (POBJECT_HEAD)av_items[id - 1]; rect.uLeft=CON_L+SEL_L_OF; rect.uWidth=SEL_W; rect.uTop = pObj->frame.uTop; param.selecttype = POP_LIST_SINGLESELECT; extern UINT8 g_rgb_yuv_changed; switch(id) { case TVMODE_ID: rect.uHeight=300; param.cur = tvmode_setting_to_osd(p_sys_data->avset.tv_mode); sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (sel == param.cur) { break; } #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case TVASPECT_ID: rect.uHeight= 300;//26*4+20; param.cur=win_av_get_index(p_sys_data); sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); #ifdef HDMI_CERTIFICATION_UI if( check_tv_display_in_hd_mode()) { // only [16:9 mode] in com_list, therefore don't need to change the tv mode sel = 3; // 16:9 } #endif if (sel == param.cur) { break; } #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case VIDEOOUT_ID: #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif rect.uHeight= 300;//26*4+20; #ifdef HDTV_SUPPORT if (sys_data_get_scart_out() == SCART_YUV) { param.cur = 0; } else { param.cur = 1; } #else param.cur = p_sys_data->avset.scart_out; #endif sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (sel == param.cur) { break; } OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case RFSYSTEM_ID: rect.uTop = 240; rect.uHeight= 300;//26*4+20; param.cur = p_sys_data->avset.rf_mode; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (sel == param.cur) { break; } #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case RFCHAN_ID: rect.uTop = 240; rect.uHeight = 300;//150; param.cur=p_sys_data->avset.rf_channel-rf_ch_range[p_sys_data->avset.rf_mode][0]; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m)+rf_ch_range[p_sys_data->avset.rf_mode][0]; if (sel == param.cur) { break; } #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; #ifdef HDTV_SUPPORT case HDMIOUT_ID: rect.uTop = 240; rect.uHeight = 300;//26*5+20; #ifdef HDMI_CERTIFICATION_UI param.cur = convert_sys_video_format_to_ui_hdmi_out_sel(p_sys_data->avset.video_format); #else param.cur = p_sys_data->avset.video_format; #endif sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (sel == param.cur) { break; } #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case AUDIOOUT_ID: rect.uTop = 240; rect.uHeight = 260;//26*3+20; param.cur = p_sys_data->avset.audio_output; sel = win_com_open_sub_list(POP_LIST_MENU_TVSYS,&rect,¶m); if (sel == param.cur) { break; } #ifdef GPIO_RGB_YUV_SWITCH if (g_rgb_yuv_changed) { break; } #endif OSD_SetMultiselSel(msel, sel); OSD_NotifyEvent(pObj,EVN_POST_CHANGE,(UINT32)sel, 0); OSD_TrackObject(pObjItem,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; #endif } }
static PRESULT otaset_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 bID; UINT32 sel; UINT16 * Uni_str; S_NODE s_node; VACTION unact; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; UINT16 cur_idx; bID = OSD_GetObjID(pObj); switch(event) { case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == EDIT_TP_SATE_ID) { #ifdef _BUILD_OTA_E_ ComAscStr2Uni("Fixed Sat", Uni_str); #else get_tuner_sat_name(OTA_TUNER_IDX,sel,Uni_str); #endif } else if(bID == EDIT_TP_TPIDX_ID) { get_tuner_sat(cur_tuner_idx,SAT_POS,&s_node); #ifdef _BUILD_OTA_E_ ComAscStr2Uni("Fixed TP", Uni_str); #else get_tp_name(s_node.sat_id,sel,Uni_str); #endif } break; case EVN_POST_CHANGE: sel = param1; if(bID == EDIT_TP_SATE_ID) win_otaset_load_sat_setting(sel,TRUE); else if(bID == EDIT_TP_TPIDX_ID) win_otaset_load_tp_setting(sel,TRUE); win_otaset_turn_frntend(); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_POP_UP) { ret = PROC_LOOP; OSD_SetRect2(&rect,&pObj->frame); param.selecttype = POP_LIST_SINGLESELECT; switch(bID) { case EDIT_TP_SATE_ID: rect.uLeft -= 40; rect.uWidth += 40; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300;//230; param.id = OTA_TUNER_IDX; param.cur = SAT_POS; break; case EDIT_TP_TPIDX_ID: list_type = POP_LIST_TYPE_TP; rect.uHeight = 300;//230; get_tuner_sat(OTA_TUNER_IDX,SAT_POS,&s_node); param.id = s_node.sat_id; param.cur = TP_POS; break; default: list_type = 0xFF; break; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; if(bID == EDIT_TP_SATE_ID) { SAT_POS = cur_idx; OSD_TrackObject((POBJECT_HEAD)&wota_con0, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_otaset_load_sat_setting((UINT32)cur_idx, TRUE); } else if(bID == EDIT_TP_TPIDX_ID) { TP_POS = cur_idx; OSD_TrackObject((POBJECT_HEAD)&wota_con1, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_otaset_load_tp_setting((UINT32)cur_idx,TRUE); } win_otaset_turn_frntend(); } } return ret; }
static PRESULT atnsetf_item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT32 sel; UINT8 bID; char str[30]; UINT16 * Uni_str; UINT8* pstr; SYSTEM_DATA* sys_data; POBJECT_HEAD other_antset_menu,item; S_NODE s_node; UINT16 cur_idx; COM_POP_LIST_TYPE_T list_type; OSD_RECT rect; COM_POP_LIST_PARAM_T param; MULTISEL* msel; sys_data = sys_data_get(); bID = OSD_GetObjID(pObj); switch(event) { case EVN_PRE_CHANGE: sel = *((UINT32*)param1); if(bID == TUNER_ID) { if(TUNER_CNT < 2) break; /* Check tuner : sel has selected satellite or not.*/ if(get_tuner_sat_cnt(sel) == 0) { UINT8 back_saved; win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL,NULL, RS_TUNER_HAS_NO_SATE_SEL); win_compopup_open_ext(&back_saved); antset_cur_tuner = (sel == 0)? 1: 0; win_atnsetf_load_sat_cnt(FALSE); ret = PROC_LOOP; } else { antset_cur_tuner = sel; cur_tuner_idx = antset_cur_tuner; } } break; case EVN_POST_CHANGE: sel = param1; if(bID == LNB_ID) { win_atnsetf_load_22k_action(TRUE); #ifdef SUPPORT_UNICABLE if(win_unicable_setting_open(LNB_IDX)) OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_fixed, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); #endif } if(bID == TUNER_ID) { if(sys_data->tuner_lnb_type[sel] != LNB_FIXED) { /* Need to change : Motor antenna setting menu. */ other_antset_menu = (POBJECT_HEAD)&g_win_antenna_set_motor; if(OSD_ObjOpen(other_antset_menu, MENU_OPEN_TYPE_MENU + bID) != PROC_LEAVE) { win_signal_close(); menu_stack_pop(); menu_stack_push(other_antset_menu); } ret = PROC_LOOP; } else { win_atnsetf_load_sat_cnt(TRUE); win_atnsetf_load_sat_setting(0,TRUE); } } else if(bID == SAT_ID) win_atnsetf_load_sat_setting(sel,TRUE); else if(bID != TP_ID) { win_atnsetf_modify_sat_setting(SAT_IDX); } if(ret != PROC_LOOP) { api_stop_timer(&set_frontend); set_frontend = api_start_timer("SETANT",600,(OSAL_T_TIMER_FUNC_PTR)atnsetf_set_frontend_handler); } break; case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == SAT_ID) { get_tuner_sat_name(antset_cur_tuner,sel,Uni_str); sys_data_set_cur_satidx(sel); } else if(bID == TP_ID) { get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); get_tp_name(s_node.sat_id,sel,Uni_str); #ifdef SUPPORT_SELECT_SAME_SAT s_node.reserve_1 = antset_cur_tuner; modify_sat(s_node.sat_id, &s_node); update_data(); #endif } else if(bID == LNB_ID) get_lnb_name(sel,Uni_str); else if(bID == DISEQC11_ID) get_diseqc11_name(sel,Uni_str); else if(bID == IF_CHANNEL_ID) get_IF_channel_name(sel,Uni_str); else if(bID == CENTRE_FREQ_ID) get_centre_freqs_name(sel,Uni_str); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_POP_UP) { OSD_SetRect2(&rect,&pObj->frame); /*Patch: For solve pop-up windows show bugs,for example: Universal(5150-10600) can not be all show*/ OSD_SetRect(&rect, rect.uLeft, rect.uTop, (rect.uWidth + 10), rect.uHeight); param.selecttype = POP_LIST_SINGLESELECT; switch(bID) { case SAT_ID: rect.uLeft -= 40; rect.uWidth += 40; list_type = POP_LIST_TYPE_SAT; rect.uHeight = 300; param.id = antset_cur_tuner; param.cur = SAT_IDX; break; case LNB_ID: list_type = POP_LIST_TYPE_LNB; rect.uHeight = 300; param.cur = LNB_IDX; break; case TP_ID: list_type = POP_LIST_TYPE_TP; rect.uHeight = 340; get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); param.id = s_node.sat_id; param.cur = TP_IDX; break; case DISEQC10_ID: list_type = POP_LIST_TYPE_DISEQC10; rect.uHeight = 280; param.cur = DISEQC10_IDX; break; case DISEQC11_ID: list_type = POP_LIST_TYPE_DISEQC11; rect.uHeight = 240; param.cur = DISEQC11_IDX; break; case IF_CHANNEL_ID: list_type = POP_LIST_TYPE_IF_CHANNEL; rect.uHeight = 200; param.cur = IF_CHANNEL_IDX; break; case CENTRE_FREQ_ID: list_type = POP_LIST_TYPE_CENTRE_FREQ; rect.uHeight = 200; param.cur = CENTRE_FREQ_IDX; break; default: list_type = 0xFF; break; } if(list_type == 0xFF) break; cur_idx = win_com_open_sub_list(list_type,&rect,¶m); if(cur_idx == LIST_INVALID_SEL_IDX || cur_idx == param.cur) break; item = anesetf_items[bID - 1]; msel = anesetf_msels[bID - 1]; switch(bID) { case SAT_ID: SAT_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_atnsetf_load_sat_setting((UINT32)cur_idx, TRUE); break; case LNB_ID: LNB_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); win_atnsetf_load_22k_action(TRUE); #ifdef SUPPORT_UNICABLE if(win_unicable_setting_open(LNB_IDX)) OSD_TrackObject((POBJECT_HEAD)&g_win_antenna_set_fixed, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); #endif break; /* case TP_ID: TP_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case DISEQC10_ID: DISEQC10_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case DISEQC11_ID: DISEQC11_IDX = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case IF_CHANNEL_ID: IF_CHANNEL_IDX= cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; case CENTRE_FREQ_ID: CENTRE_FREQ_IDX= cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; */ default: msel->nSel = cur_idx; OSD_TrackObject(item, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; } if(bID != SAT_ID && bID != TP_ID) win_atnsetf_modify_sat_setting(SAT_IDX); api_stop_timer(&set_frontend); set_frontend = api_start_timer("SETANT",500,(OSAL_T_TIMER_FUNC_PTR)atnsetf_set_frontend_handler); } break; } return ret; }