static PRESULT weathercitylst_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; switch(event) { case EVN_PRE_OPEN: weathercitylst_load_list(); wincom_open_subtitle(pObj,RS_WEATHER_CITY_LIST,0); break; case EVN_POST_OPEN: wincom_open_help(pObj,weathercitylist_helpinfo , HELP_CNT); break; case EVN_PRE_CLOSE: sys_data_save(1); break; case EVN_POST_CLOSE: if(weath!=-1||weath!=0) libnet_download_abort((unsigned long)weath); weath=0; wincom_close_subtitle(); wincom_close_help(); break; case EVN_MSG_GOT: ret = weather_msg_proc(param1,param2); break; } return ret; }
void catch_up_terminate(void) { struct catch_up_list_node_s *node = NULL; node = catch_up_head; while (node != NULL) { catch_up_head = node->next; free(node); node = catch_up_head; } catch_up_head = NULL; if (catch_up_buffer_addr != NULL) { free(catch_up_buffer_addr); catch_up_buffer_addr = NULL; } libnet_download_abort(upgrade_handle); }
void libnet_abort_url_read(BOOL abort) { if(abort) { if(u2b_play_video_handle!=0) libnet_download_abort(u2b_play_video_handle); u2b_play_video_handle = 0; } abort_url_read=abort; }
static PRESULT win_mpegYT_player_message_proc(POBJECT_HEAD pObj, UINT32 msg_type, UINT32 msg_code) { PRESULT ret = PROC_LOOP; struct VDec_StatusInfo vdec_status; switch (msg_type) { case CTRL_MSG_SUBTYPE_CMD_STO: if(msg_code == USB_STATUS_OVER) do{}while(0); break; case CTRL_MSG_SUBTYPE_CMD_TIMEDISPLAYUPDATE: //add on 2011-09-28 fixBUG42869 //if(!b_vdec_support && !b_audio_yt_support) //{ // StopProc(); // break; //} MPEGYTInfo.PlayTime = (UINT32)MPGFileDecoderGetPlayTime() + s_ytvideo_seektime; if(MPEGYTInfo.PlayTime >= MPEGYTInfo.TotalTime) { BarState.nPos = MPEGYTInfo.TotalTime - 1; } else BarState.nPos = MPEGYTInfo.PlayTime; if (!m_HideWindow) { win_mpegYT_player_draw(TRUE); } break; case CTRL_MSG_SUBTYPE_STATUS_VIDEO_OVER: //video over #if 0 vdec_io_control(dev_get_by_id(HLD_DEV_TYPE_DECV, 0), VDEC_IO_GET_STATUS, (UINT32)(&vdec_status)); if(MPEG_FB != MPEGYTInfo.PlayState && MPEG_SB != MPEGYTInfo.PlayState && vdec_status.api_play_direction == VDEC_FORWARD) { if((filelist_get_current_classifiedfile_count(MP_VIDEO)+1)<mpegYTlist_cnt) { mpegYTlist_idx = filelist_get_next_classifiedfile_index(MP_VIDEO, mpegYTlist_idx); } else { mpegYTlist_idx = (UINT16)(~0); } } if(mpegYTlist_idx != (UINT16)(~0)) { if(vdec_status.api_play_direction == VDEC_FORWARD) { libnet_download_abort(g_strf_cur_dl_rsrc); mpg_cmd_stop_proc(); } MPEGYTInfo.PlayState = MPEG_STOP; api_stop_timer(&mpegYT_refresh_id); m_mpegYT_player_working = FALSE; MPEGYT_player_init(); m_mpegYT_player_working = TRUE; } else ret = PROC_LEAVE; #else if(MPEGYTInfo.PlayState == MPEG_FB) { MPEGYTInfo.PlayState = MPEG_STOP; PlayProc_yt(); } else { ret = PROC_LEAVE; } #endif break; case CTRL_MSG_SUBTYPE_STATUS_TIMEOUT: //mpegYT player display timer out if (!m_HideWindow) { win_mpegYT_player_draw(FALSE); if (BarState.State == CURSOR_MOVING) { SyncBarPosAndCursor(POS_TO_CUR); } } else { if (m_bSetVol_YT)//if the volume bar is showing { //ShowVolumeBar(FALSE);//Close the volume bar } } break; case CTRL_MSG_SUBTYPE_STATUS_VIDEO_DEC_ERR: case CTRL_MSG_SUBTYPE_STATUS_PARSE_END: s_is_in_parsing = 0; // mpegYT_refresh_cnt = 0; MPEGYTInfo.TotalTime = get_video_total_time() + s_ytvideo_seektime; BarState.nRange = MPEGYTInfo.TotalTime; mpegYT_file_prompt(NULL, FALSE); //mpegYT_unsupport_detect(msg_code); #ifdef AV_DELAY_SUPPORT if(b_vdec_support && b_audio_yt_support) { SYSTEM_DATA *psys_data = sys_data_get(); if(psys_data->avset.avdelay_value > 500) MpgSetAVSyncDelay(1, psys_data->avset.avdelay_value-500); //0:video; 1:audio. else if(psys_data->avset.avdelay_value > 0 && psys_data->avset.avdelay_value < 500) MpgSetAVSyncDelay(0, psys_data->avset.avdelay_value); //0:video; 1:audio. } #endif break; } return ret; }
static PRESULT win_mpegYT_player_key_proc(POBJECT_HEAD pObj, UINT32 key, UINT32 param) { PRESULT ret = PROC_LOOP; int wait_time = 0; if((key == V_KEY_PAUSE)&&(MPEGYTInfo.PlayState != MPEG_PLAY)) { key = V_KEY_PLAY; } switch (key) { case V_KEY_EXIT: case V_KEY_MENU: if (m_HideWindow) { if (m_bSetVol_YT) { //ShowVolumeBar(FALSE);//Close volume bar win_mpegYTplayer_close_video_vol(); m_bSetVol_YT = FALSE; } else { ret = PROC_LEAVE;//exit video player } } else { if (MPEGYTInfo.PlayState == MPEG_STOP) { ret = PROC_LEAVE;//exit video player } else { api_stop_timer(&mpegYT_timeout_id); win_mpegYT_player_draw(FALSE);//Hide the information window if (BarState.State == CURSOR_MOVING) { SyncBarPosAndCursor(POS_TO_CUR); } } } break; case V_KEY_PLAY: case V_KEY_1: if(MPEGYTInfo.PlayState != MPEG_PLAY) { PivotalKeyProc(); PlayProc_yt(); } break; case V_KEY_PAUSE: case V_KEY_2: case V_KEY_STEP: PivotalKeyProc(); PauseProc(); break; case V_KEY_STOP: case V_KEY_0: PivotalKeyProc(); StopProc(); ret = PROC_LEAVE; break; case V_KEY_LEFT: if (m_HideWindow) { win_mpegYT_player_draw(FALSE); win_mpegYTplayer_set_video_vol(V_KEY_LEFT); return PROC_LOOP; } if(s_is_in_parsing) { break; } if (MPEGYTInfo.PlayState != MPEG_STOP) { if (BarState.State != CURSOR_MOVING) { BarState.State = CURSOR_MOVING; BarState.nCursor = BarState.nPos; } if (BarState.nCursor > SLIDE_BAR_STEP) { BarState.nCursor -= SLIDE_BAR_STEP; } else if (0 == BarState.nCursor ) { if(BarState.nRange > SLIDE_BAR_STEP) BarState.nCursor = BarState.nRange-SLIDE_BAR_STEP; else BarState.nCursor = BarState.nRange; }else { BarState.nCursor = 0; } } win_mpegYT_player_draw(TRUE); break; case V_KEY_RIGHT: if (m_HideWindow) { win_mpegYT_player_draw(FALSE); win_mpegYTplayer_set_video_vol(V_KEY_RIGHT); return PROC_LOOP; } if(s_is_in_parsing) { break; } if (MPEGYTInfo.PlayState != MPEG_STOP) { if (BarState.State != CURSOR_MOVING) { BarState.State = CURSOR_MOVING; BarState.nCursor = BarState.nPos; } if (BarState.nCursor + SLIDE_BAR_STEP < BarState.nRange) { BarState.nCursor += SLIDE_BAR_STEP; } else { if(BarState.nRange > SLIDE_BAR_STEP) BarState.nCursor = SLIDE_BAR_STEP; else BarState.nCursor = BarState.nRange - VIDEO_SEARCH_DLYS; } } win_mpegYT_player_draw(TRUE); break; case V_KEY_ENTER: if (MPEGYTInfo.PlayState != MPEG_STOP) { if (BarState.State == CURSOR_MOVING) { if (BarState.nPos < BarState.nCursor)//forward { BarState.CursorDir = 1; } else if (BarState.nPos > BarState.nCursor)//backward { BarState.CursorDir = 2; } else { BarState.CursorDir = 0; } SyncBarPosAndCursor(CUR_TO_POS); MPEGYTInfo.PlayTime = BarState.nPos; if (BarState.CursorDir) { s_ytvideo_seektime = MPEGYTInfo.PlayTime; api_stop_timer(&mpegYT_refresh_id); libnet_download_abort(g_strf_cur_dl_rsrc); mpg_cmd_stop_proc(); mpegYT_file_prompt("Loading, please wait...", TRUE); osal_task_sleep(1000); UINT8 tmpurl[1024]; UINT8* tmppos; tmppos = strstr(url_youtube, "&begin="); if(NULL == tmppos) { sprintf(tmpurl, "&begin=%d", s_ytvideo_seektime * 1000); strcat(url_youtube, tmpurl); }else { sprintf(tmppos, "&begin=%d", s_ytvideo_seektime * 1000); } httpstrfile_url_gen(tmpurl, url_youtube, "mp4"); video_dec_file(tmpurl, 0); s_is_in_parsing = 1; MPEGYTInfo.PlaySpeed = 0; StartRefreshTimer(); } PlayProc_yt(); } } break; default: break; } return ret; }
static PRESULT mpegYT_player_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; SYSTEM_DATA* sys_data; sys_data = sys_data_get(); switch (event) { case EVN_PRE_OPEN: MPEGYTBAR_TIMER_TIME = sys_data->osd_set.time_out; if(MPEGYTBAR_TIMER_TIME == 0 || MPEGYTBAR_TIMER_TIME>10) MPEGYTBAR_TIMER_TIME = 5; MPEGYTBAR_TIMER_TIME *= 1000; if (!m_mpegYT_player_working) { entry_youtube = ((yt_player_param*)param2)->ytentry_handle; url_youtube = ((yt_player_param*)param2)->url; MPEGYT_player_init(); } else { ret = PROC_LOOP; } m_mpegYT_player_working = TRUE; break; case EVN_POST_OPEN: mpegYT_timeout_id = api_start_timer(MPEGYTBAR_TIMER_NAME, MPEGYTBAR_TIMER_TIME, mpegYT_timeout_handler); break; case EVN_POST_DRAW: win_mpegYT_player_draw_infor(); break; case EVN_PRE_CLOSE: libnet_download_abort(g_strf_cur_dl_rsrc); mpg_cmd_stop_proc(); api_stop_timer(&mpegYT_refresh_id); api_stop_timer(&mpegYT_timeout_id); m_mpegYT_player_working = FALSE; g_from_mpegYTplayer = TRUE; s_ytvideo_seektime = 0; break; case EVN_UNKNOWN_ACTION: api_stop_timer(&mpegYT_timeout_id); unact = (VACTION)(param1>>16); //add on 2011-09-28 for BUG42869 //if(!b_vdec_support && !b_audio_yt_support) // MPEGYTInfo.TotalTime = 0; //else // MPEGYTInfo.TotalTime = MPGGetTotalPlayTime() + s_ytvideo_seektime; MPEGYTInfo.TotalTime = entry_youtube->info->duration; switch (unact) { case VACT_MUTE: { SetMuteOnOff(TRUE); ret = PROC_LOOP; break; } default : { ret = win_mpegYT_player_key_proc(pObj, (param1 & 0xFFFF), param2); if (ret != PROC_LEAVE) { if( ((param1 & 0xFFFF) != V_KEY_EXIT) && ((param1 & 0xFFFF) != V_KEY_MENU) && ((param1 & 0xFFFF) != V_KEY_PVR_INFO) && ((param1 & 0xFFFF) != V_KEY_LEFT) && ((param1 & 0xFFFF) != V_KEY_RIGHT)) { win_mpegYT_player_draw(TRUE); } } break; } } mpegYT_timeout_id = api_start_timer(MPEGYTBAR_TIMER_NAME, MPEGYTBAR_TIMER_TIME, mpegYT_timeout_handler); break; case EVN_UNKNOWNKEY_GOT: break; case EVN_MSG_GOT: ret = win_mpegYT_player_message_proc(pObj, param1, param2); break; } return ret; }
static PRESULT news_list_win_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT8 back_saved; INT32 news_list_num = 0; switch(event) { case EVN_PRE_OPEN: #ifdef EXIT_KEY_EXIT_ALL_MENU exit_key_flag = FALSE; #endif bGetContent = FALSE; news_list_load(param2); break; case EVN_POST_OPEN: wincom_open_subtitle(pObj,RS_NEWS,0); break; case EVN_PRE_CLOSE: news_terminate(); break; case EVN_POST_CLOSE: if(news!=1||news!=0) libnet_download_abort((unsigned long)news); news=0; wincom_close_subtitle(); #ifdef EXIT_KEY_EXIT_ALL_MENU if(( exit_key_flag == TRUE)||((sys_data_get_sate_group_num(RADIO_CHAN)==0)&&(sys_data_get_sate_group_num(TV_CHAN)==0)))//解决无节目还可以进默认页面导致死机问题 { exit_key_flag =FALSE; mm_leave_all_menu(); } #endif break; case EVN_MSG_GOT: if (param1 == CTRL_MSG_SUBTYPE_STATUS_DOWNLOAD_FINISH) { news=0; if ((int)param2 >= 0) { win_compopup_smsg_restoreback(); news_list_num = news_parse(); if (news_list_num <= 0) { win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg((UINT8*)"Error",NULL,0); win_compopup_open_ext(&back_saved); } else { bGetContent = TRUE; win_news_detail_open(OSD_GetObjListCurPoint(&ol_news_list)); } } else { win_compopup_smsg_restoreback(); win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg((UINT8*)"Error",NULL,0); win_compopup_open_ext(&back_saved); ret = PROC_LOOP; } } break; default: break; } return ret; }