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

📄 osd_handler_com.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
					(NCHAR*)gMenu_string[MENU_LANG][menu_state] );
			break;
		default:
			GraphicMessageOn(NOTICE_TYPE_DEFAULT, "VIDEO-CD 1.1", 
					(NCHAR*)gMenu_string[MENU_LANG][menu_state] );
			break;
	}

	/* Reset OSD timer */
	OsdTimerSet( OSD_TIME_FOR_DISC_TYPE, TIMER_ENABLE );	
}

STATIC VOID OsdHandleDisplayCd( VOID )
{			
	GraphicMessageOn(NOTICE_TYPE_DEFAULT, "CD", NULL );

	/* Reset OSD timer */
	OsdTimerSet( OSD_TIME_FOR_DISC_TYPE, TIMER_ENABLE );
}

STATIC VOID OsdHandleDisplayMp3( VOID )
{
	GraphicMessageOn(NOTICE_TYPE_DEFAULT, "MP3", NULL );
	
	/* Reset OSD timer */
	OsdTimerSet( OSD_TIME_FOR_DISC_TYPE, TIMER_ENABLE );
}

/******************************************************************************
 *  Function name : GraphicDisplayInfoOn
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Make a graphics for DISPLAY and Pop-up it
 ******************************************************************************
 */// Qian liping 060116
STATIC VOID GraphicDisplayInfoOn( VOID )
{
	SysPrintf("\n[GFX] ON DISPLAY ");

	gOSD_state.etInfo_sub = INFO_SUB_NONE;
	
	/* Check disc and open its routine */
	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
			switch(gOSD_state.etInfo_dsp)
			{
				case INFO_FIRST:
					OwCreateFirstDVDInfoDisplay();
#if _APP_CAP_OSD_INFO_OSD_KEEP
					gRedraw_flag = TRUE ;
#endif 
					break;
					
				case INFO_SECOND:
#if _APP_CAP_OSD_INFO_OSD_KEEP
					if( MIX_GetGraphicEn( SH_CANV1 )!= TRUE )
						OwCreateInfoBgDisplay();
#endif 
					OwCreateSecondDVDInfoDisplay();
					break;
					
				case INFO_THIRD:
#if _APP_CAP_OSD_INFO_OSD_KEEP
					if( MIX_GetGraphicEn( SH_CANV1 )!= TRUE )
						OwCreateInfoBgDisplay();
#endif 
					OwTimeInfoDisplay(FALSE);
					break;
					
				case INFO_FOURTH:
#if _APP_CAP_OSD_INFO_OSD_KEEP
					if( MIX_GetGraphicEn( SH_CANV1 )!= TRUE )
						OwCreateInfoBgDisplay();
#endif 

					OwTimeInfoDisplay(FALSE); 
					break;

				default:
					SH_GfxShowCanvas(SH_CANV1, FALSE);	
#if _APP_CAP_OSD_INFO_OSD_KEEP
					gRedraw_flag = FALSE;
#endif 
					break;
			}		
			break;

		case CD_DA:
		case VCD_DISC:
		case SVCD_DISC:
		case CD_I:
		case HQVCD_DISC:
			switch(gOSD_state.etInfo_dsp)
			{
				case INFO_FIRST:
					OwCreateXvcdInfoDisplay();
#if _APP_CAP_OSD_INFO_OSD_KEEP
					gRedraw_flag = TRUE;
#endif 
					break;

				case INFO_SECOND:
#if _APP_CAP_OSD_INFO_OSD_KEEP
					if( MIX_GetGraphicEn( SH_CANV1 )!= TRUE )
						OwCreateInfoBgDisplay();
#endif 
					OwTimeInfoDisplay(FALSE);
					break;
					
				case INFO_THIRD: 
#if _APP_CAP_OSD_INFO_OSD_KEEP
					if( MIX_GetGraphicEn( SH_CANV1 )!= TRUE )
						OwCreateInfoBgDisplay();
#endif 
					OwTimeInfoDisplay(FALSE);  
					break;

				default:	
					SH_GfxShowCanvas(SH_CANV1, FALSE);	
#if _APP_CAP_OSD_INFO_OSD_KEEP
					gRedraw_flag = FALSE;
#endif 
					break;
			}
			break;
	}
}

#if _APP_CAP_FUNC_REMAIN_TIME// Qian liping 060116
#if _APP_CAP_KEY_TIME_KEY	
STATIC VOID OsdHandleDisplayTime(OSD_MainType_et disp )
{
	OSD_InfoState_et		info;
	OSD_InfoState_et		new_time_info;
	OSD_MainType_et			new_display;
			
	/* Disable time OSD while in root menu */
	if((GetDiscState() == VCD_DISC || GetDiscState() == SVCD_DISC) && IsThisItemSpi())
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}

	if((GetDisplayMainState() != DISPLAY_TIME || gOSD_state.etInfo_dsp == INFO_OFF))
	{
		OsdCheck();
		 gOSD_state.etInfo_dsp = INFO_OFF;
	}

	if(S5H_GetAppType() == APP_DVD)
	{
		if( gOSD_state.etInfo_dsp == INFO_OFF )
			gOSD_state.etInfo_dsp = INFO_THIRD;	
	 	else if( gOSD_state.etInfo_dsp == INFO_THIRD)
			gOSD_state.etInfo_dsp = INFO_FOURTH;
		else 
		gOSD_state.etInfo_dsp = INFO_OFF;
	}
	else	
	{
		if (GetSvcdMenuState() == TRUE )
		{
			if( gOSD_state.etInfo_dsp == INFO_OFF )
				gOSD_state.etInfo_dsp = INFO_THIRD;
			else
				gOSD_state.etInfo_dsp = INFO_OFF;
		} 
		else
		{
			if( gOSD_state.etInfo_dsp == INFO_OFF )
					gOSD_state.etInfo_dsp = INFO_SECOND;
		 	else if( gOSD_state.etInfo_dsp == INFO_SECOND)
				gOSD_state.etInfo_dsp = INFO_THIRD;
			else 
					gOSD_state.etInfo_dsp = INFO_OFF;
		}
	}
	
	GraphicDisplayInfoOn();

	//When playing CDDA, show OSD after
#if _APP_CAP_FUNC_MIXED_VCD_CDDA			
	if (GetDiscState() == CD_DA && GetMixedCdState() == FALSE && gOSD_state.etInfo_dsp == INFO_OFF)
#else
	if (GetDiscState() == CD_DA && new_time_info == INFO_OFF)
#endif
	{
		// Qian liping 060427
		OsdTimerSet(1, TIMER_DISABLE);
		OSD_SetMainDisplay(DISPLAY_INFO, SYS_NO_WAIT);
		}

	}
#endif /*_APP_CAP_KEY_TIME_KEY*/
#endif	/* _APP_CAP_FUNC_REMAIN_TIME */	

#if _APP_CAP_FUNC_DIVX_DRM	//(weilf)20060422
VOID OsdHandleDisplayAuthorization( VOID )
{

	if( gOSD_state.etPrev_dsp != DISPLAY_AUTHORIZATION_MSG )
	{
		GraphicBackgroundOn();
		{
			OsdCheck();
			OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);
			//OsdIconCheck(TRUE);
			OwAuthorizationMsg();	
			
		}
	}

	SetVfdMainState( FP_MAIN_ERROR );
	
}

VOID OsdHandleDisplayRentalExpired( VOID )
{

	if( gOSD_state.etPrev_dsp!= DISPLAY_RENTAL_EXPIRED_MSG )
	{
		GraphicBackgroundOn();
		{
			OsdCheck();
			OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);
			//OsdIconCheck(TRUE);
			OwRentalExpiredMsg();
		}
	}

	SetVfdMainState( FP_MAIN_ERROR );
}

VOID OsdHandleDisplayRentalConfirmation( VOID )
{

	if( gOSD_state.etPrev_dsp != DISPLAY_RENTAL_CONFIRMATION_MSG )
	{
		GraphicBackgroundOn();
		{
			OsdCheck();
			OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);
			//OsdIconCheck(TRUE);
			OwRentalConfirmationMsg();
		}
	}

	SetVfdMainState( FP_MAIN_ERROR );
}
#endif	//_APP_CAP_FUNC_DIVX_DRM



/******************************************************************************
 *  Function name : OwHandleDigest
 *  Arguments     : 
 *  Return        : VOID
 *  By            : changlina
 *  Description   : 20060803
 ******************************************************************************/
VOID OwHandleDigest(VOID)
{
	DiscType_t disc;

	disc = GetDiscState();

	/*gOSD_state.etPrev_dsp!=DISPLAY_DIGEST_MENU: when press digest and enter key during digest mode play,
	    cannot to setosddvddigeston,so must add this item to limit.
	  gOSD_state.etCur_dsp!=DISPLAY_DIGEST: when N/P change.current state is DISPLAY_OFF,but must to SetOsdDvdDigestOn.
	  so add this item. clina 061011*/
#if _APP_CAP_FUNC_DVD_DIGEST
	if (disc == DVDV_DISC&&(gOSD_state.etPrev_dsp!=DISPLAY_DIGEST_MENU||gOSD_state.etCur_dsp!=DISPLAY_DIGEST))
	{
		SetOsdDvdDigestOn();
	}
#endif	
#if _APP_CAP_OSD_DIGEST
	OwDigestMenu(FALSE);
#endif
}

#if _APP_CAP_OSD_DIGEST
VOID OsdSetDisplayDigestMode()//clina 061008
{
	BYTE1 digest=GetDisplayDigestState();
	DiscType_t disc=GetDiscState();
	
	if(gOSD_state.etCur_dsp==DISPLAY_DIGEST_MENU)
	{
		if(disc==DVDV_DISC)
			SetDisplayDigestState(GuiSelFuc[TRUE]( digest, DVD_TITLE_DIGEST,DVD_CHAPTER_INTERVAL));
		else

			SetDisplayDigestState(GuiSelFuc[TRUE]( digest , VCD_DISC_INTERVAL, VCD_TRACK_PREVIEW));
	}
	else
		SetDisplayDigestState((S5H_GetAppType()==APP_DVD)?DVD_TITLE_DIGEST:VCD_DISC_INTERVAL);

}


VOID OsdHandleDisplayDigest(VOID)//clina 061009
{
	OsdSetDisplayDigestMode();
	
	if((S5H_GetAppType()==APP_VCD)&&gOSD_state.etCur_dsp==DISPLAY_DIGEST_MENU)
	{	
		OwDigestBanner(TRUE);
	}

	else
	{
		OsdCheck();
		OwDigestBanner(FALSE);
	}
}
#endif

STATIC VOID OsdHandleDisplayProgram(VOID) // Qian liping 060407
{
	SysPrintf("\n[GFX] ON Program");

	/* If a previous OSD display is displaying,
	 * close it and then create new one.
	 */
	OsdCheck();
	OwDrawProgram();
	InitTempValueState();
}

/******************************************************************************
 *  Function name : GraphicSetupOn
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Make a graphics for Setup and Pop-up it
 ******************************************************************************
 */
STATIC VOID GraphicSetupOn( VOID ) // Qian liping 060407
{
	SysPrintf("\n[GFX] ON Setup");

	/* If a previous OSD display is displaying,
	 * close it and then create new one.
	 */
	OsdCheck();
	OsdHandlerSetupDspInit();

	/*clear subtitle Qian liping 060627 */ 
	if(SH_PAR_GetExSubtitleMode())	
		SH_GfxShowCanvas(SH_CANV3, FALSE);	

#if _HJL_NEW_SETUP_SCHEME
	OwGfxSetupShowAllNew();
#else
	OwGfxSetupShowAll();
#endif

}

STATIC VOID OsdHandleDisplaySetup( OSD_MainType_et disp) // Qian liping 060407
{

#if _API_CAP_GLB_BIG_GFX_TO_VIDEO_BUFF
	GraphicSetupOn();		
#else /* _API_CAP_GLB_BIG_GFX_TO_VIDEO_BUFF*/
	if( GetMainState() == MAIN_STOP )
	{
#if _APP_CAP_NAV_CDG_DECODE
		if ( (S5H_GetAppType()==APP_VCD)  	
                        && (GetDiscState() == CD_DA) && !GetCDGDiscLoaded() )
#endif 					
			GraphicBackgroundOn();
	}

	GraphicSetupOn();
#endif /* !_API_CAP_GLB_BIG_GFX_TO_VIDEO_BUFF */

#if _APP_CAP_OSD_SETUP_OSD_TIMEOUT
	OSD_SetTimer(OSD_TIMER_NORMAL, OSD_TIME_FOR_SETUP);
#else/* _APP_CAP_OSD_SETUP_OSD_TIMEOUT */
	// Qian liping 060427
	OsdTimerSet(1, TIMER_DISABLE);
#endif/* _APP_CAP_OSD_SETUP_OSD_TIMEOUT */

}

/******************************************************************************
 *  Function name : GraphicPasswordCheckOn
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Make a graphics for Angle and Pop-up it
 ******************************************************************************
 */
STATIC VOID GraphicPasswordCheckOn( BOOL flag )
{
	SysPrintf("\n[GFX] ON Adult Password check");

	OwGfxCreateRLimitPW(flag );
}

/******************************************************************************
 *  Function name : GraphicXvcdAudioOn
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Make a graphics for Audio and Pop-up it
 ******************************************************************************
 */
STATIC VOID GraphicLRStereoOn(VOID)
{
	DiscType_t	disc_type;
	disc_type = GetDiscState();
	
	SysPrintf("\n[GFX] ON LRSTEREO");

	/* If a previous OSD display is displaying,
	 * close it and then create new one.

⌨️ 快捷键说明

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