PRESULT ap_cas_IPPV_proc() { static UINT8 flag = 0; POBJECT_HEAD p_top_menu = menu_stack_get_top(); if ((MAIN_MENU_HANDLE == menu_stack_get(0)) \ ||(EPG_HANDLE == menu_stack_get_top()) \ ||(LIT_CHAN_LIST_HANDLE == menu_stack_get_top()) \ ||(CHAN_LIST_HANDLE == menu_stack_get_top()) \ ||(SEARCHN_HANDLE == menu_stack_get_top()) \ ) { //current_ippv_ecm = ecmpid; return; } //avoid to open the same window frequently, i see this scenario on site // if (0 ==win_ippv_check_request()) // return; if((p_top_menu == CHANNEL_BAR_HANDLE) ||(p_top_menu == AUDIO_HANDLE) ||(p_top_menu == VOLUMEBAR_HANDLE)) { OSD_ObjClose ( p_top_menu, C_CLOSE_CLRBACK_FLG ); menu_stack_pop(); } if (OSD_ObjOpen((POBJECT_HEAD)&g_win_ippv_popup, 0xFFFFFFFF) != PROC_LEAVE) { if ((POBJECT_HEAD)&g_win_ippv_popup != menu_stack_get_top()) menu_stack_push((POBJECT_HEAD)&g_win_ippv_popup); } return; }
static PRESULT win_imageslide_unkown_act_proc(VACTION act) { PRESULT ret = PROC_PASS; UINT8 rotate_mode, display_mode; POBJECT_HEAD win,mplayer_menu; int next_image; UINT16 slide_interval; FileInfo file_node; char image_name[FULL_PATH_SIZE]; switch(act) { case VACT_ROTATEL: case VACT_ROTATER: if(FALSE == decode_finish_flag) break; if(imageslide_pause_state == IMG_UNPAUSE_STATE) { api_stop_timer(&imageslide_timer_id); imageslide_pause_state = IMG_PAUSE_STATE; } if(act == VACT_ROTATER) { image_rot_ang = (image_rot_ang + 1)%IMAGE_ANGLE_CNT; } else { image_rot_ang = (image_rot_ang+IMAGE_ANGLE_CNT - 1)%IMAGE_ANGLE_CNT; } image_rotate(image_rot_ang); if(image_rot_ang == ANG_ORI) { win_imageslide_showrotate(FALSE); win_imageslide_showpause(); } else { OSD_ClearObject((POBJECT_HEAD)&imageslide_pause, 0); win_imageslide_showrotate(TRUE); } slideidx_display(TRUE); break; case VACT_INCREASE: case VACT_DECREASE: if(imageslide_pause_state == IMG_UNPAUSE_STATE) { api_stop_timer(&imageslide_timer_id); imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); } if(act == VACT_INCREASE) { next_image = get_next_index_from_play_list(cur_playlist_image); } else { next_image = get_previous_index_from_play_list(cur_playlist_image); } if(next_image != -1) { cur_image_idx = next_image; api_stop_timer(&imageslide_timer_id); image_abort(); if(image_rot_ang!= ANG_ORI) { image_rot_ang = ANG_ORI; win_imageslide_showrotate(FALSE); win_imageslide_showpause(); } osal_task_sleep(20); set_play_list_info(cur_playlist_image,&cur_image_idx,NULL); get_file_from_play_list(cur_playlist_image, cur_image_idx, &file_node); win_get_fullname(image_name, file_node.path, file_node.name); win_image_file_play(image_name, image_rot_ang); decode_finish_flag = FALSE; osal_task_sleep(20); slideidx_display(TRUE); } break; case VACT_PAUSE: if(imageslide_pause_state == IMG_UNPAUSE_STATE) { imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); api_stop_timer(&imageslide_timer_id); } else { if(image_rot_ang == ANG_ORI) { imageslide_pause_state = IMG_UNPAUSE_STATE; slide_interval = (image_slide_setting.uTime_gap * 1000); win_imageslide_showpause(); if(0 != image_slide_setting.uTime_gap) imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); } } ret = PROC_LOOP; break; case VACT_PLAY: if(IMG_PAUSE_STATE == imageslide_pause_state) { if(image_rot_ang == ANG_ORI) { imageslide_pause_state = IMG_UNPAUSE_STATE; win_imageslide_showpause(); slide_interval = (image_slide_setting.uTime_gap * 1000); if(0 != image_slide_setting.uTime_gap) imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); } } ret = PROC_LOOP; break; case VACT_ZOOM: if(decode_finish_flag) { if(imageslide_pause_state == IMG_UNPAUSE_STATE) { imageslide_pause_state = IMG_PAUSE_STATE; win_imageslide_showpause(); api_stop_timer(&imageslide_timer_id); } win_mpzoom_open(); if(image_rot_ang == ANG_ORI) { imageslide_pause_state = IMG_UNPAUSE_STATE; slide_interval = (image_slide_setting.uTime_gap * 1000); win_imageslide_showpause(); imageslide_timer_id = api_start_timer("IMAGESLIDE",slide_interval,win_imageslide_handler); } } break; case VACT_MP: win = (POBJECT_HEAD)(&g_win_imageslide); OSD_ObjClose(win,C_CLOSE_CLRBACK_FLG); while((POBJECT_HEAD)&g_win_usb_filelist != menu_stack_get_top()) { menu_stack_pop(); } image_abort(); win_set_image_multiview_firstidx(); mplayer_menu = (POBJECT_HEAD)(&g_win_imagepreview); if(OSD_ObjOpen(mplayer_menu,(UINT32)(~0)) != PROC_LEAVE) menu_stack_push(mplayer_menu); break; default: 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; }
static PRESULT lan_item_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 unact,input; UINT8 id = OSD_GetObjID(pObj); POBJECT_HEAD submenu; SYSTEM_DATA* p_sys_data=sys_data_get(); UINT8 lang_code[8]; switch(event) { case EVN_FOCUS_PRE_GET: break; case EVN_FOCUS_PRE_LOSE: break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16) ; #ifdef SHOW_WELCOME_SCREEN if(id != ITEM_NEXT_ID) { #endif if(unact == VACT_ENTER) { win_language_enter_key(pObj,id); } else if(unact == VACT_DECREASE) { win_language_left_key(pObj,id); } else if(unact == VACT_INCREASE) { win_language_right_key(pObj,id); } #ifdef SHOW_WELCOME_SCREEN } else if(unact == VACT_ENTER) { #ifdef EPG_MULTI_LANG /*set epg language*/ p_sys_data = sys_data_get(); STRCPY(lang_code,stream_iso_639lang_abbr[p_sys_data->lang.OSD_lang]); epg_set_lang_code(lang_code); #endif #ifndef NEW_DEMO_FRAME UIChChgApplyAudLanguage(); #endif sys_data_save(1); TTXEng_set_g0_set(); //show_win_as_welcome = FALSE; submenu = (POBJECT_HEAD) & win_country_net_con; if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push(submenu); } } #endif ret = PROC_LOOP; break; } return ret; }
static PRESULT item_sel_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; SYSTEM_DATA* sys_data; union as_frontend_param network; UINT8 bID; UINT32 sel; UINT16* Uni_str; MULTISEL* msel; 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; sys_data->rev2 = 0; switch(bID) { case COUNTRY_ID: sys_data->country = (COUTRY_TYPE)sel; if(GERMANY == (COUTRY_TYPE)sel && GERMANY != old_country_sel) { msel = &item_network_sel; msel->pSelTable = (void *)network_str; msel->bSelType = STRING_ID; msel->nSel = old_germ_serv_sel; msel->nCount = GERM_SER_CNT; OSD_DrawObject((POBJECT_HEAD)msel, C_UPDATE_ALL); } else if(GERMANY == old_country_sel && GERMANY != (COUTRY_TYPE)sel) { msel = &item_network_sel; msel->pSelTable = (void *)(network_str+4); msel->bSelType = STRING_ID; //STRING_ANSI; msel->nSel = old_network_sel; msel->nCount = NETWORK_NCNT; OSD_DrawObject((POBJECT_HEAD)msel, C_UPDATE_ALL); } old_country_sel = sel; break; case NETWORK_ID: if(GERMANY == OSD_GetMultiselSel(&item_country_sel)) { osd_to_germ_serv_setting(sel); old_germ_serv_sel = sel; } else { osd_to_network_setting(sel, &network); sys_data->current_ft[0].c_param.sym = network.c_param.sym; sys_data->current_ft[0].c_param.constellation = network.c_param.constellation; sys_data->current_ft_count = 1; old_network_sel = sel; } // sys_data = sys_data_get(); break; default: break; } break; /* case EVN_REQUEST_STRING: sel = param1; Uni_str= (UINT16*)param2; if(bID == NETWORK_ID) { if(GERMANY == OSD_GetMultiselSel(&item_country_sel)) ComAscStr2Uni(germany_servers_str[sel], Uni_str); else ComAscStr2Uni(network_str[sel], Uni_str); } break; */ case EVN_FOCUS_PRE_GET: break; case EVN_FOCUS_PRE_LOSE: break; case EVN_UNKNOWN_ACTION: if(bID == BUTTON_PREV_ID) { POBJECT_HEAD submenu; extern void set_win_lang_as_welcome(BOOL iswelcome); set_win_lang_as_welcome(TRUE); submenu = (POBJECT_HEAD) & win_lan_con; if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push(submenu); ret = PROC_LOOP; } } else if(bID == BUTTON_NEXT_ID) { UINT8 i; for(i=sys_data->current_ft_count; i<MAX_FRONTEND_PARAM; i++) { sys_data->current_ft[i].c_param.sym = 0xff; sys_data->current_ft[i].c_param.constellation = 0xffffffff; } if(!from_auto_scan) sys_data_save(1); from_auto_scan = FALSE; get_default_bandparam(sys_data->country, (Band_param *)&uCountryParam); extern void win_search_set_autoscan_param(void); win_search_set_autoscan_param(); POBJECT_HEAD submenu; submenu = (POBJECT_HEAD) & g_win_search; if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push(submenu); ret = PROC_LOOP; } } else win_item_enter_key(bID); break; } return ret; }
/************************************************************** *CAS Main message process entry. *msg_code has different meaning for different msg_type, check the *tf_catask.c for detailed info. **************************************************************/ PRESULT ap_cas_smc_info_proc( UINT32 msg_type, UINT32 msg_code) { cas_sc_t card_info; UINT16 cur_chan = 0; UINT8 scramble = 0; P_NODE p_node; POBJECT_HEAD p_top_menu = NULL,p_newtop_menu=NULL; PRESULT ret; p_top_menu = menu_stack_get_top(); if(p_top_menu == (POBJECT_HEAD)&g_win_cti_cardinfo || p_top_menu == (POBJECT_HEAD)&g_win_cti_set_maturity || p_top_menu == (POBJECT_HEAD)&g_win_cti_PPID || p_top_menu == (POBJECT_HEAD)&g_win_cti_PPID_info || p_top_menu == (POBJECT_HEAD)&g_win_cti_pin) { ret = OSD_ObjProc(p_top_menu, (MSG_TYPE_MSG << 16) | msg_type, msg_code, 0); while( ret == PROC_LEAVE) { menu_stack_pop(); p_newtop_menu = menu_stack_get_top(); if(NULL != p_newtop_menu) { ret = OSD_ObjOpen(p_newtop_menu, MENU_OPEN_TYPE_STACK) ; } } } cas_get_sc_info_req(&card_info); sys_data_get_cur_group_channel(&cur_chan, sys_data_get_cur_chan_mode()); get_prog_at(cur_chan, &p_node); //get_prog_scramble_type(p_node.prog_number, &scramble); if(card_info.sc_status==0) //smart card ok { //win_popup_msg("Smartcart is in!",NULL,0); } else if(card_info.sc_status==1) //smart card out { if(GetScrollStopFlag()!=SCROLL_STOP) { SetScrollStopFlag(SCROLL_STOP); } cas_sub_clear(); subtitle_clear_all_message(); //clean subtitle msg buffer when the card is out. ap_cas_fingerprint_proc(3);// to clear finger print buf and area if( p_top_menu == (POBJECT_HEAD)&g_win_ippv_popup) { OSD_ClearObject((POBJECT_HEAD)&g_win_ippv_popup, C_UPDATE_ALL); menu_stack_pop(); } //win_popup_msg("Smartcart is out!",NULL,0); } else if(card_info.sc_status==2||card_info.sc_status==3) { //win_popup_msg(NULL,NULL,RS_CTI_READ_SMC_ERROR); } }
static PRESULT win_biss_list_unkown_act_proc(VACTION act) { PRESULT ret = PROC_LOOP; OBJLIST* ol; UINT16 sel; UINT32 choice; UINT8* sat_name; UINT32 sat_orbit; UINT8 back_saved; INT32 iret; //CAS_KEYINFO *Pm = NULL; ol = &biss_olist; sel = OSD_GetObjListCurPoint(ol); //Pm = (CAS_KEYINFO *) softcam_get_keydata((u8) CAS_ID_BISS,sel); switch(act) { case VACT_BISS: #if 0 if(OSD_ObjOpen((POBJECT_HEAD)&g_win_biss2, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_biss2); } #endif break; case VACT_CRYPTOWORK: if(OSD_ObjOpen((POBJECT_HEAD)&g_win_cryptowork, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_cryptowork); } break; case VACT_MORE: if(OSD_ObjOpen((POBJECT_HEAD)&g_win_seca, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_seca); } break; case VACT_DIRECT_CW: if(OSD_ObjOpen((POBJECT_HEAD)&g_win_direct_cw, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_direct_cw); } break; case VACT_patch_EDIT_WIN: //soc_printf("%s\n",Pm->ChanName); if(OSD_GetObjListCount(ol) == 0) break; win_patch1_open(CAS_ID_BISS, sel); OSD_TrackObject( (POBJECT_HEAD)&g_win_biss, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; default: break; } return ret; }
static VACTION localset_con_keymap(POBJECT_HEAD pObj, UINT32 key) { VACTION act; switch(key) { case V_KEY_UP: act = VACT_CURSOR_UP; break; case V_KEY_DOWN: act = VACT_CURSOR_DOWN; break; #ifdef EXIT_KEY_EXIT_ALL_MENU case V_KEY_MENU: #ifdef NETWORK_FACTORY_TEST//没有网路功能,但要工厂测试网口 if(factest_enter_to_ping_test==1) { factest_enter_to_ping_test=0; factest_ping_to_factory_test=1; OSD_ObjClose((POBJECT_HEAD)&g_win_localsetting,C_DRAW_SIGN_EVN_FLG | C_CLOSE_CLRBACK_FLG); menu_stack_pop(); if(OSD_ObjOpen((POBJECT_HEAD)&g_win_netping, 0) != PROC_LEAVE) { menu_stack_push((POBJECT_HEAD)&g_win_netping); } libnet_stop_ping(); act = VACT_PASS; } else { act = VACT_CLOSE; } #else act = VACT_CLOSE; #endif break; case V_KEY_EXIT: #ifdef NETWORK_FACTORY_TEST//没有网路功能,但要工厂测试网口 if(factest_enter_to_ping_test==1) { factest_enter_to_ping_test=0; factest_ping_to_factory_test=1; OSD_ObjClose((POBJECT_HEAD)&g_win_localsetting,C_DRAW_SIGN_EVN_FLG | C_CLOSE_CLRBACK_FLG); menu_stack_pop(); if(OSD_ObjOpen((POBJECT_HEAD)&g_win_netping, 0) != PROC_LEAVE) { menu_stack_push((POBJECT_HEAD)&g_win_netping); } libnet_stop_ping(); act = VACT_PASS; } else { act = VACT_CLOSE; exit_key_flag =TRUE; } #else act = VACT_CLOSE; exit_key_flag =TRUE; #endif break; #else case V_KEY_MENU: case V_KEY_EXIT: #ifdef NETWORK_FACTORY_TEST//没有网路功能,但要工厂测试网口 if(factest_enter_to_ping_test==1) { factest_enter_to_ping_test=0; factest_ping_to_factory_test=1; OSD_ObjClose((POBJECT_HEAD)&g_win_localsetting,C_DRAW_SIGN_EVN_FLG | C_CLOSE_CLRBACK_FLG); menu_stack_pop(); if(OSD_ObjOpen((POBJECT_HEAD)&g_win_netping, 0) != PROC_LEAVE) { menu_stack_push((POBJECT_HEAD)&g_win_netping); } libnet_stop_ping(); act = VACT_PASS; } else act = VACT_CLOSE; #else act = VACT_CLOSE; #endif break; #endif default: act = VACT_PASS; break; } return act; }
static PRESULT find_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT8 bID; UINT32 pos0; switch(event) { case EVN_PRE_OPEN: set_color_style(); api_inc_wnd_count(); if(!edit_keyboard_flag)//when flag is TRUE,it is for edit use { name_valid_func = NULL; MEMSET(input_name_str,0,sizeof(input_name_str)); win_find_prog_num = 0; win_keyboard_set_title(RS_HELP_FIND); } find_init_keys(); find_set_key_display(); break; case EVN_POST_OPEN: draw_caps_colbtn_ext(COLBTN_L, COLBTN_T, 1,IM_EPG_COLORBUTTON_YELLOW); draw_del_colbtn_ext(COLBTN_L + 120, COLBTN_T, 1,IM_EPG_COLORBUTTON_RED); draw_ok_colbtn_ext(COLBTN_L + 240, COLBTN_T, 1,IM_EPG_COLORBUTTON_BLUE); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ if(edit_keyboard_flag) { *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; } if(!edit_keyboard_flag) { if(win_find_prog_num > 0) { OSD_ClearObject((POBJECT_HEAD)&g_win_find, C_UPDATE_ALL); menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_com_lst); ret = PROC_LOOP; } } break; case EVN_POST_CLOSE: api_dec_wnd_count(); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_CANCEL) { if((win_find_prog_num > 0) && (!edit_keyboard_flag)) { OSD_ClearObject((POBJECT_HEAD)&g_win_com_lst, C_UPDATE_ALL); win_find_prog_num = 0; } check_ok = FALSE; ret = PROC_LEAVE; } else if(unact >= VACT_NUM_0 && unact<= VACT_NUM_9) { for(pos0=0;pos0<KEY_CNT;pos0++) { if(key_chars[pos0] == '0') break; } bID = pos0+1 + unact - VACT_NUM_0; OSD_ChangeFocus( pObj,bID,C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); ap_send_msg(CTRL_MSG_SUBTYPE_KEY_UI, V_KEY_ENTER, TRUE); ret = PROC_LOOP; } } return ret; }
static PRESULT win_conax_list_unkown_act_proc(VACTION act) { PRESULT ret = PROC_LOOP; OBJLIST* ol; UINT16 sel; UINT32 choice; UINT8* sat_name; UINT32 sat_orbit; UINT8 back_saved; INT32 iret; //CAS_KEYINFO *Pm = NULL; ol = &conax_olist; sel = OSD_GetObjListCurPoint(ol); //Pm = (CAS_KEYINFO *) softcam_get_keydata((u8) CAS_ID_VIACCESS1,sel); switch(act) { #if 0 case VACT_NAGRA_RSA: if(OSD_ObjOpen((POBJECT_HEAD)&g_win_nagra_rsa, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_nagra_rsa); } break; #endif case VACT_NAGRA2_RSA: #if 1 if(OSD_ObjOpen((POBJECT_HEAD)&g_win_nagra2_rsa, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_nagra2_rsa); } #endif break; case VACT_MORE: if(OSD_ObjOpen((POBJECT_HEAD)&g_win_viaccess2, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_viaccess2); } break; case VACT_CONAX: #if 0 if(OSD_ObjOpen((POBJECT_HEAD)&g_win_conax, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_conax); } #endif break; case VACT_patch_EDIT_WIN: //soc_printf("%s\n",Pm->ChanName); if(OSD_GetObjListCount(ol) == 0) break; win_patch_open(CAS_ID_CONAX, sel); OSD_TrackObject( (POBJECT_HEAD)&g_win_conax, C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL); break; default: break; } return ret; }
static PRESULT find_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; mobile_input_type_t mobile_input_type; mobile_input_type.type = MOBILE_INPUT_NORMAL; mobile_input_type.caps_flag = MOBILE_CAPS_INIT_LOW; mobile_input_type.maxlen = MAX_INPUT_STR_LEN; mobile_input_type.fixlen_flag = 0; mobile_input_type.callback = input_callback; switch(event) { case EVN_PRE_OPEN: if(!edit_keyboard_flag) win_keyboard_set_title(RS_HELP_FIND); win_find_prog_num = 0; mobile_input_init(&find_edt1,&mobile_input_type); //patch for clear find editfield content if(menu_stack_get(-1) == NULL) OSD_SetEditFieldContent(&find_edt1,STRING_UNICODE,(UINT32)""); break; case EVN_POST_OPEN: draw_caps_flag(CAPSFLG_L,CAPSFLG_T, 1); //draw_caps_del_colbtn(COLBTN_L, COLBTN_T,1); //draw_ok_cancel_colbtn(COLBTN_L, COLBTN_T + 40,1); draw_caps_colbtn(COLBTN_L, COLBTN_T, 1); draw_del_colbtn(COLBTN_L + 100, COLBTN_T, 1); draw_ok_colbtn(COLBTN_L, COLBTN_T + 40, 1); draw_cancel_colbtn(COLBTN_L+ 100, COLBTN_T + 40, 1); break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ //*((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; break; case EVN_POST_CLOSE: break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_OK) { if(!edit_keyboard_flag) { if(win_find_prog_num == 0) ret = PROC_LEAVE; else { //OSD_ObjClose(((POBJECT_HEAD)&g_win_find,C_UPDATE_ALL); OSD_ClearObject((POBJECT_HEAD)&g_win_find, C_UPDATE_ALL); menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_com_lst); ret = PROC_LOOP; } } else { check_ok = TRUE; ret = PROC_LEAVE; if(name_valid_func != NULL) { if(name_valid_func(input_name_str) == 0) { ret = PROC_LEAVE; } else { ret = PROC_LOOP; } } } } else if(unact == VACT_CANCEL) { if(!edit_keyboard_flag) { if(win_find_prog_num > 0) OSD_ClearObject((POBJECT_HEAD)&g_win_com_lst, C_UPDATE_ALL); ret = PROC_LEAVE; } else { ret = PROC_LEAVE; } } } return ret; }
void ap_tf_cas_process_update(UINT8 process, UINT8 mark) { date_time dt; SYSTEM_DATA* pSysData = NULL; static tem_process = 0; // static BOOL g_smc_read = FALSE; //libc_printf("smc upd process:%d, %d\n", process, mark); ap_tf_cas_clear_screen(CLEAR_CA_MSG); if(CDCA_SCALE_RECEIVEPATCH == mark) { smcupg_txt_msg.wStringID = RS_DISPLAY_DOWNLOADING; } else if(CDCA_SCALE_PATCHING == mark) { smcupg_txt_msg.wStringID = RS_TF3_SHOWMSG_UPDATE; } pSysData = sys_data_get(); if (CDCA_SCALE_PATCHING == mark && (process == 0 ||(FALSE == g_smc_read) )) { if(FALSE == g_smc_read) { if(g_smc_no[0] != 0) { MEMCPY(pSysData->upd_smc_no, g_smc_no, sizeof(g_smc_no)); g_smc_read = TRUE; } } } if(process > 100) { if (CDCA_SCALE_PATCHING == mark) { get_local_time(&dt); pSysData->smc_update_dt = dt; if (tem_process == 100) { pSysData->bUpd_status = TRUE; } else { pSysData->bUpd_status = FALSE; } } sys_data_save(0); #if 1 OSD_ClearObject((POBJECT_HEAD)&smcupg_info_con, C_UPDATE_ALL); if((POBJECT_HEAD)&smcupg_info_con == menu_stack_get_top()) { menu_stack_pop(); } BackToFullScrPlay(); #else OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_msg, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&smcupg_bar_progress, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL); #endif } else { if((POBJECT_HEAD)CHANNEL_BAR_HANDLE == menu_stack_get_top()) { OSD_ObjClose((POBJECT_HEAD)CHANNEL_BAR_HANDLE, C_DRAW_SIGN_EVN_FLG|C_CLOSE_CLRBACK_FLG); menu_stack_pop(); } if(-1 == window_pos_in_stack((POBJECT_HEAD)&smcupg_info_con)) { menu_stack_push((POBJECT_HEAD)&smcupg_info_con); } OSD_SetProgressBarPos(&smcupg_bar_progress,(INT16)process); OSD_SetTextFieldContent(&smcupg_txt_progress, STRING_NUM_PERCENT, (UINT32)process); #if 1 OSD_DrawObject((POBJECT_HEAD)&smcupg_info_con, C_UPDATE_ALL); #else OSD_DrawObject( (POBJECT_HEAD)&smcupg_txt_msg, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)&smcupg_bar_progress, C_UPDATE_ALL); OSD_ClearObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL); OSD_DrawObject( (POBJECT_HEAD)&smcupg_txt_progress, C_UPDATE_ALL); #endif } tem_process = process; }
static PRESULT factoryset_btn_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; //PRESULT ret = PROC_LEAVE; VACTION unact; UINT8 bID,back_saved; win_popup_choice_t choice; UINT32 chunk_id, default_db_addr, default_db_len; bID = OSD_GetObjID(pObj); switch(event) { case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(unact == VACT_ENTER) { ret = PROC_LEAVE; if(bID == BTN_NO_ID) { break; } //win_compopup_init(WIN_POPUP_TYPE_OKNO); //win_compopup_set_msg(NULL, NULL, RS_DISPLAY_SURE_TO_DELETE); //win_compopup_set_default_choice(WIN_POP_CHOICE_NO); //choice = win_compopup_open_ext(&back_saved); //if(choice == WIN_POP_CHOICE_YES) { win_compopup_init(WIN_POPUP_TYPE_SMSG); win_compopup_set_msg(NULL,NULL, RS_MSG_SAVING_DATA); win_compopup_open_ext(&back_saved); chunk_id = 0x03FC0100; api_get_chunk_add_len(chunk_id, &default_db_addr, &default_db_len); //here may reset CI+ Service Shunning parameter, 20100803 #ifdef CI_PLUS_SERVICESHUNNING ci_service_shunning_reset(); #endif set_default_value(DEFAULT_ALL_PROG,default_db_addr + 16); sys_data_factroy_init(); //sys_data_set_factory_reset(TRUE); sys_data_set_cur_chan_mode(TV_CHAN); sys_data_save(TRUE); sys_data_load(); if(GetMuteState()) SetMuteOnOff(FALSE); if(GetPauseState()) SetPauseOnOff(FALSE); win_compopup_smsg_restoreback(); power_off_process(); //初始化后重新启动xiaosaifei power_on_process(); // PRESULT ret = PROC_LEAVE; //ap_send_msg(CTRL_MSG_SUBTYPE_CMD_EXIT_ROOT, (UINT32)&g_win_PALNTSC,FALSE); } #ifdef SHOW_WELCOME_SCREEN POBJECT_HEAD submenu; extern void set_win_lang_as_welcome(BOOL iswelcome); set_win_lang_as_welcome(TRUE); submenu = (POBJECT_HEAD) & win_lan_con; if (OSD_ObjOpen(submenu, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_pop(); menu_stack_push(submenu); ret = PROC_LOOP; } #endif } break; } 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; }
static PRESULT win_an_set_unkown_act_proc(VACTION act) { // PRESULT ret = PROC_PASS; /* sky.bi 20110114 */ switch(act) { case VACT_SINGLE_SEARCH: single_multi_srch_flag = 0; 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(); } if(OSD_ObjOpen((POBJECT_HEAD)&g_win_sat_srchset, 0xFFFFFFFF) != PROC_LEAVE) menu_stack_push((POBJECT_HEAD)&g_win_sat_srchset); wincom_close_help(); break; case VACT_MULTI_SEARCH: single_multi_srch_flag = 1; 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(); } if(OSD_ObjOpen((POBJECT_HEAD)&g_win_sat_srchset, 0xFFFFFFFF) != PROC_LEAVE) menu_stack_push((POBJECT_HEAD)&g_win_sat_srchset); wincom_close_help(); break; case VACT_TP_SEARCH: 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(); } if(OSD_ObjOpen((POBJECT_HEAD)&g_win_tplist, 0xFFFFFFFF) != PROC_LEAVE) { menu_stack_push((POBJECT_HEAD)&g_win_tplist); // FIXED_PRINTF("menu_count :%d\n",menu_stack_get_menu_count()); } break; /*sky.bi 20110112*/ #if 0 //defined(ORDER_GZ1011006) case VACT_ANTENNA_MENU: { g_enter_antenna_menu_flag = 1; // FIXED_PRINTF("VACT_ANTENNA_MENU OSD_ObjOpen menu_count 0:%d\n",menu_stack_get_menu_count()); if(OSD_ObjOpen((POBJECT_HEAD)&g_win_antenna_connect, MENU_OPEN_TYPE_MENU) != PROC_LEAVE) { win_signal_close(); // FIXED_PRINTF("VACT_ANTENNA_MENU OSD_ObjOpen menu_count 1:%d\n",menu_stack_get_menu_count()); menu_stack_pop(); menu_stack_push((POBJECT_HEAD)&g_win_antenna_connect); // FIXED_PRINTF("VACT_ANTENNA_MENU OSD_ObjOpen menu_count 2:%d\n",menu_stack_get_menu_count()); } // ret = VACT_CLOSE; //sky.bi 20110114 break; } #endif } // return ret; //sky.bi 20110114 }