📄 osd_handler_change.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 INLINE OSD_MainType_et GetDisplayMainState( VOID ); //(weilf)20060726
#if _APP_CAP_OSD_EXT_SUB_FILE_SELCTION
extern VOID OwDivxExtSubtitleSelSub( BOOL page_update );
#endif
VOID GfxChangeLoading(VOID);
VOID OsdHandlerCtrlMsg( OsdCtrl_st ctrl )
{
switch( ctrl.control )
{
case OSD_CTRL_LRSTERO_SEL:
if( GetDisplayMainState() == DISPLAY_STEREO )
{
gOSD_state.etLrstereo_pos = ctrl.p.lrstereo;
OwSelectLrsteroSub();
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif
}
break;
case OSD_CTRL_REPEAT_SEL:
if( GetDisplayMainState() == DISPLAY_REPEAT )
{
gOSD_state.etRepeat_pos = ctrl.p.repeat.new;
OwSelectRepeatSub();
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif
}
break;
#if _APP_CAP_FUNC_RANDOM_PLAY
case OSD_CTRL_MODE_SEL:
if( GetDisplayMainState() == DISPLAY_MODE_SEL )
{
gOSD_state.ecPlaymode_pos = ctrl.p.play_mode;
OwSelModeSet( ctrl.p.toggle );
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif
}
break;
#endif /* _APP_CAP_FUNC_RANDOM_PLAY */
case OSD_CTRL_UPDATE_TIME:
#if _APP_CAP_FUNC_REMAIN_TIME
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
#if _APP_CAP_KEY_TIME_KEY
if(GetDisplayMainState() == DISPLAY_TIME)
OwTimeInfoDisplay(TRUE);
else if(GetDisplayMainState()==DISPLAY_INFO)
OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
else
return;
#else/*_APP_CAP_KEY_TIME_KEY*/
if(GetDisplayMainState()==DISPLAY_INFO && gOSD_state.etInfo_dsp > INFO_SECOND)
OwTimeInfoDisplay(TRUE);
else if(GetDisplayMainState()==DISPLAY_INFO)
OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
#if _APP_CAP_FUNC_DVD_DIGEST
else if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)
OwUpdateDigestTime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);//clina 060728
#endif
else
return;
#endif/*_APP_CAP_KEY_TIME_KEY*/
break;
case SVCD_DISC:
case VCD_DISC:
case CD_I:
case CD_DA:
case HQVCD_DISC:
#if _APP_CAP_KEY_TIME_KEY
if(GetDisplayMainState()==DISPLAY_TIME)
OwTimeInfoDisplay(TRUE);
else if(GetDisplayMainState()==DISPLAY_INFO)
OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
else
return;
#else/*_APP_CAP_KEY_TIME_KEY*/
if(GetDisplayMainState()==DISPLAY_INFO && gOSD_state.etInfo_dsp > INFO_FIRST )
OwTimeInfoDisplay(TRUE);
else if(GetDisplayMainState() == DISPLAY_INFO)
OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
#endif/*_APP_CAP_KEY_TIME_KEY*/
#if _APP_CAP_OSD_VCD_DIGEST//clina 060810
else if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)
OwUpdateDigestTime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);//clina 060728
#endif
else
return;
break;
}
#else/*_APP_CAP_FUNC_REMAIN_TIME */
OwGraphicChangedPlaytime(ctrl.p.time.hour,
ctrl.p.time.min, ctrl.p.time.sec);
#endif/*_APP_CAP_FUNC_REMAIN_TIME */
break;
case OSD_CTRL_UPDATE_DIGEST_PIC:
#if _APP_CAP_FUNC_DVD_DIGEST
if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)
OwEraseDigestSubPic(ctrl.p.rect);//clina 061027
#endif
break;
case OSD_CTRL_INIT_DIGEST_PIC:
#if _APP_CAP_FUNC_DVD_DIGEST
if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)
OwInitDigestPic();//clina 061027
#endif
break;
case OSD_CTRL_ELEM_SELECT:
if( GetDisplayMainState()!=DISPLAY_INFO &&
GetDisplayMainState()!=DISPLAY_CD_UPGRADE)
break;
switch( GetDiscState() )
{
case DVDV_DISC:
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
case CD_DATA:
case DVD_DATA:
case USB_DATA:
case FX_DATA:
#endif
OwGraphicSelectDisplayDvdvSub( ctrl.p.info.old,
ctrl.p.info.new );
//first to delete other osd timer,such as repeat,RL stereo 061023 clina
OsdTimerSet( 1, TIMER_DISABLE );//clina 061023bug153
#if _APP_CAP_OSD_INFO_OSD_TIMEOUT
OsdTimerSet(OSD_TIME_FOR_INFO, TIMER_ENABLE );
#endif
#if _APP_CAP_OSD_INFO_SEL_TIME_ENABLE
if( ctrl.p.info.new != INFO_SUB_NONE )
OsdSelTimerSet(OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
#endif /*_APP_CAP_OSD_INFO_SEL_TIME_ENABLE*/
break;
case SVCD_DISC:
case VCD_DISC:
case CD_I:
case CD_DA:
case HQVCD_DISC:
OwGraphicSelectDisplayXvcdSub( ctrl.p.info.old,
ctrl.p.info.new );
//first to delete other osd timer,such as repeat,RL stereo 061023 clina
OsdTimerSet( 1, TIMER_DISABLE );//clina 061023bug153
#if _APP_CAP_OSD_INFO_OSD_TIMEOUT
OsdTimerSet(OSD_TIME_FOR_INFO, TIMER_ENABLE );
#endif
#if _APP_CAP_OSD_INFO_SEL_TIME_ENABLE
if( ctrl.p.info.new != INFO_SUB_NONE )
OsdSelTimerSet(OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
#endif /*_APP_CAP_OSD_INFO_SEL_TIME_ENABLE*/
break;
case FIRM_CD:
#if _APP_CAP_FUNC_FIRMUP_BY_USB
case FIRM_USB:
#endif
OwFlashUpdateMenuSelection(ctrl.p.toggle);
gOSD_state.ebFirmup_sel = ctrl.p.toggle;
break;
}
break;
case OSD_CTRL_UPDATE_INFO:
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
SysPrintf("\n[OSD] Title or Chapter information changed");
SysPrintf("\n[OSD] Redraw title, chapter area");
OwGraphicChangeValueLineDvdv();
break;
case SVCD_DISC:
case VCD_DISC:
case CD_DA:
case CD_I:
case HQVCD_DISC:
SysPrintf("\n[OSD] Redraw track area");
OwGraphicChangeValueLineXvcd();
break;
}
break;
case OSD_CTRL_LOADING:
GfxChangeLoading();
break;
#if _APP_CAP_OSD_ZOOM_ICON
case OSD_CTRL_ICON_MOVE:
GraphicMoveImage( ctrl.p.pos.x_pos, ctrl.p.pos.y_pos );
OsdIconTimerSet(OSD_TIME_FOR_ZOOM_ICON, TIMER_ENABLE );
break;
#endif /*_APP_CAP_OSD_ZOOM_ICON*/
break;
#if _APP_CAP_FUNC_BOOKMARK
case OSD_CTRL_BOOKMARK_SEL:
if( GetDisplayMainState() == DISPLAY_BOOKMARK )
{
OwSetBookmark( ctrl.p.bm.new_bm, ctrl.p.bm.old_bm );
gOSD_state.eiBookmark_pos = ctrl.p.bm.new_bm;
}
break;
#endif
#if _APP_CAP_FUNC_DISPLAY_FIT
case OSD_CTRL_UPDATE_EZ:
OwEzViewBanner();
break;
#endif
case OSD_CTRL_ADULT_SET:
OwGfxSelectRatingLimit(ctrl.p.toggle);
break;
case OSD_CTRL_PSWD_UPDATE:
OwGfxCheckRLimitPW( (UCHAR)ctrl.p.value );
break;
case OSD_CTRL_CD_UP_START:
OwFlashUpdateLoadingOn();
break;
case DISPLAY_RC_MSG: //clina 060424
OwRegionCodeMsg();
OsdTimerSet( OSD_TIME_FOR_RC_SEL, TIMER_ENABLE );
break;
case OSD_CTRL_UPDATE_SMI_SCRIPT:
if( GetDisplayMainState()==DISPLAY_SETUP ||
GetDisplayMainState()==DISPLAY_PROGRAM ||
GetDisplayMainState()==DISPLAY_FAT_DEVICE)
return;
OwMmp_ExploreDrawSmiInfo();
break;
#if _APP_CAP_FUNC_SCORING
case OSD_CTRL_CHANGE_SCORE_CLT:
if( GetDisplayMainState() == DISPLAY_SCORE )
{
OwChangeScoreWindowCLT();
}
break;
#endif/*_SUPPORT_SCORING_FUNCTION_APPL*/
case OSD_CTRL_CHANGE_SCREENSVACER_CLT:
if( GetDisplayMainState() == DISPLAY_SCREENSAVER )
{
OwChangeScreenSaverCLT();
}
break;
#if _APP_CAP_FUNC_DIVX_DRM //(weilf)20060422
case OSD_CTRL_UPDATE_DRM_CONFIRM_HL:
OwUpdateDrmConfirmHL();
break;
#endif //_APP_CAP_FUNC_DIVX_DRM
#if _APP_CAP_OSD_DIGEST //(weilf)20060429
case OSD_CTRL_DIGEST_SET:
if( GetDisplayMainState() == DISPLAY_DIGEST )
{
OwDigestBanner(TRUE);
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif
}
break;
#endif
#if (_APP_CAP_NAV_USB_DISC||_APP_CAP_NAV_FX_DATA)
case OSD_CTRL_FAT_DEVICE_SEL:
if( GetDisplayMainState() == DISPLAY_FAT_DEVICE)
{
OwDeviceSelMenuUpdate(ctrl.p.fat_osd_type);
gOSD_state.fat_dev_type = ctrl.p.fat_osd_type;
}
break;
#endif
#if _APP_CAP_OSD_EXT_SUB_FILE_SELCTION
case OSD_CTRL_EXT_SUB_FILE_SEL:
if( GetDisplayMainState() == DISPLAY_EXT_SUBTITLE )
{
OwDivxExtSubtitleSelSub(ctrl.p.toggle);
}
break;
#endif
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -