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

📄 osd_timer.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 *   Filename    : OSD_timer_BASIC.inc
 *   Start       : 2002. 11. 19
 *   By          : Taejin Kwon
 *   Contact     : tj1kwon@samsung.co.kr
 *   Description : 
 ******************************************************************************
 */
#ifndef _OSD_TIMER_BASIC_C_
#define _OSD_TIMER_BASIC_C_
/******************************************************
 *       INCLUDES
 *****************************************************/
#include <string.h>
#include <stdio.h>
#include "Basic_typedefs.h"
#include "CUSTOM/Custom_option.h"
#include "OS/OS_abstract.h"
#include "API/SH_types.h"
#include "API/SH_api.h"

#include "COMMON/Common.h"

#include "MAIN/Global_state.h"
#include "MAIN/Appl_types.h"
#include "MAIN/Uop_msg.h"

#include "DRIVER/FS/Fs_api.h"

#include "CUSTOM/Osd_types.h"
#include "CUSTOM/Osd_if.h"

#include "CUSTOM/Key_handler_setup.h"
#include "CUSTOM/Key_defs.h"
#include "CUSTOM/Key_2_uop.h"


#include "DRIVER/FS/Fs_api.h"

#include "MAIN/DVD/Dvd_predef.h"
#include "MAIN/DVD/Dvd_common.h"

#include "MAIN/MMP/Mmp_common.h"
#include "MAIN/MMP/Mmp_global.h"	



#include "MAIN/SVCD/Svcd_types.h"
#include "MAIN/SVCD/Svcd_ext.h"
#include "MAIN/SVCD/Svcd_show.h"

#include "Osd_util.h"
#include "Osd_draw.h"
#include "Osd_timer.h"
#include "CUSTOM/Strings_ext.h"


extern VOID GuiSetupReturn(UCHAR param);		//(weilf)20060726
extern VOID GuiSetupEnd(UCHAR param);		//(weilf)20060726
extern VOID GuiDvdvDefaultEnter(VOID);		//(weilf)20060726
extern VOID MmpShowNoticeString(MmpNoticeType_et notice_type, char * string);		//(weilf)20060726
/******************************************************
 *       Global variables / functions
 *****************************************************/
SysTimer_t 		gTimer_osd;
SysTimer_t 		gTimer_num;
SysTimer_t 		gTimer_icon;
SysTimer_t 		gTimer_selection;
SysTimer_t 		gTimer_loading;
#if _APP_CAP_OSD_EXPLORE_NOTICE_TIMEOUT
SysTimer_t		gTimer_mmp_notice;
#endif
#if _APP_CAP_OSD_SEPERATE_ICON_TIMER
SysTimer_t gTimer_warn;
#endif
#if _APP_CAP_FUNC_SCORING 
SysTimer_t 	gTimer_score_osd;
#endif
extern SysQueue_t	gQ_key;		/* key receive queue */
extern SysQueue_t		gQ_osd;
extern volatile BOOL 	gTray_open;
/* <<< @: 5008CHN-MMN-2095.Weilifeng 050722:cancel repeat mode if change another file(press num) to play*/
extern MmpCtrl_st	*gpstMmp_ctrl;
/* >>> @: 5008CHN-MMN-2095.Weilifeng 050722:show repeat off icon*/
extern volatile BOOL gLoading_on; // Qian liping 060510
#if _APP_CAP_OSD_DIGEST
extern BOOL gDigestTimeOut;//clina 061102
#endif
/******************************************************************************
 *  Function name : OsdTimerInit
 *  Arguments     : 
 *       IN         
 *       OUT
 *       INOUT
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : OSD manager main
 ******************************************************************************
 */
 VOID OsdTimerInit( VOID )
{
	SysSetTimer( &gTimer_osd, "OSD_TIME", OsdTimerExpired, 0, 1, 0, 
		TIMER_DISABLE, 0 );

	SysSetTimer( &gTimer_num, "NUM_TIME", OsdNumericTimerExpired, 0, 1, 0, 
		TIMER_DISABLE, 0 );

	SysSetTimer( &gTimer_icon, "ICONTIME", OsdIconTimerExpired, 0, 1, 0, 
		TIMER_DISABLE, 0 );

#if _APP_CAP_OSD_SEPERATE_ICON_TIMER
	SysSetTimer( &gTimer_warn, "ICONTIME", OsdIconTimerExpired, 0, 1, 0, 
		TIMER_DISABLE, 0 );
#endif

	SysSetTimer( &gTimer_selection, "SEL_TIME", OsdSelTimerExpired, 0, 1, 0, 
		TIMER_DISABLE, 0 );

	SysSetTimer( &gTimer_loading, "LOAD_TIME", OsdLoadingTimerExpired, 0, 1, 0,
		TIMER_DISABLE, 0 );
#if _APP_CAP_OSD_EXPLORE_NOTICE_TIMEOUT
	SysSetTimer( &gTimer_mmp_notice, "MMP_NOTICE_TIME", OsdMmpNoticeTimerExpired, 0, 1, 0,
		TIMER_DISABLE, 0 );
#endif/*_APP_CAP_OSD_EXPLORE_NOTICE_TIMEOUT*/

#if _APP_CAP_FUNC_SCORING 
	SysSetTimer( &gTimer_score_osd, "Karaoke_Scoring_OSD", OsdScoreTimerExpired, 0, 1, 0,
		TIMER_DISABLE, 0 );
#endif

}

/******************************************************************************
 *  Function name : OsdTimerDeinit
 *  Arguments     : 
 *       IN         
 *       OUT
 *       INOUT
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : OSD manager main
 ******************************************************************************
 */
 VOID OsdTimerDeinit( VOID )
{
	SysKillTimer( &gTimer_osd, 0 );

	SysKillTimer( &gTimer_num, 0 );

	SysKillTimer( &gTimer_icon, 0 );

#if _APP_CAP_OSD_SEPERATE_ICON_TIMER
	SysKillTimer( &gTimer_warn,  0 );
#endif

	SysKillTimer( &gTimer_selection, 0 );

	SysKillTimer( &gTimer_loading, 0 );
	
#if _APP_CAP_OSD_EXPLORE_NOTICE_TIMEOUT
	SysKillTimer( &gTimer_mmp_notice, 0 );
#endif/*_APP_CAP_OSD_EXPLORE_NOTICE_TIMEOUT*/
#if _APP_CAP_FUNC_SCORING 
	SysKillTimer( &gTimer_score_osd, 0 );
#endif
}

/******************************************************************************
 *  Function name : OsdTimerExpire
 *  Arguments     : 
 *       IN         
 *       OUT
 *       INOUT
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Function for timer expiration
 ******************************************************************************
 */
VOID OsdTimerExpired( UNSIGNED id )
{
	if( gOSD_state.etCur_dsp == DISPLAY_SETUP )		
	{
		 if( (gOSD_state.etSetup_dsp.depth == MENU_DOM_DEPTH_3 || 
			gOSD_state.etSetup_dsp.depth == MENU_DOM_DEPTH_2) &&
			(gOSD_state.etSetup_dsp.pass_step == PASSWD_SUB_CHECK || 
			 gOSD_state.etSetup_dsp.pass_step == PASSWD_SUB_CREATE ||
			 gOSD_state.etSetup_dsp.pass_step == PASSWD_SUB_CONFIRM) )
		{
			GuiSetupReturn(0);
		} else {
			GuiSetupEnd(0);
		}
	} 
#if _APP_CAP_FUNC_SCORING
	else if(gOSD_state.etCur_dsp == DISPLAY_SCORE)// Qian liping 060927
	{
		SH_GfxShowCanvas(SH_CANV1, FALSE );
		OsdScoringTimerSet(0,TIMER_DISABLE);
		OSD_SetMainDisplay(gOSD_state.etPrev_dsp,SYS_WAIT);
		OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT );
	}
#endif
#if _APP_CAP_OSD_DIGEST//clina 061009
	else if(gOSD_state.etCur_dsp == DISPLAY_DIGEST&&gOSD_state.etPrev_dsp == DISPLAY_DIGEST_MENU)
	{
	       gDigestTimeOut=TRUE;
		OSD_SetMainDisplay(DISPLAY_DIGEST_MENU, SYS_NO_WAIT);
		//OSD_ChangeDisplay(OSD_CTRL_RETURN_DIGESTMENU, SYS_NO_WAIT);
	}
#endif
#if _COP_SYS_REGION_CODE//clina 061026
	else if(gOSD_state.etCur_dsp == DISPLAY_RC_MSG)
		OSD_SetMainDisplay(DISPLAY_OPEN, SYS_NO_WAIT);
#endif
	else
	{				
		OSD_SetMainDisplay(DISPLAY_OFF, SYS_NO_WAIT);
	}
}

/******************************************************************************
 *  Function name : OsdNumericTimerExpire
 *  Arguments     : 
 *       IN         
 *       OUT
 *       INOUT
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Function for timer expiration
 ******************************************************************************
 */
VOID OsdNumericTimerExpired( UNSIGNED id )
{
#if 1	//wanglin 20061010
	myKeyMsgSender(RC_KEY_ENTER);
#else
	DiscType_t 		disc;
	BYTE2	temp_2dig = GetTempValue(2);	
	
	disc = GetDiscState();

	if( disc == SVCD_DISC || disc == VCD_DISC || disc == CD_DA )
	{		
		if( IsNumericAllowed(temp_2dig) == TRUE )
		{			
			if( temp_2dig!= 0 )
				UiSelectAndActive( (UCHAR) temp_2dig);					
		}
	}


#if _APP_CAP_NAV_DVD_VIDEO
	if( disc == DVDV_DISC || disc == DVDA_DISC)
	{
		GuiDvdvDefaultEnter();
	}
#endif
	
	if (S5H_GetAppType() == APP_MMN)
	{
#if _APP_CAP_KEY_SELECTION_TIMEOUT
		Key_t		 tx;
		SYS_RETURN	 ret;

	
		tx.key_data = RC_KEY_ENTER;
		tx.param = 0;
		ret = SysSendMsg( &gQ_key, &tx, sizeof(Key_t), SYS_NO_WAIT, 0 );
		if( ret == SYS_RETURN_FAIL )
		{
			SysPrintf("\n[KEY SENDER] Cannot send message");
			InitTempValueState();
		}	
		
#else /* _APP_CAP_KEY_SELECTION_TIMEOUT */
		MmpShowClearNoticeStr();
#endif /* _APP_CAP_KEY_SELECTION_TIMEOUT */ 
	}
	else
	{
		OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
		SetTempValueSetFlag(FALSE);
		InitTempValueState();
	}
	
	/*
	 * To support, tray close by numeric key
	 */
	{
		SH_FEState_et	state;
		
		state = SH_FE_GetState();
		if( state == SH_FE_STATE_OPEN || state == SH_FE_STATE_OPENING ||
			state == SH_FE_STATE_OPENED )
		{
			SH_FE_Load();
			gTray_open = FALSE;
		}
	}
#endif	
}


/******************************************************************************
 *  Function name : OsdIconTimerExpire
 *  Arguments     : 
 *       IN         
 *       OUT
 *       INOUT
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : Function for timer expiration
 ******************************************************************************
 */
VOID OsdIconTimerExpired( UNSIGNED id )
{
	if(gOSD_state.etCur_icon==ICON_RC_CODE)
	{
		InitTempValueState();
	}
	if( gLoading_on == TRUE ) // Qian liping 060510: support in loading state.
		OSD_SetIconDisplay( ICON_LOADING, NULL, SYS_NO_WAIT );
	else
		OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);

}
#if _APP_CAP_FUNC_SCORING
/******************************************************************************
 *  Function name 	: OsdScoringTimerSet
 *  Arguments     	: 
 *       IN         
 *       OUT
 *       INOUT
 *  Return        	: VOID
 *  By            	: Qian liping 060927
 *  Description   	: Function for timer expiration
 ******************************************************************************
 */
VOID OsdScoringTimerSet( SysTimeTick_t time, SysEnable_t	set )
{
	SYS_RETURN	status;
	
	if( set == TIMER_DISABLE )
		SH_MixSetGfxDoubleSize(SH_CANV1, FALSE); 

	status = SysResetTimer(&gTimer_score_osd, OsdScoreTimerExpired, time, time, set, 0 );
	if( status == SYS_RETURN_FAIL )
	{
		SysPrintf(" ..... [FAIL]\n");
	}

}
/******************************************************************************
 *  Function name 	: OsdScoreTimerExpired
 *  Arguments     	: 
 *       IN         
 *       OUT

⌨️ 快捷键说明

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