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 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 PRESULT tplst_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 back_saved; S_NODE s_node; POBJECT_HEAD submenu; switch(event) { case EVN_PRE_OPEN: if(sys_data_get_cur_satidx() == (UINT16)(~0)) cur_tp_sat_idx = win_load_default_satidx(); else cur_tp_sat_idx = sys_data_get_cur_satidx(); tp_list_pos = 0xffff; tp_list_top = 0; win_tplist_load_sat(FALSE); pre_tp_sat_idx= cur_tp_sat_idx; wincom_close_help(); wincom_open_subtitle(pObj,RS_TP_LIST,0); break; case EVN_POST_OPEN: //win_signal_open(pObj); //win_signal_open_tplist(pObj); win_signal_open_ex(pObj,pObj->frame.uLeft+30,pObj->frame.uTop + LIST_ITEMCNT*(ITEM_H + ITEM_GAP) + LST_SAT_H +25); wincom_open_commen_help(pObj); wincom_open_help(pObj,tplist_helpinfo , HELP_CNT); win_tplist_tuner_frontend(); win_signal_refresh(); //win_signal_update(); get_tuner_sat(TUNER_EITHER, cur_tp_sat_idx, &s_node); if(!tpscan_return) wincom_dish_move_popup_open(0xFFFF,s_node.sat_id,cur_tuner_idx,&back_saved); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: if(win_tplist_check_change()) update_data(); api_stop_timer(&tpturn_timer_id); win_signal_close(); wincom_close_help(); sys_data_check_channel_groups(); sys_data_set_cur_satidx((UINT16)cur_tp_sat_idx); #ifdef MULTIFEED_SUPPORT multifeed_del_invalid_info(); #endif wincom_close_subtitle(); OSD_ClearScreen(); win_open_submenu_title(submenu,sub_menu_desc->title_id, 0); //guop break; case EVN_MSG_GOT: win_tplist_message_proc(param1,param2); break; default: break; } return ret; }
static PRESULT motorset_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; S_NODE s_node; UINT8 back_saved; UINT16 title_strid; POBJECT_HEAD sat_item = (POBJECT_HEAD)&motorset_item1; POBJECT_HEAD tp_item = (POBJECT_HEAD)&motorset_item2; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); switch(event) { case EVN_PRE_OPEN: tone_voice_init = 0; diskmotor_move_state = 0; diskmove_timer_id = OSAL_INVALID_ID; SAT_CNT = get_tuner_sat_cnt(antset_cur_tuner); SAT_IDX =win_load_default_satidx(); get_tuner_sat(antset_cur_tuner,SAT_IDX,&s_node); win_motorset_load_sat(SAT_IDX,FALSE); if(sys_data->tuner_lnb_type[antset_cur_tuner] != LNB_MOTOR) return PROC_LEAVE; if(sys_data->tuner_lnb_antenna[antset_cur_tuner].motor_type == LNB_MOTOR_DISEQC12) { title_strid = RS_MOTOR_SETTING; sat_item->bUpID = RECACULATE_ID; tp_item->bDownID = POS_ID; tp_item->pNext = (POBJECT_HEAD)&motorset_item3; } else { title_strid = RS_MOTOR_SETTING; sat_item->bUpID = POS_ID; tp_item->bDownID = SAT_ID; tp_item->pNext = NULL; } OSD_SetContainerFocus(&g_win_motorset, SAT_ID); wincom_open_subtitle(pObj,title_strid,0); wincom_close_help(); break; case EVN_POST_OPEN: // win_motorset_set_frontend(); //win_signal_open(pObj); win_signal_open_ex(pObj,pObj->frame.uLeft + 4,pObj->frame.uTop+pObj->frame.uHeight - 140); win_signal_refresh(); //win_signal_update(); 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); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: win_signal_close(); #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_POST_DRAW: if(tp_item->pNext != NULL) win_motorset_draw_info(diskmotor_move_state); break; case EVN_MSG_GOT: ret = win_motorset_message_proc(param1,param2); break; } return ret; }
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 }