📄 osd_handler_com.c
字号:
/******************************************************************************
* Filename : OSD_manager.c
* Start : 2002. 11. 19
* By : Taejin Kwon
* Contact : tj1kwon@samsung.co.kr
* Description :
******************************************************************************
*/
/******************************************************
* 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 "MAIN/DVD/Dvd_predef.h"
#include "MAIN/DVD/Dvd_common.h"
#include "MAIN/MMP/Mmp_common.h"
#include "CUSTOM/Key_receive.h"
#include "CUSTOM/FP_handle.h"
#include "CUSTOM/Key_defs.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"
#include "Osd_data.h"
#include "Osd_draw_explore.h"
#include "Osd_draw_setup.h"
#include "Osd_draw_program.h"
/******************************************************
* Global variables / functions
*****************************************************/
/******************************************************
* Extern variables / functions
*****************************************************/
extern volatile BOOL gLoading_on;
extern BOOL gRedraw_flag;
extern ONOFF gOsd_angle_onoff;
#if _APP_CAP_OSD_DIGEST
extern BOOL gDigestTimeOut;
#endif
extern BOOL MIX_GetGraphicEn(BYTE1 gfx_obj); //(weilf)20060726
/******************************************************************************
* Function name : OsdHandleDisplayOff
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description : Handle display off
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayOff( VOID )
{
OsdDoOff();
if(gOSD_state.etPrev_dsp == DISPLAY_SETUP)
{
SH_GfxSetBgColor (COLOR_BLACK );
}
}
#if _APP_CAP_FUNC_COLDSTART/* Qian liping 050713*/
/******************************************************************************
* Function name : OsdHandleDisplayColdstart
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Chang lina
* Description : Handle to display the cold start
* Revision : 1.0
******************************************************************************
*/
VOID OsdHandleDisplayColdstart( VOID )
{
gOSD_state.etSetup_dsp.depth = MENU_DOM_DEPTH_4;
/* Before open COLD START Menu All of the Settings are reset except menu
* language.
*To use previous menu language setting after cold start running,
* if there is no language selection in the COLD START menu.
*/
{
SetupLang_t language;
USHORT menu_lang;
SetupInfoGetMenuLang( &language );
menu_lang = language.setup;
SetupInfoInit( TRUE) ;
#if _APP_CAP_FUNC_DIVX_DRM //azureming@060421
InitialDrmInfo();
#endif
SetupSetMenuLanguage( (UCHAR)menu_lang );
SetupSetColdStartFlag( TRUE );
}
GraphicBackgroundOn();
OsdCheck();
OwColdStartMenu();
gOSD_state.etRedraw_dsp = DISPLAY_OFF;
}
#endif
/******************************************************************************
* Function name : OsdHandleDisplayFirmup
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description : Handle to display the Firm upgrade
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayFirmup( VOID )
{
OsdCheck();
gOSD_state.etRedraw_dsp = DISPLAY_OFF;
gOSD_state.ebFirmup_sel = FALSE;
OwFlashUpdateMenu();
gOSD_state.ebFirmup_sel = TRUE;
}
/******************************************************************************
* Function name : OsdHandleDisplayUnkwonDisc
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description : Handle to display the Unknown disc
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayUnkwonDisc( VOID )
{
/* Create logo */
OsdCheck();
GraphicMessageOn(NOTICE_TYPE_DEFAULT, (NCHAR*)gInvalidDisc_string[MENU_LANG], NULL );
SetVfdMainState( FP_MAIN_ERROR );
}
/******************************************************************************
* Function name : OsdHandleDisplayRegion
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description : Handle to display the region
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayRegion( VOID )
{
OsdCheck();
gOSD_state.etRc_dsp = RC_DUMMY;//clina 060424
OwRegionCodeMsg();
OSD_SetTimer(OSD_TIMER_NORMAL, OSD_TIME_FOR_RC_SEL);
}
/******************************************************************************
* Function name : OsdHandleDisplayRegionError
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description : Handle to display the region error
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayRegionError( VOID )
{
/* Create logo */
OsdCheck();
GraphicMessageOn(NOTICE_TYPE_DEFAULT, (NCHAR*)gInvalidRegion_string[MENU_LANG], NULL );
SetVfdMainState( FP_MAIN_ERROR );
}
// Qian liping 060420
VOID OsdHandleDisplayDiscType( VOID )
{
#if _APP_CAP_OSD_DISC_TYPE
DiscType_t disc;
NCHAR str[10];
disc = GetDiscState();
switch(disc)
{
case NO_DISC:
strcpy(str, (NCHAR*)gNodisc_string[MENU_LANG]);
break;
case DVDV_DISC:
case DVDA_DISC:
strcpy(str, "DVD-VIDEO");
break;
case SVCD_DISC:
case HQVCD_DISC:
if( SvcdExt_IsPsdAvailable() == FALSE )
sprintf(str, "%s", "SVCD");
else if( SvcdExt_GetSvcdMenuState() == TRUE )
sprintf(str, "%s %s", "SVCD", gMenu_string[MENU_LANG][1]);
else
sprintf(str, "%s %s", "SVCD", gMenu_string[MENU_LANG][0]);
break;
case VCD_DISC:
if( SvcdExt_IsPsdAvailable() == FALSE )
sprintf(str, "%s", "VCD");
else if( SvcdExt_GetSvcdMenuState() == TRUE )
sprintf(str, "%s %s", "VCD", gMenu_string[MENU_LANG][1]);
else
sprintf(str, "%s %s", "VCD", gMenu_string[MENU_LANG][0]);
break;
case CD_I:
sprintf(str, "%s", "CD-I");
break;
case CD_DA: /*BY QQ 060315*/
if(GetHDCDDiscLoaded())
sprintf(str, "%s", "HDCD");
else
if( GetCDGDiscLoaded())
sprintf(str, "%s", "CD+G");
else
if( GetDtsDiscLoaded())
sprintf(str, "%s", "DTS-CD");
else
sprintf(str, "%s", "CD");
break;
default:
break;
}
/*BY QQ 060302*/
CursorMessageOn(NOTICE_TYPE_DEFAULT , str );
#endif
}
/******************************************************************************
* Function name : OsdHandleDisplayCvdWarning
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description : Handle to display the CVD warning
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayCvdWarning( VOID )
{
OsdCheck();
OwVcdNotPlayMenu();
OsdTimerSet( OSD_TIME_FOR_ERROR, TIMER_ENABLE );
gOSD_state.etRedraw_dsp = DISPLAY_OFF;
}
/******************************************************************************
* Function name : OsdHandleDisplayOpen
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping 060410
* Description :
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayOpen( VOID )
{
gLoading_on = FALSE;
GraphicMessageOn(NOTICE_TYPE_OPEN, (NCHAR*)gpOpen[MENU_LANG], NULL );
gOSD_state.etRedraw_dsp = DISPLAY_OFF;
/* Reset OSD timer */ // Qian liping 060404: open is keep message.
// OsdTimerSet( OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
}
/******************************************************************************
* Function name : OsdHandleDisplayClose
* Arguments :
* IN VOID
*
* OUT
* I/O
* Return : STATIC VOID
*
* By : Qian liping
* Description :
* Revision : 1.0
******************************************************************************
*/
STATIC VOID OsdHandleDisplayClose( VOID )
{
GraphicMessageOn(NOTICE_TYPE_CLOSE, (NCHAR*)gpClose[MENU_LANG], NULL );
}
STATIC VOID OsdHandleDisplayNoDisc( VOID )
{
NCHAR *str_buf[32];
sprintf((char *)str_buf,"%s %s",gpNo[MENU_LANG], gpDisc[MENU_LANG]);
GraphicMessageOn(NOTICE_TYPE_DEFAULT, (NCHAR*)str_buf, NULL );
}
STATIC VOID OsdHandleDisplayNoUsb( VOID )
{
NCHAR *str_buf[32];
sprintf((char *)str_buf,"%s %s",gpNo[MENU_LANG], "USB");
GraphicMessageOn(NOTICE_TYPE_DEFAULT, (NCHAR*)str_buf, NULL );
}
STATIC VOID OsdHandleDisplayNoCard( VOID )
{
NCHAR *str_buf[32];
sprintf((char *)str_buf,"%s %s",gpNo[MENU_LANG], gpCard[MENU_LANG]);
GraphicMessageOn(NOTICE_TYPE_DEFAULT, (NCHAR*)str_buf, NULL );
}
STATIC VOID OsdHandleDisplayDvd( VOID )
{
GraphicMessageOn(NOTICE_TYPE_DEFAULT, "DVD", NULL );
/* Reset OSD timer */
OsdTimerSet( OSD_TIME_FOR_DISC_TYPE, TIMER_ENABLE );
}
STATIC VOID OsdHandleDisplaySvcd( VOID )
{
BOOL menu_state;
menu_state = GetSvcdMenuState();
if( GetVcdVersionNumber()==VCD_VER_2_0 )
{
GraphicMessageOn(NOTICE_TYPE_DEFAULT, "SVCD 2.0",
(NCHAR*)gMenu_string[MENU_LANG][menu_state] );
}
else
{
GraphicMessageOn(NOTICE_TYPE_DEFAULT, "SVCD 1.0",
(NCHAR*)gMenu_string[MENU_LANG][menu_state] );
}
/* Reset OSD timer */
OsdTimerSet( OSD_TIME_FOR_DISC_TYPE, TIMER_ENABLE );
}
STATIC VOID OsdHandleDisplayVcd( VOID )
{
BOOL menu_state;
menu_state = GetSvcdMenuState();
switch( GetVcdVersionNumber() )
{
case VCD_VER_2_0:
GraphicMessageOn(NOTICE_TYPE_DEFAULT, "VCD 2.0",
(NCHAR*)gMenu_string[MENU_LANG][menu_state] );
break;
case VCD_VER_3_0:
GraphicMessageOn(NOTICE_TYPE_DEFAULT, "VCD 3.0",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -