⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osd_draw.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
				if( mmp_search_value.folder_search!= 0)	
				{
					sprintf((CHAR *)str_title,	 "%02d/%02d ", mmp_search_value.folder_search , mmp.total_folder);
					if( !MmpGetCurFileName(NULL, MMP_NO_SELECTION))// (weilf 060710)While change folder, there is not set the chapter, show "000/000"
						//sprintf( (CHAR *)str_chapter, "%03d/%03d ",0,0);
						sprintf( (CHAR *)str_chapter, "%04d/%04d ",0,0);
					else
						//sprintf( (CHAR *)str_chapter, "%03d/%03d ",mmp_search_value.file_search , mmp.total_file );
						sprintf( (CHAR *)str_chapter, "%04d/%04d ",mmp_search_value.file_search , mmp.total_file );
				}
				else
				{
					sprintf((CHAR *)str_title,	 "%02d/%02d ", mmp.cur_folder, mmp.total_folder);
					//sprintf( (CHAR *)str_chapter, "%03d/%03d ", mmp.cur_file, mmp.total_file );
					sprintf( (CHAR *)str_chapter, "%04d/%04d ", mmp.cur_file, mmp.total_file );
				}
				
				
				if( GetTempValueSetFlag()!= TRUE )
				{	// Restore current time
					if(GetMmpStopMode() == MMP_FULL_STOP)
					{	/*  in full stop, show 0:00:00. */
						sprintf((CHAR *)str_time, "%d:%02d:%02d", 0, 0, 0);					
					}else
					{
						CHAR time_info_str[20], time_remain_str[20];
						MmpGetCurTimeStr((char *)time_info_str,(char *)time_remain_str);
						strcpy((char *)str_time, time_info_str);
					}
				}/* if( GetTempValueSetFlag()!= TRUE )*/
			}else
#endif
			{
				if( search_value.title_search != 0 )	
				{
					sprintf( (CHAR *)str_title, "%02d/%02d", search_value.title_search,dvdv.total_title );

					GetDvdTtInfo(search_value.title_search, &pttn);	
					sprintf((CHAR *)str_chapter, "%03d/%03d", search_value.chapter_search, pttn);
				}
				else
				{
					sprintf((CHAR *)str_title, "%02d/%02d",dvdv.cur_title, dvdv.total_title );
					sprintf((CHAR *)str_chapter, "%03d/%03d", dvdv.cur_chapter, dvdv.total_chapter);
				}	

				if( GetTempValueSetFlag()!= TRUE )
				{	// Restore current time
					if(IsDvdFullStopMode())
					{/*  in full stop, show 0:00:00. */
						sprintf((CHAR *)str_time, "%d:%02d:%02d", 0, 0, 0);					
					}else
					{
						BYTE1	hour, min, sec;
						GetDvdvPbTime( &hour, &min, &sec);
						sprintf((char *)str_time,"%d:%02d:%02d", hour, min, sec);
					}
				}/* if( GetTempValueSetFlag()!= TRUE )*/
			}
			break; /*INFO_SUB_VTIME */
	}
}
 /******************************************************************************
 * Function name	: OwGetVCDSearchValue 
 *
 * Arguments		:  OSD_InfoSubState_et infosub
 *     IN        	   UCHAR *str_title, UCHAR *str_chapter, UCHAR *str_time
 *
 * Return			: VOID
 *			
 * By				: Qian liping
 * Description		: 
 * Revision			: 1.0 060525
 ******************************************************************************
 */ 
VOID OwGetVCDSearchValue( OSD_InfoSubState_et infosub, UCHAR *str_track,  UCHAR *str_time)
{
	MediaInfo_t		media;
	//UCHAR           track_set;
	BYTE1			hour, min, sec;
	XVCDSearch_t    	track_value;
	TempKeeper_t	 	data;
	
	GetSvcdVideoInfo( &(media.xvcd) );
	GetXvcdSearchValue(&track_value);
	

	

	strcpy((char *)str_time, "");
	strcpy((char *)str_track, "");

	switch( infosub )
	{
		case INFO_SUB_CTRACK:
			if( track_value.track_search == 0 )
			{
				sprintf((CHAR *)str_track, "--/%02d",media.xvcd.total_track);
			}	
			else
			{
				sprintf((CHAR *)str_track, "%02d/%02d",track_value.track_search, media.xvcd.total_track);
			}	
			break;
			
		case INFO_SUB_CTIME:
			if( GetTempValueSetFlag()== TRUE )
			{	// Get search time 
				GetTempValueState( &data );
				GetTimeString(&data, (CHAR *)str_time);	
			}
			else 
			{
				if(IsSvcdFullStopMode())
				{
					media.xvcd.cur_track = 0;
				}	
#if _APP_CAP_FUNC_REMAIN_TIME	
				GetSvcdPbTime( &hour, &min, &sec);
#endif
				sprintf((CHAR *)str_time,"%d:%02d:%02d", hour, min, sec);
			}
			
			break;
			
		case INFO_SUB_NONE:
			if( track_value.track_search != 0 )
			{
				sprintf( (CHAR *)str_track, "%02d/%02d ", track_value.track_search, media.xvcd.total_track);
			}else
			{
				if(IsSvcdFullStopMode())
				{
					media.xvcd.cur_track = 0;
				}	
		
				sprintf( (CHAR *)str_track, "%02d/%02d ", media.xvcd.cur_track, media.xvcd.total_track);
			}
			
			if( GetTempValueSetFlag()!= TRUE )
			{	// Restore current time
#if _APP_CAP_FUNC_REMAIN_TIME	
				if(IsSvcdFullStopMode()) // Qian liping 060925: make sure to show the total time in full stop.
					GetSvcdTotalPbTime( &hour, &min, &sec);
				else
					GetSvcdPbTime( &hour, &min, &sec);
#endif
				sprintf((CHAR *)str_time,"%d:%02d:%02d", hour, min, sec);
			}
			
			break;
		
		}
}
 /******************************************************************************
 * Function name	: OwSearchBarDisplay 
 * Arguments		:  
 *     IN        
 *					 OSD_InfoSubState_et infosub 
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By				: Qian liping
 * Description		: 
 * Revision			: 1.2 060525
 ******************************************************************************
 */   
VOID OwSearchBarDisplay( OSD_InfoSubState_et infosub ) 
{
	UCHAR		string_title[MAX_SUPPORT_DYNAMIC_LENGTH]; 
	UCHAR		string_chapter[MAX_SUPPORT_DYNAMIC_LENGTH];
	UCHAR 	 	string_time[MAX_SUPPORT_DYNAMIC_LENGTH];
	BYTE2 		chapter_w;
	
	switch(GetDiscState())	
	{
		case DVDV_DISC:
		case DVDA_DISC:
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE	
		case CD_DATA:
		case DVD_DATA:
		case USB_DATA:
		case FX_DATA:
#endif
			OwGetDVDSearchValue( infosub ,string_title, string_chapter,string_time);
		
			/* Redraw title*/
			if( string_title[0]!= '\0' )
			{
				SH_GfxDrawRec(SH_CANV1,	50+INFO_ICON_W, 		5,	115-33,			40-5*2,	COLOR_TRANS_BLUE);  
				SH_GfxDrawStr(SH_CANV1,(CHAR *)string_title, 	50+INFO_ICON_W, 		5, NULL);        	
			}

			if( S5H_GetAppType() == APP_MMN )// Qian liping 060921
				chapter_w = INFO_DIVX_CHP_W;
			else
				chapter_w = INFO_DVD_CHP_W;
			
			/* Redraw chapter*/
			if( string_chapter[0]!= '\0' )
			{
				SH_GfxDrawRec(SH_CANV1,	50+INFO_DVD_TITLE_W+INFO_ICON_W,	5,	chapter_w-33, 	40-5*2,	COLOR_TRANS_BLUE);  	
				SH_GfxDrawStr(SH_CANV1,(CHAR *)string_chapter, 	50+INFO_DVD_TITLE_W+INFO_ICON_W, 	5, NULL);  		
			}

			/* Redraw time */
			if( string_time[0]!= '\0' )
			{
				SH_GfxDrawRec(SH_CANV1, 50+INFO_DVD_TITLE_W+chapter_w+INFO_ICON_W, 		INFO_BKG_GAP, 		INFO_DVD_TIME_W-INFO_ICON_W,     INFO_OSD_H-2*INFO_BKG_GAP,   COLOR_TRANS_BLUE);
				SH_GfxDrawStr(SH_CANV1,	(CHAR *)string_time, 50+INFO_DVD_TITLE_W+chapter_w+INFO_ICON_W,   INFO_STR_START_Y,  NULL); 
				strcpy((char*)gPreTimeString,(char*)string_time);	
			}
			break;
			

		case VCD_DISC:	
		case SVCD_DISC:
		case CD_I:
		case CD_DA:
		case HQVCD_DISC:
			OwGetVCDSearchValue( infosub ,string_title,string_time);
	
			/* Redraw title*/
			if( string_title[0]!= '\0' )
			{
				SH_GfxDrawRec(SH_CANV1,	INFO_OSD_RELATIVE_ICON_X+33,		5,	115 - 33 ,			40-5*2,	COLOR_TRANS_BLUE);  
				SH_GfxDrawStr(SH_CANV1,(CHAR *)string_title, INFO_OSD_RELATIVE_ICON_X+33, 		5, NULL);        		/*title*/
			}
			
			/* Redraw time */
			if( string_time[0]!= '\0' )
			{
				SH_GfxDrawRec(SH_CANV1,	INFO_OSD_RELATIVE_ICON_X+INFO_VCD_TRK_W+33,	5,	 150 - 33 , 	40-5*2,	COLOR_TRANS_BLUE);  	
				SH_GfxDrawStr(SH_CANV1,(CHAR *)string_time, INFO_OSD_RELATIVE_ICON_X+INFO_VCD_TRK_W+33, 	5, NULL);  	
				strcpy((char*)gPreTimeString,(char*)string_time);	
			}
			
			break;

		default:
			break;
	}
}

/******************************************************************************
 * Function name  : OwDVDInfoDisplayChange 
 * Arguments      :  
 *     IN        VOID
 *			
 *     OUT       
 *     I/O       
 * Return         :  
 *			VOID
 * By             : Qian liping 
 * Description    :  
 * Revision       : v1.0 060525
 ******************************************************************************
 */
VOID OwDVDInfoDisplayChange( void )
{
	BYTE1		icon_dolby;
	CHAR		string[MAX_SUPPORT_DYNAMIC_LENGTH];
	CHAR		string_repeat[MAX_SUPPORT_DYNAMIC_LENGTH];
	BYTE2		chapter_w;
	
	RepeatSub_et		repeat;


	SysPrintf("\n[OSD]INFO Value change ");

	if( gOSD_state.etInfo_dsp == INFO_FIRST )
	{
		/* Title / Chapter /Time  update */
		if( gOSD_state.etInfo_sub == INFO_SUB_TITLE )
		{
			/* Display the changed title value */
			OwSearchBarDisplay( INFO_SUB_TITLE );
			OwGfxSelectDvdvInfoDisplaySub( INFO_SUB_TITLE , INFO_SUB_TITLE );
		}
		else if( gOSD_state.etInfo_sub == INFO_SUB_CHAPTER )
		{			
			OwSearchBarDisplay( INFO_SUB_CHAPTER );
			OwGfxSelectDvdvInfoDisplaySub( INFO_SUB_CHAPTER , INFO_SUB_CHAPTER );
		}
		else if( gOSD_state.etInfo_sub == INFO_SUB_VTIME )
		{
			OwSearchBarDisplay( INFO_SUB_VTIME );
			OwGfxSelectDvdvInfoDisplaySub( NULL , INFO_SUB_VTIME );
		}else 
		{ 
			OwSearchBarDisplay( INFO_SUB_NONE);
		}
	

		/* Update repeat state */
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
		if(S5H_GetAppType() == APP_MMN)
		{
			repeat = GetMmpRepeatMode(TRUE);	
			if( repeat != REPEAT_SUB_NONE )
			{
				SetDivxInfoRepeatStringNew( (CHAR *)string_repeat, repeat );
			}	
			else
			{
				SetDivxInfoRepeatStringNew( (CHAR *)string_repeat, GetMmpRepeatMode(FALSE) );
			}
	   	}
		else
#endif
		{
			repeat = GetDvdvRepeatABState();
			if( repeat!=REPEAT_SUB_NONE )
			{
				SetDvdvInfoRepeatStringNew( (CHAR *)string_repeat, repeat );				
			}	
			else
			{
				SetDvdvInfoRepeatStringNew( (CHAR *)string_repeat, GetDvdvRepeatState() );
			}
		}
		// Adjust the repeat info position. // Qian liping 060921
		if( S5H_GetAppType() == APP_MMN )
			chapter_w = INFO_DIVX_CHP_W ;
		else
			chapter_w = INFO_DVD_CHP_W ;
		
		SH_GfxDrawRec(SH_CANV1, 
						50+INFO_DVD_TITLE_W+chapter_w+INFO_DVD_TIME_W+INFO_ICON_W, 		
						INFO_BKG_GAP, 		
						(INFO_OSD_W-3*2)-(50+ INFO_DVD_TITLE_W+chapter_w+INFO_DVD_TIME_W+INFO_ICON_W), 
						INFO_OSD_H-2*INFO_BKG_GAP,
						COLOR_TRANS_BLUE);
		SH_GfxDrawStr(SH_CANV1,	
						(CHAR *)string_repeat, 
						50+INFO_DVD_TITLE_W+chapter_w+INFO_DVD_TIME_W+INFO_ICON_W,    
						INFO_STR_START_Y, 
						NULL); 		/*repeat*/

	}
#if _APP_CAP_FUNC_REMAIN_TIME
	else	 if( gOSD_state.etInfo_dsp == INFO_SECOND )
#else
	else		/* gOSD_state.etInfo_dsp == INFO_DVD_SECOND */			
#endif							
	{
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE	
		if(S5H_GetAppType() == APP_MMN)
		{
			/* Audio Info */
			SetDivxInfoAudioString((CHAR *)string);
			SH_GfxDrawRec(SH_CANV1, 50+33, INFO_BKG_GAP, 185-33, INFO_OSD_H-2*INFO_BKG_GAP, COLOR_TRANS_BLUE);	
			SH_GfxDrawStr(SH_CANV1,  (CHAR *)string, 50+33, 	5, NULL); 
			
			/* Subtitle Info */
			SetDivxInfoSubtitleString((CHAR *)string);
			SH_GfxDrawRec(SH_CANV1, 50+185+33, INFO_BKG_GAP, 170-33, INFO_OSD_H-2*INFO_BKG_GAP, COLOR_TRANS_BLUE);	
			SH_GfxDrawStr(SH_CANV1,   (CHAR *)string, 50+185+33, 5, NULL);  

			/* Screen Size Info */
			if(iPAR_GetMode() == PAR_MODE_MPG_PS ||iPAR_GetMode() == PAR_MODE_MPG_ES) //mpg file 
		 	{
				SH_SeqInfo_t seq_info;
				SH_PM_GetSeqInfo( &seq_info);
				sprintf( (CHAR *)string, "%03d X %03d", seq_info.hor_size, seq_info.vert_size);
			} 
			else //avi file
			{
				MediaInfo_t		media;
				GetMediaInfoState(&media);
				sprintf( (CHAR *)string, "%03d X %03d", media.divx.width, media.divx.height);
            }
			SH_GfxDrawRec(SH_CANV1, 50+185+170+33, INFO_BKG_GAP, 170-33, INFO_OSD_H-2*INFO_BKG_GAP, COLOR_TRANS_BLUE);	
			SH_GfxDrawStr(SH_CANV1,   (CHAR *)string, 50+185+170+33, 5, NULL);
			
			//Play mode Info
			SH_GfxDrawImage(SH_CANV1,	SetDivxInfoPlayModeIcon(),		50+185+170+165,		5);           
		}
		else
#endif
		{
#if _APP_CAP_NAV_DVD_VIDEO
			// Audio stream 
			SH_GfxDrawRec(SH_CANV1,	55+33,			5,	(50+(255+18)-55)-(33+55), 	40-5*2,	COLOR_TRANS_BLUE); 	   //audio text clear
			SetDvdvInfoAudioString( (CHAR *)string, &icon_dolby );
			SH_GfxDrawStr(SH_CANV1,  (CHAR *)string, 55+33, 	5, NULL);   

#endif
			// Dolby Info
			SH_GfxDrawImage(SH_CANV1,		icon_dolby,		       50+(255+18)-55,  		      	11);
#if _APP_CAP_NAV_DVD_VIDEO
			// Subtitle stream
			SH_GfxDrawRec(SH_CANV1,	50+(255+18)+33,			5,	(145-5)-33,  40-5*2,	COLOR_TRANS_BLUE); 	   //language text clear
			SetDvdvInfoSubtitleString( (char *)string);			
			SH_GfxDrawStr(SH_CANV1,  (char *)string, 50+(255+18)+33, 5, NULL);               //LANGUAGE
#endif	/* _APP_CAP_NAV_DVD_VIDEO */
			// Angle Mode			
			SH_GfxDrawRec(SH_CANV1,	50+(255+18)+(145-5)+33,	5,	70+30 , 		40-5*2,	COLOR_TRANS_BLUE); 	   //angle text clear 
			SetDvdvInfoAngleString( (CHAR *)string );
			SH_GfxDrawStr(SH_CANV1,  (CHAR *)string, 50+(255+18)+(145-5)+33, 5, NULL);  //MOVE ANGLE
			// Playmode
			SH_GfxDrawImage(SH_CANV1,	SetDvdvInfoPlayModeIcon(),	50+(255+18)+(145-5)+33+70,			 5);           //IMG_MODE_NRM/RAN/PGM
		}
	}
}
 /******************************************************************************
 * Function name	: OwGraphicChangeValueLineDvdv 
 * Arguments		:  
 *     IN        
 *					 VOID
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: KIM DO YEON
 * Description		: To Change only value display 
 * Revision		: 1.0
 ******************************************************************************
 */   

VOID OwGraphicChangeValueLineDvdv( VOID )
{
	/*
	 * Check current main state and sub-menu state to find
	 * which line to be changed in this step.
	 */
	switch( GetDisplayMainState())
	{
		case DISPLAY_AUDIO:
#if _APP_CAP_NAV_DVD_VIDEO
			OwAudioBanner(TRUE);		//cydrain 20060404
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY	
			OsdTimerSet(OSD_TIME_FOR_3D, TIMER_ENABLE );
#endif
#endif			
			break;


		case DISPLAY_STEREO:
#if _APP_CAP_NAV_DVD_VIDEO
			OwDvdLRStereoBanner(TRUE);		
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY	
			Os

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -