📄 key_handler_dvdv.c
字号:
else
UiSelectAndActive( (UCHAR) temp_3dig );
// Changlina 060811: bug fix 600
OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
}
else if(temp_3dig != 0)
{
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER
if(DvdInfo.total_chapter ==1)
UiTitlePlay(temp_3dig);
else
UiPttSearch((UCHAR) temp_3dig );
#else/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/
UiPttSearch((UCHAR) temp_3dig );
#endif/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/
OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
InitTempValueState();
}
else
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
}
else if (domain == DVD_DOM_STOP && temp_3dig != 0)
{
if ( IsDvdFullStopMode() )
UiPttPlay(1, (UCHAR) temp_3dig);
else if (GetDvdResumeStopDomain() == DVD_DOM_VMGM || \
GetDvdResumeStopDomain() == DVD_DOM_VTSM)
UiPttPlay(1, (UCHAR) temp_3dig);
else
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER // Qian liping 061010: fix bug 119
if(DvdInfo.total_chapter ==1)
UiTitlePlay(temp_3dig);
else
#endif
UiPttSearch((UCHAR) temp_3dig );
InitTempValueState();
}
#if _APP_CAP_NAV_DVD_AUDIO
else if( (domain == DVD_DOM_AMGM) || (domain == DVD_DOM_TT_GR) )
{
/* maybe menu domain */
if( GetDvdButtonSelectionState() != DVD_BTN_NONE )
{
if( temp_3dig == 0 )
UiCmdGeneral( UOP_DVDV_BTN_ACTIVATE );
else
UiSelectAndActive( (UCHAR) temp_3dig );
}
else if(temp_3dig != 0)
{
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER
DvdVideoInfo_t DvdInfo;
GetDvdVideoInfo(&DvdInfo);
if(DvdInfo.total_chapter ==1)
UiTitlePlay(temp_3dig);
else
UiPttSearch((UCHAR) temp_3dig );
#else/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/
UiPttSearch((UCHAR) temp_3dig );
#endif/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/
OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
InitTempValueState();
}
else
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
}
#endif
InitTempValueState();
}
/******************************************************************************
* Function name : GuiDvdvEnter
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvEnter( UCHAR param )
{
MediaInfo_t media;
OSD_State_st *osd_state;
Domain_t domain;
BYTE2 temp_2dig = GetTempValue(2);
osd_state = OSD_GetState();
switch( osd_state->etCur_dsp )
{
#if _APP_CAP_FUNC_DISPLAY_FIT
case DISPLAY_FIT:
UiCmdGeneral( UOP_DVDV_EZ_VIEW );
OSD_SetTimer( OSD_TIMER_NORMAL, OSD_TIME_FOR_BANNER );
break;
#endif
case DISPLAY_AUDIO:
case DISPLAY_SUBTITLE:
case DISPLAY_ANGLE:
if(temp_2dig > 0)
GuiDvdvDefaultEnter();
else
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
OSD_SetTimer(OSD_TIMER_NORMAL, OSD_TIME_FOR_BANNER);
#endif /* _APP_CAP_OSD_TOGGLE_BY_HOTKEY */
break;
case DISPLAY_INFO: // Qian liping 060525
GetMediaInfoState( &media );
domain = GetDvdDomain();
if( osd_state->etInfo_sub == INFO_SUB_TITLE ||
osd_state->etInfo_sub == INFO_SUB_CHAPTER )
{
DVDSearch_t search_value;
OsdCtrl_st ctrl;
/* Reset timer & temp keeper data for later use, since 'Enter' key is pressed for confirmation*/
OsdSelTimerSet( 1, TIMER_DISABLE );
InitTempValueState();
GetSearchValue(&search_value);
/* No valid title and chapter case */
if(search_value.title_search == 0)
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
}
/* Only title is edited case */
else if(search_value.chapter_search == 0)
{
UiTitlePlay((UCHAR)search_value.title_search);
// Search the first chapter in current title.
search_value.chapter_search = 1;
SetSearchValue( search_value );
}
else if( search_value.title_search == media.dvdv.cur_title && \
(!IsDvdFullStopMode() && GetDvdResumeStopDomain() == DVD_DOM_TT))
{
UiPttSearch((UCHAR)search_value.chapter_search);
}
else
{
UiPttPlay((UCHAR)search_value.title_search, (UCHAR)search_value.chapter_search);
}
/*
Yanglu 05.06.12 Reset search value with HL moves in Osd code part; to avoid such case:
If valid pair of t/c is searched, the HL be removed, but the previous
t/c value is re-displayed for a short while.
Otherwise, If invalid pair of t/c value is searched, the HL be removed, and the current play
info is recoverd in dvd nav: DvdShowUopProhibited(), RefreshTtPttSearch()
*/
ctrl.p.info.old = osd_state->etInfo_sub;
ctrl.p.info.new = INFO_SUB_NONE;
OSD_ChangeDisplay(OSD_CTRL_ELEM_SELECT, &ctrl, SYS_NO_WAIT);
}
else if( osd_state->etInfo_sub == INFO_SUB_VTIME )
{
GuiTimeSearch();
}
else
{
GuiDvdvDefaultEnter();
}
break;
default:
GuiDvdvDefaultEnter();
break;
} /* switch */
}
/******************************************************************************
* Function name : GuiDvdvAudioSubtitleId
* Arguments :
* Return : VOID
* By : Liu ren liang
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvAudSubtAngleId( UCHAR param )
{
OSD_State_st *osd_state;
Domain_t domain;
SetMainState_t main;
#ifndef _MTK_STYLE
DvdvAudioInfo_t ast;
DvdvSubtitleInfo_t spst;
DvdvAngleInfo_t angle;
#endif
SysPrintf("\n[GUI] DVDV Audio/Subtitle/Angle/Stereo Stream Selection Key.");
main = GetMainState();
if( main == MAIN_PAUSE || main == MAIN_STEP || main == MAIN_SF || main == MAIN_SR ||
main == MAIN_FF || main == MAIN_FR )
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
osd_state = OSD_GetState();
if( param==RC_KEY_AUDIO && osd_state->etCur_dsp != DISPLAY_AUDIO )
{
#ifdef _MTK_STYLE
GuiDvdvUpdateAudio();
#else
if( GetDvdvAudioAttribute( &ast ) == TRUE )
{
OSD_SetMainDisplay(DISPLAY_AUDIO, SYS_NO_WAIT);
}
else
{
OsdNotAvailOn();
}
#endif
}
else if( param==RC_KEY_SUBTITLE && osd_state->etCur_dsp != DISPLAY_SUBTITLE )
{
#ifdef _MTK_STYLE
GuiDvdvUpdateSubtitle();
#else
if( GetDvdvSubtitleAttribute( &spst ) == TRUE )
{
OSD_SetMainDisplay(DISPLAY_SUBTITLE, SYS_NO_WAIT);
}
else
{
OsdNotAvailOn();
}
#endif
}
else if( param==RC_KEY_ANGLE && osd_state->etCur_dsp != DISPLAY_ANGLE )
{
domain = GetDvdDomain();
if( (domain == DVD_DOM_VTSM || domain == DVD_DOM_VMGM)
|| ( GetDvdvRepeatState() == REPEAT_SUB_A ||GetDvdvRepeatState() == REPEAT_SUB_B )
/*BY QQ 060426 zoom->angle->prohibition mark -> error*/
//|| (GetZoomFactorState() != ZOOM_NONE)
)
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
#ifdef _MTK_STYLE
GuiDvdvUpdateAngle();
#else
if( GetDvdvAngleAttribute( &angle ) == TRUE )
{
OSD_SetMainDisplay(DISPLAY_ANGLE, SYS_WAIT);
}
else
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
}
#endif
}
}
/******************************************************************************
* Function name : GuiDvdvDisplay
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvDisplay( UCHAR param )
{
OSD_State_st *osd_state;
osd_state = OSD_GetState();
#if _APP_CAP_OSD_AFTER_SEARCH_GOTO_INFO
if(osd_state->etInfo_sub <= INFO_SUB_VTIME)
GuiDvdvInfoGoto(param);
else
#endif/*_APP_CAP_OSD_AFTER_SEARCH_GOTO_INFO*/
OSD_SetMainDisplay(DISPLAY_INFO, SYS_NO_WAIT);
}
/******************************************************************************
* Function name : GuiDvdvStep
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
******************************************************************************
*/
VOID GuiDvdvStep( UCHAR param )
{
if( GetDvdvRepeatState() == REPEAT_SUB_A ) /* (051019) yanglu simplify */
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
UiCmdGeneral( UOP_STEP );
}
#if _APP_CAP_FUNC_SLOW_REV
/******************************************************************************
* Function name : GuiDvdvSlowReverse
* Arguments :
* Return : void
* By : WangLin
* Description :
******************************************************************************
*/
void GuiDvdvReverseStep( UCHAR param )
{
UiCmdGeneral( UOP_REVERSE_STEP );
}
#endif
/******************************************************************************
* Function name : GuiDvdvReturn
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvReturn( UCHAR param )
{
OSD_State_st *osd_state;
osd_state = OSD_GetState();
#if _APP_CAP_NAV_DVD_AUDIO /*Jiangshanbin for DVDA*/
if(GetDiscState() == DVDA_DISC)
{
UiCmdGeneral( UOP_DVDA_MENU);
}
else
#endif
if(GetDvdDomain() != DVD_DOM_TT)
{
if( osd_state->etCur_dsp!= DISPLAY_OFF )
OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT);
else
UiCmdGeneral( UOP_DVDV_MENU_RETURN );
}
else
{
UiCmdGeneral( UOP_DVDV_MENU_RETURN );
}
}
/******************************************************************************
* Function name : GuiDvdvPlay
* Arguments :
* Return : void
* By : Taejin Kwon
* Description :
* Revisions : (yanglu, 051203)
******************************************************************************
*/
VOID GuiDvdvPlay( UCHAR param )
{
if( gOSD_state.etCur_icon == ICON_NUMERIC )
{
GuiDvdvDefaultEnter();
} else {
UiCmdGeneral( UOP_PLAY );
}
}
#if _APP_CAP_FUNC_INSTANT_PLAY
/******************************************************************************
* Function name : GuiDvdvInstantReplay
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvInstantReplay( UCHAR param )
{
if( GetMainState() != MAIN_PLAY )
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
UiInstantReplay();
}
/******************************************************************************
* Function name : GuiDvdvInstantSkip
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvInstantSkip( UCHAR param )
{
if( GetMainState() != MAIN_PLAY )
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
UiInstantSkip();
}
#endif
#if _APP_CAP_FUNC_DISPLAY_FIT
/******************************************************************************
* Function name : GuiDvdvDisplayFit
* Arguments :
* Return : VOID
* By : Taejin Kwon
* Description :
******************************************************************************
*/
VOID GuiDvdvDisplayFit( UCHAR param )
{
BOOL ezview;
S5H_ZoomFactor_t zoom;
OSD_State_st *osd_state;
osd_state = OSD_GetState();
zoom = GetZoomFactorState();
if( zoom != ZOOM_NONE )
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
ezview = IsEzViewAllowed();
if( ezview == FALSE )
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
/* Check previous main state */
SysPrintf("\n[GUI] Display fit key.");
if( osd_state->etCur_dsp == DISPLAY_FIT )
{
UiDisplayFit();
OSD_SetTimer( OSD_TIMER_NORMAL, OSD_TIME_FOR_BANNER );
} else {
OSD_SetMainDisplay(DISPLAY_FIT, SYS_WAIT);
}
}
#endif
BOOL GuiDvdvUpdateSubtitle( VOID )
{
DvdvSubtitleInfo_t spst;
if( GetDvdvSubtitleAttribute( &spst ) == TRUE )
{
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY// Qian liping 060814: bug fix 629
OsdTimerSet(OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
#endif /* _APP_CAP_OSD_TOGGLE_BY_HOTKEY */
if( spst.onoff == TOGGLE_OFF )
{
spst.onoff = TOGGLE_ON;
spst.cur_id = 0;
} else
{
/* check dummy stream or not */
if( spst.cur_id == 63 )
{
spst.cur_id = 0;
}
else
{
spst.cur_id++;
if( spst.cur_id == spst.total_num )
{
spst.onoff = TOGGLE_OFF;
spst.cur_id = 0;
}
}
}
UiSubtitle( spst.cur_id, spst.onoff );
SysSleep(100,NULL);
if(GetDisplayMainState()!= DISPLAY_SUBTITLE)
OSD_SetMainDisplay(DISPLAY_SUBTITLE, SYS_NO_WAIT);
return TRUE;
}
else
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return FALSE;
}
}
BOOL GuiDvdvUpdateAudio( VOID )
{
DvdvAudioInfo_t ast;
if( GetDvdvAudioAttribute( &ast ) == TRUE )
{
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY// Qian liping 060814: bug fix 629
OsdTimerSet(OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
#endif /* _APP_CAP_OSD_TOGGLE_BY_HOTKEY */
UiAudio((ast.cur_id < ast.total_num-1)? ++ast.cur_id:0);
SysSleep(100,NULL);
if(GetDisplayMainState() != DISPLAY_AUDIO)
OSD_SetMainDisplay(DISPLAY_AUDIO, SYS_NO_WAIT);
return TRUE;
}
else
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return FALSE;
}
}
BOOL GuiDvdvUpdateAngle( VOID )
{
DvdvAngleInfo_t angle;
if( GetDvdvAngleAttribute( &angle ) == TRUE )
{
/* check boundary */
if( angle.total_num == 1 )
{
return FALSE;
}
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY// Qian liping 060814: bug fix 629
OsdTimerSet(OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
#endif /* _APP_CAP_OSD_TOGGLE_BY_HOTKEY */
angle.cur_num = GuiSelFuc[1](angle.cur_num, 1, angle.total_num);
UiAngle( angle.cur_num );
SysSleep(100,NULL);
if(GetDisplayMainState() != DISPLAY_ANGLE)
OSD_SetMainDisplay(DISPLAY_ANGLE, SYS_NO_WAIT);
return TRUE;
}
else
{
/*Show icon warning when the key is invalid. Jiang Shanbin*/
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return FALSE;
}
}
#endif /* _APP_CAP_NAV_DVD_VIDEO */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -