📄 osd_draw.c
字号:
}
/******************************************************************************
* Function name : SetDvdvInfoSubtitleString
* Arguments :
* IN
* STR_ID str_id
* OUT
* I/O
* Return : VOID
*
* By : Qian liping
* Description : Set Subtitle string according to param.
* Revision : 1.0
******************************************************************************
*/
VOID SetDvdvInfoSubtitleString( CHAR *string )
{
DvdvSubtitleInfo_t subtitle;
if( GetDvdvSubtitleAttribute( &subtitle ) == FALSE )
{
sprintf( (CHAR *)string, gToggle_mode[MENU_LANG][TOGGLE_OFF] );
}
else
{
if( subtitle.onoff == TOGGLE_OFF )
{
sprintf( (CHAR *)string,gToggle_mode[MENU_LANG][TOGGLE_OFF]);
}
else
{
sprintf( (CHAR *)string, "%d/%d %-s ", subtitle.cur_id+1,
#ifdef _DVD_NUM_AVAIL_STREAM
subtitle.avail_num,
#else
subtitle.total_num,
#endif
GetLanguageCodeString(subtitle.sp_code_1st,subtitle.sp_code_2nd,NULL));
}
}
}
/******************************************************************************
* Function name : SetDvdvInfoAngleString
* Arguments :
* IN
* STR_ID str_id
* OUT
* I/O
* Return : VOID
*
* By : Qian liping
* Description : Set Angle string according to param.
* Revision : 1.0
******************************************************************************
*/
VOID SetDvdvInfoAngleString( CHAR *string )
{
DvdvAngleInfo_t angle;
if( GetDvdvAngleAttribute( &angle ) == FALSE )
{
sprintf((CHAR *)string, "****" );
}
else
{
sprintf( (CHAR *)string,"%d/%d", angle.cur_num, angle.total_num );
}
}
/******************************************************************************
* Function name : SetDvdvInfoPlayModeIcon
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return : VOID
*
* By : KIM DO YEON
* Description : Set PlayMode icon in designate window.
* Revision : 1.0
******************************************************************************
*/
Gfx_imge_et SetDvdvInfoPlayModeIcon(VOID)
{
Gfx_imge_et mode;
switch( GetDvdvPlayMode())
{
case DVD_PB_NORMAL:
mode = IMG_MODE_NRM;
break;
case DVD_PB_RANDOM:
mode = IMG_MODE_RAN;
break;
case DVD_PB_PROGRAM:
mode= IMG_MODE_PGM;
break;
}
return mode;
}
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE // cydrain 20060116
/******************************************************************************
* Function name : SetDivxInfoAudioString
* Arguments :
* IN
* CHAR *string
* OUT
* I/O
* Return : VOID
*
* By : cydrain
* Description : Set Audio string (&coding mode icon) according to param.
* Revision : 1.0
******************************************************************************
*/
VOID SetDivxInfoAudioString(CHAR *string)
{
MediaInfo_t media;
CHAR* pszAudio;
GetMediaInfoState(&media);
#if _USE_5010 || _USE_5009
/* Get current audio stream information */
#if _APP_CAP_FUNC_MMP_MPG_TRICK_PLAY //temp to support mpg audio change azureming@060314
if(iPAR_GetMode() != PAR_MODE_AVI && iPAR_GetMode() != PAR_MODE_ASF)
media.divx.audio_current_track = gMain_state.media.divx.audio_current_track;
else
#endif
media.divx.audio_current_track = iPAR_GetAviAudioCurStreamNo();
SetMediaInfoState(media);
#endif
switch(media.divx.audio_codec_type[media.divx.audio_current_track-1])
{
case AUDIO_DIVX_WMA:
pszAudio = (CHAR*)"WMA";
break;
case AUDIO_DIVX_ADPCM:
pszAudio = (CHAR*)"ADPCM";
break;
case AUDIO_DIVX_PCM:
pszAudio = (CHAR*)"PCM";
break;
case AUDIO_DIVX_MP3:
pszAudio = (CHAR*)"MP3";
break;
case AUDIO_DIVX_MPA:
pszAudio = (CHAR*)"MPA";
break;
case AUDIO_DIVX_AC3:
pszAudio = (CHAR*)"AC3";
break;
case AUDIO_DIVX_DTS:
pszAudio = (CHAR*)"DTS";
break;
case AUDIO_DIVX_OGG:
pszAudio = (CHAR*)"OGG";
break;
case AUDIO_VCD_MPEG1: //azureming@060403
pszAudio = (CHAR*)"MPG";
break;
default:
pszAudio = (CHAR*)"***";
break;
}
sprintf((CHAR *)string, "%s %2d/%2d",
pszAudio,
media.divx.audio_current_track,
media.divx.audio_track_number);
}
/******************************************************************************
* Function name : SetDivxInfoSubtitleString
* Arguments :
* IN
* CHAR *string
* OUT
* I/O
* Return : VOID
*
* By : cydrain
* Description : Set Subtitle string according to param.
* Revision : 1.0
******************************************************************************
*/
#if 0//_APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE // cydrain 20060814, no use.
extern _VOB_Lang_filepos_st gVobLangFilepos[20];
#endif
VOID SetDivxInfoSubtitleString(CHAR *string)
{
MediaInfo_t media;
#if _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE //(weilf)20060726
CHAR country_name[5];
#endif
GetMediaInfoState(&media);
#if _APP_CAP_MMP_SUPPORT_EXT_SUBTITLE // cydrain 20060222
#if _APP_CAP_MMP_SUPPORT_MUL_EXT_SUBTITLE // cydrain 20060418
#if _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE // cydrain 20060424
if(media.divx.subtitle_cur_number_vobsub > 0)
{
sprintf((CHAR *)string, "%02d/%02d", media.divx.subtitle_cur_number_vobsub, (media.divx.subtitle_number+media.divx.subtitle_number_ext+media.divx.subtitle_number_vobsub));
//strncpy(country_name, gVobLangFilepos[media.divx.subtitle_cur_number_vobsub-1].Lang, 3);
strncpy(country_name, gVOBSUB_Ctrl->lang_pos[media.divx.subtitle_cur_number_vobsub-1].lang, 3); // cydrain 20060714, no use.
country_name[3] = '\0';
_FS_upper(country_name);
strcat(string, " ");
strcat(string, country_name);
}
else if(media.divx.subtitle_cur_number_ext > 0)
sprintf((CHAR *)string, "%02d/%02d", (media.divx.subtitle_cur_number_ext + media.divx.subtitle_number_vobsub), (media.divx.subtitle_number+media.divx.subtitle_number_ext+media.divx.subtitle_number_vobsub));
else if(media.divx.subtitle_cur_number > 0)
sprintf((CHAR *)string, "%02d/%02d", (media.divx.subtitle_cur_number+media.divx.subtitle_number_ext+media.divx.subtitle_number_vobsub), (media.divx.subtitle_number+media.divx.subtitle_number_ext+media.divx.subtitle_number_vobsub));
else
sprintf((CHAR *)string, "%s", gToggle_mode[MENU_LANG][0]);
#else /* _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE */
if (media.divx.subtitle_on == FALSE && media.divx.subtitle_SMI == FALSE)
sprintf((CHAR *)string, "%s", gToggle_mode[MENU_LANG][0]);
else if(media.divx.subtitle_SMI == TRUE)
sprintf((CHAR *)string, "%02d/%02d", media.divx.subtitle_cur_number_ext, (media.divx.subtitle_number+media.divx.subtitle_number_ext));
else
sprintf((CHAR *)string, "%02d/%02d", (media.divx.subtitle_cur_number+media.divx.subtitle_number_ext), (media.divx.subtitle_number+media.divx.subtitle_number_ext));
#endif /* _APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE */
#else /* _APP_CAP_MMP_SUPPORT_MUL_EXT_SUBTITLE */
if (media.divx.subtitle_on == FALSE || (media.divx.subtitle_number == 0 && media.divx.subtitle_SMI == FALSE))
sprintf((CHAR *)string, "%s", gToggle_mode[MENU_LANG][0]);
else if(media.divx.subtitle_SMI == TRUE)
sprintf((CHAR *)string, "%02d/%02d", (media.divx.subtitle_cur_number+1), (media.divx.subtitle_number+1));
else
sprintf((CHAR *)string, "%02d/%02d", media.divx.subtitle_cur_number, media.divx.subtitle_number);
#endif /* _APP_CAP_MMP_SUPPORT_MUL_EXT_SUBTITLE */
#else
if (media.divx.subtitle_number == 0 || media.divx.subtitle_on == FALSE) // cydrain 20051230
sprintf((CHAR *)string, "%s", gToggle_mode[MENU_LANG][0]);
else
sprintf((CHAR *)string, "%02d/%02d", media.divx.subtitle_cur_number, media.divx.subtitle_number);
#endif
}
/******************************************************************************
* Function name : SetDivxInfoPlayModeIcon
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return : Gfx_imge_et
*
* By : cydrain
* Description : Set PlayMode icon in designate window.
* Revision : 1.0
******************************************************************************
*/
Gfx_imge_et SetDivxInfoPlayModeIcon(VOID)
{
Gfx_imge_et mode;
switch(GetMmpPlayMode())
{
case PARAM_PB_NORMAL:
mode = IMG_MODE_NRM;
break;
case PARAM_PB_RANDOM:
mode = IMG_MODE_RAN;
break;
case PARAM_PB_PROGRAM:
mode = IMG_MODE_PGM;
break;
}
return mode;
}
#endif
/******************************************************************************
* Function name : SetXvcdInfoRepeatStringNew
* Arguments :
* IN
* char * string, RepeatSub_et repeat
* OUT
* I/O
* Return : VOID
*
* By : Qian liping 060412
* Description : Set repeat string according to param.
* Revision : 1.0
******************************************************************************
*/
VOID SetXvcdInfoRepeatStringNew( char * string, RepeatSub_et repeat )
{
switch( repeat )
{
case REPEAT_SUB_NONE:
strcpy((char *)string, (char*)gToggle_mode[MENU_LANG][0]);
break;
case REPEAT_SUB_DISC:
strcpy((char *)string, (char*)gpDisc[MENU_LANG]);
break;
case REPEAT_SUB_TITLE:
strcpy((char *)string, (char*)gpTrack[MENU_LANG]);
break;
case REPEAT_SUB_A:
strcpy((char *)string, "A-");
break;
case REPEAT_SUB_B:
strcpy((char *)string, "A-B");
break;
}
}
/******************************************************************************
* Function name : SetXvcdInfoPlayModeIcon
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return : Gfx_imge_et
*
* By : Qian liping
* Description : Set PlayMode icon in designate window.
* Revision : 1.0
******************************************************************************
*/
#if _APP_CAP_FUNC_SVCD_PROGRAM_MODE
Gfx_imge_et SetXvcdInfoPlayModeIcon(VOID)
{
Gfx_imge_et mode;
#if _APP_CAP_FUNC_VCD_INTRO_SCAN
if(IsCdIntroMode())
mode = IMG_MODE_INTRO;
else
#endif
switch( GetVcdPlayMode())
{
case PARAM_PB_NORMAL:
mode = IMG_MODE_NRM;
break;
case PARAM_PB_RANDOM:
mode = IMG_MODE_RAN;
break;
case PARAM_PB_PROGRAM:
mode= IMG_MODE_PGM;
break;
}
return mode;
}
#endif
/******************************************************************************
* Function name : SetXvcdInfoAudioIcon
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return : Gfx_imge_et
*
* By : KIM DO YEON
* Description : Set Audio icon in desingate.
* Revision : 1.0
******************************************************************************
*/
Gfx_imge_et SetXvcdInfoAudioIcon(VOID)
{
S5H_Lrstereo_et audio;
Gfx_imge_et image_id;
GetLrstereoState( &audio );
switch( audio )
{
case LRSTEREO_STEREO:
image_id= IMG_AUD_STR;
break;
case LRSTEREO_LEFT:
image_id = IMG_AUD_LT;
break;
case LRSTEREO_RIGHT:
image_id = IMG_AUD_RT;
break;
case LRSTEREO_AUTO_LT:
image_id = IMG_KARA_LT;
break;
case LRSTEREO_AUTO_RT:
image_id = IMG_KARA_RT;
break;
}
return image_id;
}
/******************************************************************************
* Function name : OwTimeInfoDisplay
* Arguments :
* IN
* BOOL partial_draw
* OUT
* I/O
* Return : VOID
*
* By : Chang lina
* Description : DVD/MMN Video info 3,4 display and time update;
VCD info2,3 display and time update
* Revision : 1.0
******************************************************************************
*/
NCHAR gPre_elap_str[MAX_SUPPORT_DYNAMIC_LENGTH];
NCHAR gPre_rem_str[MAX_SUPPORT_DYNAMIC_LENGTH];
VOID OwTimeInfoDisplay( BOOL partial_draw )
{
#if _APP_CAP_FUNC_REMAIN_TIME
BYTE1 cur_hr, cur_min, cur_sec,
rem_hr, rem_min, rem_sec,
tot_hr, tot_min, tot_sec;
UINT cur_time, rem_time, total_time,
ch_start_time, ch_end_time;
PlaybackTime_t pCur_pb_time, pTotal_pb_time,
pCh_start_pb_time, pCh_end_pb_time;
NCHAR time_info[15],elapsed_time[15],remain_time[15];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -