📄 mmp_show.c
字号:
BOOL flag = TRUE;
GetScanControlState( &scan );
if(notice_type == MMP_NOTICE_PLAY)
{
if(scan.speed != PM_SPEED_X1)
return FALSE;
if(gpstMmp_ctrl->epstBg_play->ecRepeat_ab == REPEAT_SUB_B)
return FALSE;
}
return flag;
}
/******************************************************************************
* Function name : MmpShowNoticeString
* Arguments :
* IN MmpNoticeType_et notice_type, char *string
*
* OUT
* I/O
* Return : VOID
*
* By : Qian liping 060531
* Description :
* Revision : 1.1
******************************************************************************
*/
VOID MmpShowNoticeString(MmpNoticeType_et notice_type, char *string)
{
SetupDisplay_t display;
UCHAR str[MAX_SUPPORT_DYNAMIC_LENGTH];
// Return to normal info2.
if( gOSD_state.etExp_state.etInfo2 != EXPLORER_MODE_INFO2NORMAL )
{
MmpHandleInfo2( 1, TIMER_DISABLE);
MmpShowExploreInfo2(OSD_CTRL_EXPLORE_INFO2NORMAL);
}
//Reset notice timer first.
OsdMmpNoticeTimerSet( 1, TIMER_DISABLE );
//Erase warning icon and reset warn timer. // Qian liping 060920: bug fix 682
if(MIX_GetGraphicEn( SH_CANV2 )==TRUE && gOSD_state.etCur_icon == ICON_WARNING)
{
OsdWarnTimerSet(1, TIMER_DISABLE);
SH_GfxShowCanvas(SH_CANV2,FALSE );
}
#if _APP_CAP_OSD_ENSURE_MESSAGE
if( MIX_GetGraphicEn( SH_CANV2 ) == TRUE && gOSD_state.etCur_icon != ICON_VOLUME )
SH_GfxShowCanvas(SH_CANV2,FALSE );
if( gOSD_state.etCur_icon == ICON_VIDEOMODE_ENSURE || // Qian liping 060808
gOSD_state.etCur_icon == ICON_NP_ENSURE)
{
gOSD_state.etCur_icon = ICON_KEEP ;
}
#endif
if(!MmpShowNoticeDisp(notice_type))
goto JUDGE_ICON_KEEP;
SetupInfoGetMenuDisplay( &display );
SetMmpNoticeType(notice_type);
/* Copy the string for notice text */
switch(notice_type)
{
case MMP_NOTICE_PLAY:
SetMmpNoticeString((char *)gpPlay[MENU_LANG]);
break;
case MMP_NOTICE_PAUSE:
SetMmpNoticeString((char *)gpPause[MENU_LANG]);
break;
case MMP_NOTICE_STOP:
SetMmpNoticeString((char *)gpStop[MENU_LANG]);
break;
case MMP_NOTICE_RESUME_STOP:
SetMmpNoticeString((char *)gpResumestop[MENU_LANG]);
break;
case MMP_NOTICE_SKIP_R:
SetMmpNoticeString((char *)gpSkip[MENU_LANG]);
break;
case MMP_NOTICE_SKIP_F:
SetMmpNoticeString((char *)gpNext[MENU_LANG]);
break;
case MMP_NOTICE_DECODE:
SetMmpNoticeString((char *)gpDecode[MENU_LANG]);
break;
case MMP_NOTICE_NP:
switch (display.tv_system)
{
case SET_COLOR_AUTO:
SetMmpNoticeString("AUTO" );
break;
case SET_COLOR_NTSC:
SetMmpNoticeString( "NTSC" );
break;
case SET_COLOR_PAL:
SetMmpNoticeString( "PAL" );
break;
#if _COP_TV_PAL60
case SET_COLOR_PAL60:
SetMmpNoticeString("PAL60" );
break;
#endif
#if _COP_TV_PALM
case SET_COLOR_PALM:
SetMmpNoticeString("PALM" );
break;
#endif
#if _COP_TV_PALN
case SET_COLOR_PALN:
SetMmpNoticeString("PALN" );
break;
#endif
}
break;
#if _APP_CAP_KEY_USE_VIDEO_OUT_CHANGE
case MMP_NOTICE_VIDEOMODE:
switch(display.vout)
{
#if _COP_VIDEO_SVIDEO
case SET_VOUT_SVIDEO:
SetMmpNoticeString("S-VIDEO" );
break;
#endif
#if _COP_VIDEO_YPBPR
case SET_VOUT_YPBPR:
SetMmpNoticeString("YPbPr" );
break;
#endif
#if _COP_VIDEO_SUB_VGA
case SET_VOUT_VGA:
SetMmpNoticeString("VGA" );
break;
#endif
#if _COP_VIDEO_SUB_RGB
case SET_VOUT_RGB:
SetMmpNoticeString("RGB" );
break;
#endif
#if _COP_VIDEO_SCART
case SET_VOUT_SCART:
SetMmpNoticeString("SCART");
break;
#endif
#if _COP_VIDEO_YUV
case SET_VOUT_YUV:
SetMmpNoticeString("YUV");
break;
#endif
}
break;
#endif/*(_APP_CAP_KEY_USE_VIDEO_OUT_CHANGE*/
#if _APP_CAP_KEY_USE_VIDEO_SCAN_CHANGE
case MMP_NOTICE_VIDEOSCAN:
if( display.scan == SET_SCAN_INT)
{
SetMmpNoticeString((NCHAR*)gDsp_scan[MENU_LANG][0] );
} else {
SetMmpNoticeString((NCHAR*)gDsp_scan[MENU_LANG][1] );
}
break;
#endif /* _APP_CAP_KEY_USE_VIDEO_SCAN_CHANGE */
#if !_APP_CAP_FUNC_MMP_PARSE_ERROR_SKIP
case MMP_NOTICE_INVALID_FILE: //(weilf)20060530
SetMmpNoticeString((NCHAR*)gInvalidFile_string[MENU_LANG] );
break;
#endif
#if _APP_CAP_OSD_MMP_MUTE_IN_FRONT
case MMP_NOTICE_MUTE:
SetMmpNoticeString((NCHAR*)gpMute[MENU_LANG] );
break;
case MMP_NOTICE_MUTEOFF:
sprintf((char*)str, "%s %s" , gpMute[MENU_LANG] , gpOff[MENU_LANG]);
SetMmpNoticeString((NCHAR*)str );
break;
#endif/*_APP_CAP_OSD_MMP_MUTE_IN_FRONT */
case MMP_NOTICE_DEFAULT:
JUDGE_ICON_KEEP:
MmpShowNoticeStringJudge();
break;
default:
SetMmpNoticeString((char *)string);
break;
}
/*Get the Notice Icon */
MmpShowNoticeIcon();
OSD_ChangeExplore(OSD_CTRL_EXPLORE_UPDATE_NOTICE, NULL, SYS_NO_WAIT);
}
#if _APP_CAP_OSD_SUBTITLE_CONCURRENT_DISPLAY //(weilf)20060221
/******************************************************************************
* Function name : MmpClearDivxSubtitle
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return :
* VOID
* By : Weilifeng
* Description :
* Revision :
******************************************************************************
*/
VOID MmpClearDivxSubtitle(VOID)
{
//if(SH_PAR_GetExSubtitleMode()) // cydrain 20060524
{
SCRT_Ex_DisplayOff(); // cydrain 20060531, let OSD don't show subtitle.
SH_GfxShowCanvas(SH_CANV3, FALSE);
gMmpSubtitleShown_flag = FALSE; // cydrain 20060524
}
}
#endif //_APP_CAP_OSD_SUBTITLE_CONCURRENT_DISPLAY
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
/******************************************************************************
* Function name : MmpShowDivxCursorIcon
* Arguments :
* IN
*
* OUT
* I/O
* Return :
*
* By : Weilifeng
* Description :
* Revision :
******************************************************************************
*/
VOID MmpShowVideoCursorIcon(BYTE2 Icon_type)
{
OSD_SetIconDisplay(Icon_type, NULL, SYS_NO_WAIT);
}
#endif//_API_CAP_GLB_MPVD_FRAME_MODE
/******************************************************************************
* Function name : MmpShowUpdateFolderCursor
* Arguments :
* IN
* BYTE2 old_folder_index, BYTE2 new_folder_index
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID MmpShowUpdateFolderCursor(BYTE2 old_folder_index, BYTE2 new_folder_index)
{
OsdCtrl_st ctrl;
ctrl.p.sub.value1 = old_folder_index;
ctrl.p.sub.value2 = new_folder_index;
OSD_ChangeExplore(OSD_CTRL_UPDATE_FOLDER_CURSOR, &ctrl, SYS_WAIT);
}
/******************************************************************************
* Function name : MmpShowUpdateFolderSel
* Arguments :
* IN
* BYTE2 new_folder_index
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID MmpShowUpdateFolderSel(BYTE2 old_folder_index, BYTE2 new_folder_index)
{
OsdCtrl_st ctrl;
ctrl.p.sub.value1 = old_folder_index;
ctrl.p.sub.value2 = new_folder_index;
OSD_ChangeExplore(OSD_CTRL_UPDATE_FOLDER_SEL, &ctrl, SYS_WAIT);
}
/******************************************************************************
* Function name : MmpShowUpdateTypeSelect
* Arguments :
* IN
* MmpFileType_et old_type, MmpFileType_et new_type
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID MmpShowUpdateTypeSelect(MmpFileType_et old_type, MmpFileType_et new_type)
{
#if _APP_CAP_FUNC_JPEG_PLAY
OsdCtrl_st ctrl;
ctrl.p.sub.value1 = old_type;
ctrl.p.sub.value2 = new_type;
OSD_ChangeExplore(OSD_CTRL_UPDATE_TYPE_SEL, &ctrl, SYS_WAIT);
#endif /* _APP_CAP_FUNC_JPEG_PLAY */
}
/******************************************************************************
* Function name : MmpShowNotAvail
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID MmpShowNotAvail(VOID)
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
}
/******************************************************************************
* Function name : MmpClearOsd
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID MmpClearOsd(VOID)
{
OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT);
}
/******************************************************************************
* Function name : MmpShowUpdateTime
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
VOID MmpShowUpdateTime(VOID)
{
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE // cydrain 20060117
OSD_State_st *osd_state = OSD_GetState();
#endif
if(GetMmpFileType()== MMP_AUDIO_FILE ||
(GetMmpFileType()==MMP_VIDEO_FILE && osd_state->etCur_dsp == DISPLAY_EXPLORER)
&&GetMainState()!= MAIN_STOP) //azureming@060406//(weilf)20060724:fix 568
OSD_ChangeExplore(OSD_CTRL_UPDATE_TIME, NULL, SYS_NO_WAIT);
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE //gaoping 20060103
else if((GetMmpFileType()== MMP_VIDEO_FILE) && (osd_state->etCur_dsp == DISPLAY_INFO) &&
(((osd_state->etInfo_dsp == INFO_FIRST) && (osd_state->etInfo_sub != INFO_SUB_VTIME))
#if _APP_CAP_FUNC_REMAIN_TIME
|| osd_state->etInfo_dsp == INFO_THIRD
#endif
)) // cydrain 20060120
{
OsdCtrl_st ctrl;
ctrl.p.time.hour = gpstMmp_ctrl->estPb_time.hour;
ctrl.p.time.min = gpstMmp_ctrl->estPb_time.min;
ctrl.p.time.sec = gpstMmp_ctrl->estPb_time.sec;
OSD_TimerUpdate(OSD_CTRL_UPDATE_TIME, &ctrl, SYS_NO_WAIT);
}
#endif
// SysPrintf("\n\n\t *** UPDATE_TIME msg send! \n");
}
VOID MmpShowSmiTitle(BOOL IsExSubtitle)
{
#if _APP_CAP_MMP_SUPPORT_EXT_SUBTITLE
if(IsExSubtitle==TRUE && dispGetPlayState() == PLAY_NORMAL) //problem 392:exsubtitle update must wait until video stable
{
OSD_ChangeDisplay(OSD_CTRL_UPDATE_SMI_SCRIPT, NULL, SYS_NO_WAIT); //(weilf)20060408
}
#endif
}
/******************************************************************************
* Function name : MmpShowFileInfo
* Arguments :
* IN
* VOID
* OUT
* I/O
* Return :
* VOID
* By : azureming@060530
* Description : update file info when loading video file.
* Revision :
******************************************************************************
*/
VOID MmpShowFileInfo(VOID)
{
/*this function is kept for spec. adjustment. it can display some
file info during loading process(parse video file header)...
*/
#if 0
OSD_State_st *osd_state;
osd_state = OSD_GetState();
if(osd_state->etCur_dsp == DISPLAY_INFO && osd_state->etInfo_dsp == INFO_FIRST)
OSD_ChangeDisplay(OSD_CTRL_UPDATE_INFO, NULL, SYS_NO_WAIT);
else
{
OSD_SetMainDisplay(DISPLAY_OFF, SYS_NO_WAIT);
OSD_SetMainDisplay(DISPLAY_INFO, SYS_NO_WAIT);
}
#endif
}
/******************************************************************************
* Function name : MmpShowAlbum
* Arguments :
* IN
* BYTE2 select, BYTE1 first_draw
* OUT
* I/O
* Return :
* VOID
* By : Kim Do Yeon
* Description :
* Revision :
******************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -