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

📄 osd_if.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
		{
			SH_MixSetVideoEn(TRUE);
		}	
	}

	// In this cases, reset the cusor layer.
	// Qian liping 0600410
	if(  (disp == DISPLAY_OPEN) ||
		(disp == DISPLAY_CLOSE)||
		(disp == DISPLAY_NODISC)||
		(disp == DISPLAY_RC_ERROR) ||
		(disp == DISPLAY_UNKNOWN_DISC)||
		(disp == DISPLAY_SETUP)||
		(disp == DISPLAY_PROGRAM) ||
#if  _APP_CAP_OSD_EXT_SUB_FILE_SELCTION
		(disp == DISPLAY_EXT_SUBTITLE) ||
#endif
#if  _APP_CAP_FUNC_DVD_DIGEST
		(disp == DISPLAY_DIGEST_MENU) ||
#endif
		(disp == DISPLAY_EXPLORER)
		)
	OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT); 
	
	if( wait != SYS_NO_WAIT )
		SysGetSema( &gSema_osd, wait, NULL);

	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}
}

/******************************************************************************
 * Function name	: OSD_ChangeDisplay
 * Arguments		:  
 *     IN        			OsdControl_et type, OsdCtrl_st *ctrl, SysWait_t wait
 *			
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_ChangeDisplay(OsdControl_et type, OsdCtrl_st *ctrl, SysWait_t wait)
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_CTRL;
	tx.etWait = wait;
	if( ctrl != NULL )
		memcpy( &tx.p.ctrl, ctrl, sizeof(OsdCtrl_st) );
	tx.p.ctrl.control = type;

	if(  wait != SYS_NO_WAIT  )
		SysGetSema( &gSema_osd, wait, NULL);
	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}	
}
/******************************************************************************
 * Function name	: OSD_TimerUpdate
 * Arguments		:  
 *     IN        			OsdControl_et type, OsdCtrl_st *ctrl, SysWait_t wait
 *			
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_TimerUpdate(OsdControl_et type, OsdCtrl_st *ctrl, SysWait_t wait)
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_CTRL;
	tx.etWait = wait;
	if( ctrl != NULL )
		memcpy( &tx.p.ctrl, ctrl, sizeof(OsdCtrl_st) );
	tx.p.ctrl.control = type;

	if(  wait != SYS_NO_WAIT  )
		SysGetSema( &gSema_osd, wait, NULL);
	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}	
}

/******************************************************************************
 * Function name	: OSD_ChangeExplore
 * Arguments		:  
 *     IN        			OsdControl_et type, OsdCtrl_st *ctrl, SysWait_t wait
 *			
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_ChangeExplore(OsdControl_et type, OsdCtrl_st *ctrl, SysWait_t wait)
{
	OsdMsg_st	tx;
	
	tx.type = OSD_MSG_CTRL_EXP;
	tx.etWait = wait;
	if( ctrl != NULL )
		memcpy( &tx.p.ctrl, ctrl, sizeof(OsdCtrl_st) );	
	tx.p.ctrl.control = type;
	if(  wait != SYS_NO_WAIT  )
		SysGetSema( &gSema_osd, wait, NULL);

	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}	

}

/******************************************************************************
 * Function name	: OSD_SetIconDisplay
 * Arguments		:  
 *     IN        			IconState_et icon, OsdIconCtrl_st *icon_ctrl, SysWait_t wait
 *			
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_SetIconDisplay( IconState_et icon, OsdIconCtrl_st *icon_ctrl, SysWait_t wait )
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_ICON;
	tx.etWait = wait;
	if( icon_ctrl != NULL )
		memcpy( &tx.p.icon_ctrl, icon_ctrl, sizeof(OsdIconCtrl_st) );		
	tx.icon = icon;

	if(  wait != SYS_NO_WAIT  )
		SysGetSema( &gSema_osd, wait, NULL);
	
	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);

		gOSD_state.etCheck_icon = icon ; // Qian liping 060430
		
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}	
}

/******************************************************************************
 * Function name	: OSD_ChangeProgram
 * Arguments		:  
 *     IN        			OsdControl_et type, OsdPgmSet_st *ctrl, SysWait_t wait
 *			
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_ChangeProgram(OsdControl_et type, OsdPgmSet_st *ctrl, SysWait_t wait)
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_CTRL_PGM;
	tx.etWait = wait;
	if( ctrl != NULL )
		memcpy( &tx.p.ctrl.p.pgm, ctrl, sizeof(OsdPgmSet_st) );		
	tx.p.ctrl.control = type;
	
	if(  wait != SYS_NO_WAIT  )
		SysGetSema( &gSema_osd, wait, NULL);

	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}	
	
}

/******************************************************************************
 * Function name	: OSD_ChangeSetup
 * Arguments		:  
 *     IN        			OsdControl_et type, OsdSetupCtrl_st *ctrl, SysWait_t wait
 *			
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_ChangeSetup(OsdControl_et type, OsdSetupCtrl_st *ctrl, SysWait_t wait)
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_CTRL_SETUP;
	tx.etWait = wait;

	if( ctrl != NULL )
		memcpy( &tx.p.ctrl.p.setup, ctrl, sizeof(OsdSetupCtrl_st) );		
	tx.p.ctrl.control = type;
	if(  wait != SYS_NO_WAIT  )
		SysGetSema( &gSema_osd, wait, NULL);

	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) == SYS_RETURN_SUCCESS )
	{
		if(  wait != SYS_NO_WAIT  )
			SysGetSema( &gSema_osd, wait, NULL);
	}
	if(  wait != SYS_NO_WAIT  )
	{
		SysReleaseSema(&gSema_osd, NULL);		
		SysResetSema(&gSema_osd, 1, 0);			
	}	
}

/******************************************************************************
* Function name  : 
* Arguments      :  
*     IN        
*					
*     OUT       
*     I/O       
* Return         :  
*					VOID
* By             : Liu renliang
* Description    :  
* Revision       :  
******************************************************************************
*/
VOID OSD_ChangeSetupSelD1(MenuDom1State_et old_t, MenuDom1State_et new_t, SysWait_t wait )
{
	OsdSetupCtrl_st setup;

	setup.d1_old = old_t;
	setup.d1_new = new_t;
	OSD_ChangeSetup( OSD_CTRL_SETUP_SEL_D1, &setup, wait );
}

/******************************************************************************
* Function name  : 
* Arguments      :  
*     IN        
*					
*     OUT       
*     I/O       
* Return         :  
*					VOID
* By             : Liu renliang
* Description    :  
* Revision       :  
******************************************************************************
*/
VOID OSD_ChangeSetupSelD2(MenuDom1State_et d1, MenuDom2State_et old_t, MenuDom2State_et new_t, SysWait_t wait )
{
	OsdSetupCtrl_st setup;

	setup.d1_new = d1;
	setup.d2_old  = old_t;
	setup.d2_new = new_t;
	OSD_ChangeSetup( OSD_CTRL_SETUP_SEL_D2, &setup, wait );
}

/******************************************************************************
 * Function name	: OSD_GetState
 * Arguments		:  
 *     IN        			VOID
 *			
 *     OUT       
 *     I/O       
 * Return			: OSD_State_st *
 *			
 * By			: Taejin Kwon
 * Description		:  
 * Revision		: 1.0  
 ******************************************************************************
 */
OSD_State_st *OSD_GetState( VOID )
{
	return &gOSD_state;
}

/******************************************************************************
 * Function name	: OSD_SetTimer
 * Arguments		:  
 *     IN        			OsdTimerType_et type
 *							SysTimeTick_t value
 *     OUT       
 *     I/O       
 * Return			: VOID
 *			
 * By				: Taejin Kwon
 * Description		:  
 *	To disable timer, set the value to "0".
 * Revision		: 1.0  
 ******************************************************************************
 */
VOID OSD_SetTimer( OsdTimerType_et type, SysTimeTick_t value )
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_SET_TIMER;
	tx.etWait = SYS_NO_WAIT;
	tx.p.timer.etType = type;
	tx.p.timer.time = value;
	if( SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 ) != SYS_RETURN_SUCCESS )
	{
		SysPrintf("\n[OSD] OSD_SetTimer fail.");
	}
}

VOID OsdSetupShowTestToneStr(UCHAR channel)//clina 060405
{
	OsdMsg_st	tx;

	tx.type = OSD_MSG_CTRL_SETUP;
	tx.p.ctrl.control = OSD_CTRL_SETUP_UPDATE_TEST_TONE;
	tx.p.ctrl.p.setup.eiChannel = channel;
	SysSendMsg( &gQ_osd, &tx, sizeof(OsdMsg_st), SYS_NO_WAIT, 0 );
}

⌨️ 快捷键说明

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