Beispiel #1
0
static void PlayProc()
{
    RET_CODE ret;
    char name[FULL_PATH_SIZE];
    FileInfo file_node;
    int ret_val;

    if (MPEGInfo.PlayState >= MPEG_PAUSE && MPEGInfo.PlayState <= MPEG_STEP)
    {
        mpg_cmd_play_proc();
        MPEGInfo.PlayState = MPEG_PLAY;
        MPEGInfo.PlaySpeed = 0;
        StartRefreshTimer();
    }
    else if (MPEGInfo.PlayState == MPEG_STOP)
    {
        api_stop_timer(&mpeg_refresh_id);
        mpeg_refresh_id = api_start_cycletimer("MPEGRFS", 200, mpeg_refresh_handler);
        ret = get_file_from_file_list(win_file_list[VIDEO_FILE_LIST], mpeglist_idx, &file_node);
        if(ret == RET_FAILURE)
        {
            //return FALSE;
        }
        win_get_fullname(name, file_node.path, file_node.name);
        ret_val = video_dec_file(name, 0);
        if(ret < 0)
        {
            //return FALSE;
        }
        MPEGInfo.PlayState = MPEG_PLAY;
        MPEGInfo.PlaySpeed = 0;
        StartRefreshTimer();
    }
}
Beispiel #2
0
static void movefile_display_items(UINT16 uTop)
{
	UINT8 i,root_offset,bRoot;
	char str_buff[MAX_FILE_NAME_SIZE + 1];
	RET_CODE ret;
	TEXT_FIELD *pTxt;
	BITMAP *pBmp;
	FileInfo file_node;

	bRoot = win_check_openroot(win_move_dirlist);
	if(bRoot == FALSE)
		root_offset = 1;//if not root dir,add an item to exit
	else
		root_offset = 0;

	for(i = 0; i < MV_ITEM_CNT;i++)
	{
		if(((uTop+i) == 0) && (root_offset == 1))
		{
//			pTxt = mpmove_idxs[i];
//			OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)"/..");
//			pBmp = mpmove_icons[i];
//			OSD_SetBitmapContent(pBmp, 0);
			pTxt = mpmove_files[i];
			OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)"/..");
			continue;
		}//item exit

		ret = get_file_from_file_list(win_move_dirlist, (uTop+i + 1 - root_offset), &file_node);

		if(ret == RET_SUCCESS)
		{
//			pTxt = mpmove_idxs[i];
//			sprintf(str_buff,"%d",(uTop + i + 1));
//			OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)str_buff);
//			pBmp = mpmove_icons[i];
//			OSD_SetBitmapContent(pBmp, file_icon_ids[file_node.filetype]);
			pTxt = mpmove_files[i];
			//filter_unkownfont_name(file_node.name,str_buff);
			win_shorten_filename(file_node.name,str_buff);
			OSD_SetTextFieldContent(pTxt,STRING_UTF8,(UINT32)str_buff);
		}
		else
		{
//			pTxt = mpmove_idxs[i];
//			OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)"");
//			pBmp = mpmove_icons[i];
//			OSD_SetBitmapContent(pBmp, 0);
			pTxt = mpmove_files[i];
			OSD_SetTextFieldContent(pTxt,STRING_ANSI,(UINT32)"");
		}
	}
}
Beispiel #3
0
static BOOL MPEGYT_player_init(void)
{
	POBJECT_HEAD pCtrl;
	PROGRESS_BAR* bar;
	RET_CODE ret;
	FileInfo file_node;
	char name[FULL_PATH_SIZE];

	MEMSET(&BarState, 0, sizeof(BarState));
	BarState.nRange = 100;
	BarState.State = NORMAL_MOVING;

	bar = &mpegYT_player_bar;
	OSD_SetProgressBarValue(bar, 100);
	OSD_SetProgressBarRange(bar, 0, 100);

	MEMSET(&MPEGYTInfo, 0, sizeof(MPEGYTInfo));
	MPEGYTInfo.PlayTime = 0;
	MPEGYTInfo.TotalTime = 0;

	MPEGYTInfo.PlaySpeed = 0;

	m_HideWindow = FALSE;
	mpegYT_timeout_id = OSAL_INVALID_ID;
	if (GetMuteState())
	{
		ShowMuteOnOff();
	}

	StartRefreshTimer();
	ret = get_file_from_file_list(win_file_list[VIDEO_FILE_LIST], mpegYTlist_idx, &file_node);
	if(ret == RET_FAILURE)
	{
		return FALSE;
	}
	win_get_fullname(name, file_node.path, file_node.name);
    video_dec_file(name, 0);

	MPEGYTInfo.TotalTime = get_video_total_time();
	MPEGYTInfo.PlayState = MPEG_PLAY;

	BarState.nRange = MPEGYTInfo.TotalTime;

	return TRUE;
}
Beispiel #4
0
UINT32 win_get_file_idx(FileListHandle file_list, char *file_name)
{
	UINT32 uIdx,uTotal;
	FileInfo file_node;
	char full_name[MAX_FILE_NAME_SIZE];
	unsigned int dir_num,file_num;
	
	get_file_list_info(file_list, &dir_num, &file_num, NULL);
	uTotal = dir_num+file_num;
	for(uIdx=0; uIdx<uTotal; uIdx++)
	{
		get_file_from_file_list(file_list, uIdx+1, &file_node);
		win_get_fullname(full_name, file_node.path, file_node.name);
		if(STRCMP(file_name, full_name) == 0)
			break;
	}
	if(uIdx == uTotal)
		uIdx = (UINT16)(~0);
	
	return uIdx;
}
Beispiel #5
0
RET_CODE win_set_imageplay_param(PlayListHandle *pplaylist, UINT32 idx, UINT8 folder_flag)
{
	UINT8 back_saved;
	RET_CODE retcode = RET_SUCCESS;
	FileInfo filenode;
	char image_name[FULL_PATH_SIZE];
	int playlist_idx;

	image_folderloop_flag = folder_flag;
	if(image_folderloop_flag == 1)
	{
		if(*pplaylist != NULL)
		{
			if(RET_SUCCESS != delete_play_list(*pplaylist))
			{
				return RET_FAILURE;
			}
		}
		*pplaylist = create_play_list(IMAGE_PLAY_LIST, "folder_image");
		if(*pplaylist == NULL)
		{
			return RET_FAILURE;
		}
		
		get_file_from_file_list(cur_filelist, idx, &filenode);
		win_get_fullname(image_name, filenode.path, filenode.name);
		win_compopup_init(WIN_POPUP_TYPE_SMSG);
		win_compopup_set_frame(200, 200, 200, 100);
		win_compopup_set_msg(NULL, NULL,RS_DISPLAY_PLEASE_WAIT);
		win_compopup_open_ext(&back_saved);
		retcode = add_all_file_list_items_to_play_list(*pplaylist, cur_filelist);
		osal_task_sleep(500);
		win_compopup_smsg_restoreback();
		if(retcode != RET_SUCCESS)
		{
			return RET_FAILURE;
		}
		if((filenode.filetype == F_JPG) || (filenode.filetype == F_BMP))
		{
			playlist_idx = get_play_list_index_by_name(*pplaylist, image_name);
		}
		else
		{
			playlist_idx = 1;
		}
		if(playlist_idx == -1)
		{
			return RET_FAILURE;
		}
		cur_playlist_image = *pplaylist;
		cur_image_idx = playlist_idx;
	}
	else
	{
		cur_playlist_image = *pplaylist;
		cur_image_idx = idx;
	}
	set_play_list_info(cur_playlist_image, &cur_image_idx, NULL);

	return RET_SUCCESS;
}
Beispiel #6
0
static PRESULT movefile_item_enter(UINT16 uIdx)
{
	PRESULT ret = PROC_LOOP;
	BOOL bRoot;
	char str_name[FULL_PATH_SIZE],str_txt[FULL_PATH_SIZE];
	FileInfo file_node;
	POBJLIST pOl;
	TEXT_FIELD *pTxt;
	UINT8 back_saved;

	bRoot = win_check_openroot(win_move_dirlist);
	if((uIdx == 0) && (bRoot == FALSE))
	{//TODO:Exit to up dir		

		get_file_list_info(win_move_dirlist, &movefile_dirnum, &movefile_filenum, str_name);
		win_get_parent_dirname(str_txt, str_name);
		win_compopup_init(WIN_POPUP_TYPE_SMSG);
		win_compopup_set_frame(200, 200, 200, 100);
		win_compopup_set_msg(NULL, NULL,RS_DISPLAY_PLEASE_WAIT);
		win_compopup_open_ext(&back_saved);
		read_folder_to_file_list(win_move_dirlist, str_txt);
		win_compopup_smsg_restoreback();
		bRoot = win_check_openroot(win_move_dirlist);
		if(bRoot)
		{
			file_list_change_device(win_move_dirlist, movefile_cur_device);
		}
		movefile_curidx = win_get_file_idx(win_move_dirlist, str_name);
		if(movefile_curidx == (UINT16)(~0))
			movefile_curidx = 0;
		
		get_file_list_info(win_move_dirlist, &movefile_dirnum, &movefile_filenum, str_name);
		pTxt = &mpmove_dir_txt;
		win_get_display_dirname(str_txt, str_name);//get dirname to show
		OSD_SetTextFieldContent(pTxt,STRING_UTF8,(UINT32)str_txt);
		OSD_DrawObject((POBJECT_HEAD)pTxt,C_UPDATE_ALL);

		pOl  = &ol_mpmove;
		movefile_curidx = movefile_curidx + (bRoot?0:1);
		OSD_SetObjListCurPoint(pOl, movefile_curidx);
		OSD_SetObjListNewPoint(pOl, movefile_curidx);
		OSD_SetObjListTop(pOl, movefile_curidx);
		if(bRoot == TRUE)
			OSD_SetObjListCount(pOl, (movefile_dirnum + movefile_filenum));//to show it's child dir
		else
			OSD_SetObjListCount(pOl, (movefile_dirnum + movefile_filenum + 1));//to show it's child dir
		if(OSD_GetObjListCount(pOl) <= MV_ITEM_CNT)
			OSD_SetObjListTop(pOl, 0);
		OSD_TrackObject((POBJECT_HEAD)pOl, C_UPDATE_ALL | C_DRAW_SIGN_EVN_FLG);
		return ret;
	}

	if(!bRoot)
	{
		uIdx--;
	}
	
	get_file_from_file_list(win_move_dirlist, uIdx+1, &file_node);
	if(file_node.filetype == F_DIR)
	{
		//TODO: Enter child directory & retrive items,set not_root flag
		win_get_fullname(str_name, file_node.path, file_node.name);
		win_compopup_init(WIN_POPUP_TYPE_SMSG);
		win_compopup_set_frame(200, 200, 200, 100);
		win_compopup_set_msg(NULL, NULL,RS_DISPLAY_PLEASE_WAIT);
		win_compopup_open_ext(&back_saved);
		read_folder_to_file_list(win_move_dirlist, str_name);
		win_compopup_smsg_restoreback();

		get_file_list_info(win_move_dirlist, &movefile_dirnum, &movefile_filenum, str_name);

		pTxt = &mpmove_dir_txt;
		win_get_display_dirname(str_txt, str_name);//get dirname to show
		OSD_SetTextFieldContent(pTxt,STRING_UTF8,(UINT32)str_txt);
		OSD_DrawObject((POBJECT_HEAD)pTxt,C_UPDATE_ALL);

		movefile_curidx = 0;
		pOl  = &ol_mpmove;
		OSD_SetObjListCount(pOl, (movefile_dirnum + movefile_filenum + 1));//to show it's child dir
		OSD_SetObjListCurPoint(pOl, movefile_curidx);
		OSD_SetObjListNewPoint(pOl, movefile_curidx);
		OSD_SetObjListTop(pOl, movefile_curidx);
		OSD_TrackObject((POBJECT_HEAD)pOl, C_UPDATE_ALL | C_DRAW_SIGN_EVN_FLG);
	}
	else
	{
		//TODO:soc_printf("not dir!!\n");
	}

	return ret;
}
Beispiel #7
0
static void win_mpeg_player_draw_infor(void)
{
    BITMAP* bmp;
    TEXT_FIELD* txt;
    PROGRESS_BAR* bar;
    mpegplayer_bmp_t* bmp_desc;
    mpegplayer_txt_t* txt_desc;
    UINT32 i, hd_fulless;
    UINT16 icon;
    char string[30];
    UINT32 hh, mm, ss;
    UINT32 play_pos = 0;
    FileInfo file_node;
    char name_buffer[MAX_FILE_NAME_SIZE + 1];

    bmp = &mpeg_player_bmp;
    txt = &mpeg_player_text;
    bar = &mpeg_player_bar;

    for (i = 0; i < MPEG_BMP_NUM; i++)
    {
        bmp_desc = &mpegplayer_bmps[i];
        icon = INVALID_ID;
        switch (bmp_desc->bmp_type)
        {
        case MPEG_BMP_STATIC:
            //icon = bmp_desc->icon;
            break;
        case MPEG_BMP_PLAY_RECORD:
            icon = bmp_desc->icon;
            break;
        case MPEG_BMP_PLAY_MODE:
            if (MPEGInfo.PlayState < sizeof(mpegplayer_status_icons) / 2)
            {
                icon = mpegplayer_status_icons[MPEGInfo.PlayState];
            }
            break;
        case MPEG_BMP_HDD_STATUS:
            /*			step_sectors =  (hdd_info.total_size - hdd_info.tms_size) / 5;
            			if(step_sectors >0 )
            			{
            				hd_fulless = (hdd_info.rec_size + step_sectors/2) / step_sectors ;
            				if(hd_fulless == 5)
            					hd_fulless = 4;
            				icon = MP_HDstatus_icons[4-hd_fulless];//hd_fulless -> 4-hd_fulles, show used space!
            			}
            */
            break;
        default:
            break;
        }


        OSD_SetBitmapContent(bmp, icon);
        OSD_SetRect(&bmp->head.frame, bmp_desc->left, bmp_desc->top, bmp_desc->width, bmp_desc->height);
        OSD_DrawObject( (OBJECT_HEAD*) bmp, C_UPDATE_ALL);
    }

    for (i = 0; i < MPEG_TXT_NUM; i++)
    {
        txt_desc = &mpegplayer_txts[i];

        OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)"");

        switch (txt_desc->txt_type)
        {
        case MPEG_TXT_PLAY_NAME:
            get_file_from_file_list(win_file_list[VIDEO_FILE_LIST], mpeglist_idx, &file_node);
            //filter_unkownfont_name(file_node.name, name_buffer);
            win_shorten_filename(file_node.name,name_buffer);
            sprintf(name_buffer, "%s", name_buffer);
            OSD_SetTextFieldContent(txt, STRING_UTF8, (UINT32)name_buffer);
            break;
        case MPEG_TXT_DATE:
            //sprintf(string,"%02d/%02d",dt.month,dt.day);
            STRCPY(string, "");
            OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string);
            break;
        case MPEG_TXT_TIME:
            //sprintf(string,"%02d:%02d",dt.hour,dt.min);
            STRCPY(string, "");
            OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string);
            break;
        case MPEG_TXT_PLAY_MODE:
            STRCPY(string, "");
            if (MPEGInfo.PlayState == MPEG_STOP)
            {
                sprintf(string, "%s", "Stop");
            }
            else if (MPEGInfo.PlayState == MPEG_PLAY)
            {
                sprintf(string, "%s", "Play");
            }
            else if (MPEGInfo.PlayState == MPEG_PAUSE)
            {
                sprintf(string, "%s", "Pause");
            }
            else if (MPEGInfo.PlayState == MPEG_FF || MPEGInfo.PlayState == MPEG_FB)
            {
                sprintf(string, "X%d", mpegspeed_steps[MPEGInfo.PlaySpeed]);
            }
            else if (MPEGInfo.PlayState == MPEG_SF || MPEGInfo.PlayState == MPEG_SB)
            {
                sprintf(string, "X1/%d", mpegspeed_steps[MPEGInfo.PlaySpeed]);
            }
            else if(MPEGInfo.PlayState == MPEG_STEP)
            {
                sprintf(string,"%s","Step");
            }
            OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string);
            break;
        case MPEG_TXT_PLAY_1ST_TIME:
            STRCPY(string, "");
            MPEGInfo.PlayTime = (UINT32)MPGFileDecoderGetPlayTime();
            hh = MPEGInfo.PlayTime / 3600;
            mm = (MPEGInfo.PlayTime % 3600) / 60;
            ss = MPEGInfo.PlayTime % 60;
            sprintf(string, "%02d:%02d:%02d", hh, mm, ss);
            OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string);
            break;

        case MPEG_TXT_PLAY_2ND_TIME:
            STRCPY(string, "");
            hh = MPEGInfo.TotalTime / 3600;
            mm = (MPEGInfo.TotalTime % 3600) / 60;
            ss = MPEGInfo.TotalTime % 60;
            sprintf(string, "%02d:%02d:%02d", hh, mm, ss);
            OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string);
            break;
        case MPEG_TXT_HDD_STATUS:
            /*step_sectors = (hdd_info.total_size - hdd_info.tms_size)/100;
            if(step_sectors >0 )
            {
            	sprintf(string,"%d%%",(100 - (hdd_info.rec_size+ step_sectors/2 )/step_sectors));
            }
            else
            {
            	STRCPY(string,"");
            }
            OSD_SetTextFieldContent(txt, STRING_ANSI, (UINT32)string);
            */
            break;
        }

        OSD_SetRect(&txt->head.frame, txt_desc->left, txt_desc->top, txt_desc->width, txt_desc->height);
        txt->head.style.bShowIdx = txt_desc->shidx;
        OSD_DrawObject( (OBJECT_HEAD *)txt, C_UPDATE_ALL);
    }

    /* Draw progress bar */
    OSD_SetProgressBarPos(bar, 100);
    OSD_SetRect(&bar->head.frame, BAR_L, BAR_T, BAR_W, 24);
    bar->rcBar.uLeft 	= 2;
    bar->rcBar.uTop 		= 5;
    bar->rcBar.uWidth	= BAR_W - 4;
    bar->rcBar.uHeight 	= 14;//16 - 6;
    bar->wTickFg 		= WSTL_BAR_06;
    OSD_DrawObject((POBJECT_HEAD)bar, C_UPDATE_ALL);

    /* Draw play pos */
//    BarState.nPos = MPEGInfo.PlayTime;
    if (BarState.nRange)
    {
        play_pos = BarState.nPos * 100 / BarState.nRange;
    }
    OSD_SetRect(&bmp->head.frame, bar->head.frame.uLeft+6 + (bar->head.frame.uWidth-12)*play_pos / 100*OSD_GetProgressBarPos(bar) / 100 - POS_ICON_WIDTH / 2,
                bar->head.frame.uTop, POS_ICON_WIDTH, bar->head.frame.uHeight);
    OSD_SetBitmapContent(bmp, IM_PVR_DOT);
    OSD_DrawObject((POBJECT_HEAD)bmp, C_UPDATE_ALL);

    /* Draw play cursor */
    if (CURSOR_MOVING == BarState.State)
    {
        if (BarState.nRange)
        {
            play_pos = BarState.nCursor * 100 / BarState.nRange;
        }
        OSD_SetRect(&bmp->head.frame, bar->head.frame.uLeft + 6 + (bar->head.frame.uWidth-4)*play_pos / 100*OSD_GetProgressBarPos(bar) / 100 - POS_ICON_WIDTH / 2,
                    bar->head.frame.uTop, POS_ICON_WIDTH, bar->head.frame.uHeight);
        OSD_SetBitmapContent(bmp, IM_PVR_DOT_ORANGE);
        OSD_DrawObject((POBJECT_HEAD)bmp, C_UPDATE_ALL);
    }
}