Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
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;
}
Ejemplo n.º 7
0
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;
}