📄 osd_if.c
字号:
{
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 + -