📄 osd_draw.c
字号:
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 + -