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; }
PRESULT OSD_ProgressBarProc(POBJECT_HEAD pObj, UINT32 msg_type, UINT32 msg,UINT32 param1) { PRESULT Result = PROC_PASS; PROGRESS_BAR* b = (PROGRESS_BAR*)pObj; INT16 len,shift; if(msg_type==MSG_TYPE_KEY) { VACTION Action; UINT32 vkey; BOOL bContinue; Result = OSD_ObjCommonProc(pObj,msg,param1,&vkey,&Action,&bContinue); if(!bContinue) goto CHECK_LEAVE; len = (b->nMax - b->nMin)/b->nBlocks/*nStep*/; switch(Action) { case VACT_INCREASE: case VACT_DECREASE: { INT16 cur_pos = b->nPos; if(Action == VACT_INCREASE) shift = len; else shift = -len; OSD_ShiftBarPoint(b, shift); Result = OSD_SIGNAL(pObj,EVN_PRE_CHANGE,(UINT32)&(b->nPos),cur_pos); if(Result!=PROC_PASS) goto CHECK_LEAVE; OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG); Result = OSD_SIGNAL(pObj,EVN_POST_CHANGE,b->nPos,cur_pos); if(Result!=PROC_PASS) goto CHECK_LEAVE; Result = PROC_LOOP; break; } case VACT_CLOSE: CLOSE_OBJECT: Result = OSD_ObjClose(pObj,C_CLOSE_CLRBACK_FLG); goto EXIT; break; default: Result = OSD_SIGNAL(pObj, EVN_UNKNOWN_ACTION, (Action<<16) | vkey, param1); break; } } else// if(msg_type==MSG_TYPE_EVNT) Result = OSD_SIGNAL(pObj, msg_type, msg, param1); CHECK_LEAVE: if(!(EVN_PRE_OPEN == msg_type)) CHECK_LEAVE_RETURN(Result,pObj); EXIT: return Result; }
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; }
/***************************************************** Interface : static PRESULT chapter_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2); Function : callback of chapter container Author : Wu Jianwen Date : 2010.8.25 Input : Output : NONE Return : ******************************************************/ static PRESULT chapter_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 i; UINT16 wait_time = 0; UINT8 unact = 0; INT32 i_DestChapter = 0; //dest chapter num INT32 i_DestChapStartTime; DEC_CHAPTER_INFO t_ChapterInfo; //save chapter info of the stream switch(event) { case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_EXIT) { ret = PROC_LEAVE; } #ifdef USB_MP_SUPPORT else if(param1 == CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER) { ret = PROC_LEAVE; ap_send_msg(CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER,0,TRUE); } #endif break; case EVN_PRE_OPEN: api_set_deo_layer(0); api_inc_wnd_count(); for(i=0;i<CHAPTER_ITEM_NUMBER;i++) { p_chapter_track_str[i]=Chapter_track_str[i]; p_chapter_track_idx[i]=Chapter_track_idx[i]; } ListChapterInfoInit(); break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(VACT_ENTER == unact) { i_DestChapter = OSD_GetListCurPoint(&g_ls_chapter); //get current chapter t_ChapterInfo.dst_chapter = i_DestChapter; MpgFileGetChapterInfo(&t_ChapterInfo); //i_DestChapStartTime = t_ChapterInfo.dst_start_time/1000; //second i_DestChapStartTime = t_ChapterInfo.dst_start_time; //ms if(t_ChapterInfo.dst_start_time > t_ChapterInfo.cur_start_time) { //mpg_cmd_search_proc((DWORD)i_DestChapStartTime); mpg_cmd_search_ms_proc((DWORD)i_DestChapStartTime); while ((i_DestChapStartTime > MPGFileDecoderGetPlayTime()) && (wait_time < MP_TRICK_TIMEOUT)) { osal_task_sleep(2); wait_time++; } } else //chapter18 to chapter1 { //mpg_cmd_search_proc((DWORD)i_DestChapStartTime); mpg_cmd_search_ms_proc((DWORD)i_DestChapStartTime); while ((i_DestChapStartTime + VIDEO_SEARCH_DLYS < MPGFileDecoderGetPlayTime()) && (wait_time < MP_TRICK_TIMEOUT)) { osal_task_sleep(2); wait_time++; } } PlayProc(); OSD_ObjClose(pObj,C_CLOSE_CLRBACK_FLG); return PROC_LEAVE; } break; case EVN_PRE_CLOSE: ret = PROC_PASS; break; case EVN_POST_CLOSE: api_set_deo_layer(1); api_dec_wnd_count(); break; default: break; } return ret; }
static void win_mpegYTplayer_close_video_vol() { OSD_ObjClose((POBJECT_HEAD)&g_win_volume, C_UPDATE_ALL); }
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; }
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 void mbx_unkown_act_proc(VACTION act) { POBJECT_HEAD win; PMATRIX_BOX pmbx = &imgpreview_mbx_img; UINT16 curpos; switch(act) { case VACT_CURSOR_PGUP: case VACT_CURSOR_PGDN: if(act == VACT_CURSOR_PGUP) { if(image_multiview_first <=1 ) { break; } else if(image_multiview_first > MULTI_IMG_COUNT) { image_multiview_first -= MULTI_IMG_COUNT; image_cnt_inpage = MULTI_IMG_COUNT; } else { image_multiview_first = 1; image_cnt_inpage = (image_multiview_total<MULTI_IMG_COUNT)?image_multiview_total:(MULTI_IMG_COUNT); } } else //(act == VACT_CURSOR_PGDN) { if(image_multiview_first <= image_multiview_total - MULTI_IMG_COUNT) { image_multiview_first += MULTI_IMG_COUNT; image_cnt_inpage = ((image_multiview_total-image_multiview_first+1) < MULTI_IMG_COUNT)? \ (image_multiview_total-image_multiview_first+1):(MULTI_IMG_COUNT); } else break; } // OSD_ClearObject((POBJECT_HEAD)&g_win_imagepreview,0); OSD_SetMtrxboxCount(pmbx, image_cnt_inpage, MULTI_IMG_COUNT/MULTI_IMG_X_COUNT, MULTI_IMG_X_COUNT); curpos = OSD_GetMtrxboxCurPos(pmbx); if(curpos > image_cnt_inpage-1) { curpos = image_cnt_inpage-1; OSD_SetMtrxboxCurPos(pmbx, curpos); } OSD_TrackObject((POBJECT_HEAD)pmbx,C_DRAW_SIGN_EVN_FLG | C_UPDATE_ALL | C_DRAW_TYPE_HIGHLIGHT); hl_index = image_multiview_first + curpos; show_loadinglogo(1); //imagedec_ioctl(1,IMAGEDEC_IO_CMD_FILL_LOGO,0xB9748F);//yvu imagedec_ioctl(1, IMAGEDEC_IO_CMD_FILL_LOGO, 0x356B9D);//yvu image_abort(); image_idx_inpage = 0; preview_image(image_idx_inpage, image_multiview_first + image_idx_inpage); show_title(hl_index); break; case VACT_ENTER: win = (POBJECT_HEAD)(&g_win_imagepreview); OSD_ObjClose(win,C_CLOSE_CLRBACK_FLG); image_abort(); from_imagepreview = TRUE; curpos = OSD_GetMtrxboxCurPos(pmbx); win_set_image_slide_idx(image_multiview_first+curpos); win = (POBJECT_HEAD)(&g_win_imageslide); if(OSD_ObjOpen(win,(UINT32)(~0)) != PROC_LEAVE) menu_stack_push(win); break; default: break; } }
BOOL submenu_unknown_act(sub_menu_t *sub_menu, UINT32 vact) { UINT32 count = sub_menu->item_count; UINT32 depth = sub_menu->list_page; UINT32 top_pos = sub_menu->list_top; UINT32 cur_sel = sub_menu->list_sel; UINT32 cur_pos = cur_sel - top_pos; UINT32 old_sel = cur_sel; UINT32 old_top = top_pos; UINT32 i; BOOL ret = TRUE; #ifndef PREVIEW_SUBMENU //-a by wangyang if (vact >= VACT_NUM_1 && vact<= VACT_NUM_9) { OSD_ChangeFocus((POBJECT_HEAD)&g_win_submenu, vact - VACT_NUM_0, C_UPDATE_FOCUS); return TRUE; } if(vact == VACT_FOCUS_P_UP || vact == VACT_FOCUS_P_DOWN) { if (vact == VACT_FOCUS_P_UP) ret = OSD_ScrollLinePgUp(count, depth, &top_pos, &cur_pos); else ret = OSD_ScrollLinePgDown(count, depth, &top_pos, &cur_pos); if (!ret) return FALSE; cur_sel = top_pos + cur_pos; if (cur_sel == old_sel) return FALSE; if (submenu_item_attr(sub_menu, cur_sel) == C_ATTR_ACTIVE) { vact = VACT_PASS; } else { if (vact == VACT_FOCUS_P_UP) vact = VACT_FOCUS_UP; else vact = VACT_FOCUS_DOWN; } } #endif if(vact == VACT_FOCUS_UP || vact == VACT_FOCUS_DOWN) { for (i = 0; i < count; i++) { if (vact == VACT_FOCUS_UP) ret = OSD_ScrollLineUp(count, depth, &top_pos, &cur_pos); else ret = OSD_ScrollLineDown(count, depth, &top_pos, &cur_pos); if (!ret) return FALSE; cur_sel = top_pos + cur_pos; if (cur_sel == old_sel) return FALSE; if (submenu_item_attr(sub_menu, cur_sel) == C_ATTR_ACTIVE) break; } if (i == count) return FALSE; } if (cur_sel != old_sel) { sub_menu->list_top = top_pos; sub_menu->list_sel = cur_sel; //OSD_SetScrollBarPos(&subm_scrollbar, cur_sel); if (old_top == top_pos) { OSD_ChangeFocus((POBJECT_HEAD)&g_win_submenu, cur_pos + 1, C_UPDATE_FOCUS); // OSD_DrawObject((POBJECT_HEAD)&subm_scrollbar, C_UPDATE_ALL); } else { submenu_set_one_page(sub_menu); OSD_TrackObject((POBJECT_HEAD)&g_win_submenu, C_UPDATE_CONTENT); } } #ifdef EXIT_KEY_EXIT_ALL_MENU if(vact == VACT_CLOSE_ALL_MENU) { exit_key_flag =TRUE; OSD_ObjClose((POBJECT_HEAD)&g_win_submenu,C_CLOSE_CLRBACK_FLG); mm_leave_all_menu(); // ap_clear_all_menus(); // ap_exit_key_clear_all_menus(); // ap_send_msg(CTRL_MSG_SUBTYPE_CMD_ENTER_ROOT, (UINT32)&win_diag, TRUE); } #endif return TRUE; }
static PRESULT subtitle_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; SYSTEM_DATA * sys; struct nim_device* nim_dev; UINT8 i,lock; UINT8 unact; if(cur_tuner_idx == 0) nim_dev = g_nim_dev; else nim_dev = g_nim_dev2; nim_get_lock(nim_dev,&lock); switch(event) { case EVN_PRE_OPEN: #ifdef SUPPORT_CAS9 if(0==get_mmi_showed()) ShowSignalStatusOSDOnOff(0); #endif api_set_deo_layer(0); api_inc_wnd_count(); for(i=0;i<SUBTITLE_ITEM_NUMBER;i++) { p_subtitle_track_str[i]=Subtitle_track_str[i]; p_subtitle_track_idx[i]=Subtitle_track_idx[i]; } if(system_state != SYS_STATE_USB_MP)//vic100507#1 { win_subtitle_init_data(); if(((0 == g_win_subtitle_count ) && (0 == g_win_ttx_subtitle_count)) || (!lock)) #if (DVR_PVR_SUPPORT_SUBTITLE)//temp disable if(((0 == g_win_subtitle_count ) && (0 == g_win_ttx_subtitle_count)) #ifdef DVR_PVR_SUPPORT || ((!lock) && !api_pvr_is_playing()) #else || (!lock) #endif ) #endif { win_com_popup_open(WIN_POPUP_TYPE_SMSG,NULL, RS_DISPLAY_NO_DATA); osal_task_sleep(1000); win_compopup_close(); api_dec_wnd_count(); return PROC_LEAVE; } } else { #ifdef MP_SUBTITLE_SUPPORT //vic100507#1 //TODO: //such like win_subtitle_init_data long resut; resut = win_mp_subtitle_init_data(); if (resut < 0) { return PROC_LEAVE; } #endif } break; case EVN_UNKNOWN_ACTION: unact = (VACTION)(param1>>16); if(system_state != SYS_STATE_USB_MP)//vic100507#1 { if(VACT_ENTER == unact) { UINT16 cur_sel = OSD_GetListCurPoint(&g_ls_subtitle); sys = sys_data_get(); if(g_win_subtitle_count + g_win_ttx_subtitle_count==cur_sel) { sys->osd_set.subtitle_display = 0;/*select off option*/ sys->osd_set.subtitle_lang = 0xFF; } else if(cur_sel < g_win_ttx_subtitle_count) { sys->osd_set.subtitle_display = 1;/*subtitle on*/ sys->osd_set.subtitle_lang = cur_sel;/*set_sub_lang_idx is used in api_osd_mode_change function*/ } else if(cur_sel < g_win_subtitle_count + g_win_ttx_subtitle_count) {/*ttx_subtitle on the top then normal subtitle*/ sys->osd_set.subtitle_display = 1; sys->osd_set.subtitle_lang = cur_sel;/*set_sub_lang_idx is used in api_osd_mode_change function*/ } ret = PROC_LEAVE; api_osd_mode_change(OSD_NO_SHOW); //api_osd_mode_change(OSD_SUBTITLE); } } else if(VACT_ENTER == unact) { //vic100507#1 begin #ifdef MP_SUBTITLE_SUPPORT //TODO: //select language index if (!subtitle_handle) { return PROC_LEAVE; } long resut; UINT16 cur_sel = OSD_GetListCurPoint(&g_ls_subtitle); if(g_ext_subtitle_plugin) g_ext_subtitle_plugin->mps_change_language(subtitle_handle,cur_sel); OSD_ObjClose(pObj,C_CLOSE_CLRBACK_FLG); //if (resut < 0) { return PROC_LEAVE; } #endif //vic100507#1 end } break; case EVN_PRE_CLOSE: unact = (VACTION)(param1>>16); ret = PROC_PASS; break; case EVN_POST_CLOSE: #ifdef SUPPORT_CAS9 restore_ca_msg_when_exit_win(); #endif api_set_deo_layer(1); api_dec_wnd_count(); break; default: break; } return ret; }