📄 key_handler_dvdv.c
字号:
/* Handle for different playmode */
GuiDvdvSkipModeHandle(param);
/*
if(!GuiDvdvSkipModeHandle(param))
{
SetNextPrevTimer(TIMER_DISABLE);
InitNextPrevStValue();
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}*/
if( IsNext )
OSD_SetIconDisplay( ICON_NEXT, NULL, SYS_NO_WAIT );
else
OSD_SetIconDisplay( ICON_PREV, NULL, SYS_NO_WAIT );
OSD_ChangeDisplay(OSD_CTRL_UPDATE_INFO, NULL, SYS_NO_WAIT);
}
#else/*_APP_CAP_KEY_QUICK_RESPONSE_NEXT_PREV*/
VOID GuiDvdvSkip( UCHAR param )
{
SetTempValueSetFlag( FALSE );
InitTempValueState();
#if _APP_CAP_NAV_DVD_AUDIO /*Jiangshanbin for DVDA*/
if(GetDiscState() == DVDA_DISC)
{
if ( param == RC_KEY_PREV )
UiCmdGeneral( UOP_DVDA_PREV_TRACK );
else
UiCmdGeneral(UOP_DVDA_NEXT_TRACK);
}
else
#endif
{
if (param==RC_KEY_PREV)
UiCmdGeneral( UOP_DVDV_PREV_PG );
else
UiCmdGeneral(UOP_DVDV_NEXT_PG);
}
}
#endif/*_APP_CAP_KEY_QUICK_RESPONSE_NEXT_PREV*/
/******************************************************************************
* Function name : GuiDvdvSlow
* Arguments :
* Return : VOID
* By : Liu renliang
* Description :
******************************************************************************
*/
VOID GuiDvdvSlow( UCHAR data,UCHAR param )
{
ScanCtrl_t scan;
UCHAR speed;
UCHAR direction;
GetScanControlState( &scan );
speed = scan.speed;
direction = scan.direction;
#ifdef _MTK_STYLE
switch( speed )
{
case PM_SPEED_X1_16:
if( direction == PM_DIR_FORWARD )
{
#if _APP_CAP_FUNC_SLOW_REV
speed = PM_SPEED_X1_2;
direction = PM_DIR_BACKWARD;
#else
speed = PM_SPEED_X1;
#endif
}
else
{
speed = PM_SPEED_X1;
direction = PM_DIR_FORWARD;
}
break;
case PM_SPEED_X1_8:
speed = PM_SPEED_X1_16;
break;
case PM_SPEED_X1_4:
speed = PM_SPEED_X1_8;
break;
case PM_SPEED_X1_2:
speed = PM_SPEED_X1_4;
break;
default: //wanglin 20060327
speed = PM_SPEED_X1_2;
break;
}
#else /* _MTK_STYLE */
switch( speed )
{
case PM_SPEED_X1_2:
if( direction == PM_DIR_FORWARD )
{
#if _APP_CAP_FUNC_SLOW_REV
speed = PM_SPEED_X1_32;
direction = PM_DIR_BACKWARD;
#else
speed = PM_SPEED_X1;
#endif
}
else
{
speed = PM_SPEED_X1;
direction = PM_DIR_FORWARD;
}
break;
case PM_SPEED_X1_4:
speed = PM_SPEED_X1_2;
break;
case PM_SPEED_X1_8:
speed = PM_SPEED_X1_2;
break;
case PM_SPEED_X1_16:
speed = PM_SPEED_X1_8;
break;
case PM_SPEED_X1_32:
speed = PM_SPEED_X1_16;
break;
default:
speed = PM_SPEED_X1_32;
break;
}
#if 0
if(data==RC_KEY_SLOW_FWD) //<<< KSH@5010 050907
{
if( direction == PM_DIR_BACKWARD )
{
speed = PM_SPEED_X1;
direction = PM_DIR_FORWARD;
}
}
else
{
if( direction == PM_DIR_FORWARD)
{
speed = PM_SPEED_X1;
direction = PM_DIR_BACKWARD;
}
}
//if( param == PM_SPEED_UNDEFINED ) //<<< KSH@5010 050907
{
switch( speed )
{
case PM_SPEED_X1_32:
speed = PM_SPEED_X1_16;
break;
case PM_SPEED_X1_16:
speed = PM_SPEED_X1_8;
break;
case PM_SPEED_X1_8:
speed = PM_SPEED_X1_4;
break;
case PM_SPEED_X1_4:
speed = PM_SPEED_X1_2;
break;
case PM_SPEED_X1_2:
direction = PM_DIR_FORWARD;
speed = PM_SPEED_X1;
break;
default:
speed = PM_SPEED_X1_32;
break;
}
}
#endif
#endif /* _MTK_STYLE */
SetTempValueSetFlag( FALSE );
InitTempValueState();
if ( direction == PM_DIR_FORWARD )
UiScanForward( UOP_DVDV_FORWARD_SCAN, speed );
else
UiScanBackward(UOP_DVDV_BACKWARD_SCAN,speed);
}
/******************************************************************************
* Function name : GuiDvdvScan
* Arguments :
* Return : VOID
* By : Liu renliang
* Description :
******************************************************************************
*/
VOID GuiDvdvScan( UCHAR data,UCHAR param )
{
ScanCtrl_t scan;
UCHAR speed;
UCHAR direction;
GetScanControlState( &scan );
speed = scan.speed;
direction = scan.direction;
/* Change direction */
if(data==RC_KEY_FF)
{
if( direction == PM_DIR_BACKWARD )
{
speed = PM_SPEED_X1;
direction = PM_DIR_FORWARD;
}
}
else
{
if( direction == PM_DIR_FORWARD )
{
speed = PM_SPEED_X1;
direction = PM_DIR_BACKWARD;
}
}
/*
* This command comes from Fast Forward Button action
*/
switch( speed )
{
case PM_SPEED_X2:
speed = PM_SPEED_X4;
break;
case PM_SPEED_X4:
speed = PM_SPEED_X8;
break;
case PM_SPEED_X8:
speed = PM_SPEED_X16;
break;
case PM_SPEED_X16:
speed =PM_SPEED_X32;
break;
case PM_SPEED_X32:
direction = PM_DIR_FORWARD;
speed = PM_SPEED_X1;
break;
default:
speed = PM_SPEED_X2;
break;
}
SetTempValueSetFlag( FALSE );
InitTempValueState();
#if _APP_CAP_NAV_DVD_AUDIO /*Jiangshanbin for DVDA*/
if(GetDiscState() == DVDA_DISC)
{
if ( direction == PM_DIR_FORWARD )
UiScanForward( UOP_DVDA_FORWARD_SCAN, speed );
else
UiScanBackward(UOP_DVDA_BACKWARD_SCAN,speed);
}
else
#endif
{
if ( direction == PM_DIR_FORWARD )
UiScanForward( UOP_DVDV_FORWARD_SCAN, speed );
else
UiScanBackward(UOP_DVDV_BACKWARD_SCAN,speed);
}
}
/******************************************************************************
* Function name : GuiDvdvMenu
* Arguments :
* Return : VOID
* By : Liu renliang
* Description :
* Revisions :
******************************************************************************
*/
VOID GuiDvdvMenu( UCHAR param )
{
Uop_t tx;
OSD_State_st *osd_state;
UCHAR prev_menu_id;
BOOL TitleFlag=0;
if(param==RC_KEY_TITLE_MENU)
TitleFlag=1;
#ifdef _DAEWOO
if( GetDvdvPlayMode() == PARAM_PB_PROGRAM )
{
OsdNotAvailOn();
return;
}
#endif
/*
* Check OSD and off that
*/
osd_state = OSD_GetState();
//if( osd_state->etCur_dsp != DISPLAY_OFF ) //clina 061018bug 146
//{
// Qian liping 060623: use OSD_GraphicClear not redraw the info osd.
// OSD_GraphicClear();
//}
if( osd_state->etCur_icon != ICON_NONE )
{
OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);
}
prev_menu_id = GetPrevSelectedMenuId();
if((( prev_menu_id == PARAM_MENU_ID_TITLE )&&(TitleFlag==1))||\
((prev_menu_id==PARAM_MENU_ID_ROOT)&&(TitleFlag==0)))
{
/*
* In this case, current display is menu.
*/
#if _APP_CAP_NAV_DVD_AUDIO /*Jiangshanbin for DVDA*/
if(GetDiscState() == DVDA_DISC)
tx.uop_id = UOP_DVDA_RESUME;
else
#endif
tx.uop_id = UOP_DVDV_RESUME;
} else {
#if _APP_CAP_NAV_DVD_AUDIO /*Jiangshanbin for DVDA*/
if(GetDiscState() == DVDA_DISC)
tx.uop_id = UOP_DVDA_MENU;
else
#endif
tx.uop_id = UOP_DVDV_MENU;
if(TitleFlag)
tx.param.dvdv_menu.menu_id = PARAM_MENU_ID_TITLE;
else
tx.param.dvdv_menu.menu_id = PARAM_MENU_ID_ROOT;
/* Reset zoom */
SetZoomDefault();
/* Reset temp keeper */
InitTempValueState();
}
SysSendMsg( &gQ_gui, &tx, sizeof(Uop_t), SYS_NO_WAIT, 0 );
}
/******************************************************************************
* Function name : GuiDvdvUpDown
* Arguments :
* Return : VOID
* By : Liu renliang
* Description :
* Revisions :
* Date : 2004-7-15
******************************************************************************
*/
VOID GuiDvdvUpDown( UCHAR param )
{
DvdVideoInfo_t dvdv;
UINT temp_sum;
BOOL UpFlag=0;
OSD_State_st *osd_state;
BYTE2 temp_2dig = GetTempValue(2);
DVDSearch_t search_value;
Pttn_t pttn;
if (param==RC_KEY_UP)
UpFlag=1;
osd_state = OSD_GetState();
switch( osd_state->etCur_dsp )
{
case DISPLAY_INFO:
GetDvdvInfoInAppLayer(&dvdv);
/* If value setting area activated */
switch( osd_state->etInfo_sub )
{
case INFO_SUB_TITLE:
if (temp_2dig == 0)
temp_sum = dvdv.cur_title;
else
temp_sum = temp_2dig;
SetTempValueSetFlag( TRUE );
temp_sum = GuiSelFuc[UpFlag](temp_sum, 1, dvdv.total_title);
InitTempValueState();
SetTempValue( temp_sum / 10);
SetTempValue( temp_sum % 10);
GetSearchValue(&search_value);
search_value.title_search = temp_sum;
SetSearchValue( search_value );
OSD_ChangeDisplay(OSD_CTRL_UPDATE_INFO, NULL, SYS_NO_WAIT);
break;
case INFO_SUB_CHAPTER:
if (temp_2dig == 0)
temp_sum = dvdv.cur_chapter;
else
temp_sum = temp_2dig;
GetSearchValue(&search_value);
if(search_value.title_search < 1)
GetDvdTtInfo(1, &pttn);
else
GetDvdTtInfo(search_value.title_search, &pttn);
SetTempValueSetFlag( TRUE );
temp_sum = GuiSelFuc[UpFlag](temp_sum, 1, pttn);
InitTempValueState();
SetTempValue( temp_sum / 10);
SetTempValue( temp_sum % 10);
search_value.chapter_search = temp_sum;
SetSearchValue( search_value );
OSD_ChangeDisplay(OSD_CTRL_UPDATE_INFO, NULL, SYS_NO_WAIT);
break;
default:
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
} /* switch sub menu */
break;
default:
if( GetDvdButtonSelectionState() != DVD_BTN_NONE )
{
GuiDvdvHandleKeysWithBtn(param);
}
else
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
} /* switch sub menu */
break;
} /* switch (main display selection) */
}
/******************************************************************************
* Function name : GuiDvdvLeftRight
* Arguments :
* Return : VOID
* By : Liurenliang
* Revisions :
* Date :2004.7.15
******************************************************************************
*/
VOID GuiDvdvLeftRight( UCHAR param )
{
OSD_InfoSubState_et dsp_sub_new;
OSD_State_st *osd_state;
OsdCtrl_st ctrl;
#if _APP_CAP_FUNC_DVD_TIMESEARCH_JUDGE_IN_UI
Uop_t uop;
#endif
BOOL LeftFlag=0;
Domain_t domain;
domain = GetDvdDomain();
if(param==RC_KEY_LEFT)
LeftFlag=1;
osd_state = OSD_GetState();
switch( osd_state->etCur_dsp )
{
#if _APP_CAP_FUNC_DISPLAY_FIT
case DISPLAY_FIT:
OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT);
break;
#endif
case DISPLAY_INFO: // Qian liping 060525
OsdSelTimerSet( 1,TIMER_DISABLE );
if(osd_state->etInfo_sub == INFO_SUB_NONE)
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
return;
}
/* DVD: in menu & stop domain time search not vailable */
/*Support time search in stop while there's only 1 title . Jiang Shanbin*/
#if _APP_CAP_FUNC_TIMESEARCH_IN_STOP
if (domain == DVD_DOM_VTSM || domain == DVD_DOM_VMGM/*|| domain == DVD_DOM_STOP*/)
#else
if (domain == DVD_DOM_VTSM || domain == DVD_DOM_VMGM|| domain == DVD_DOM_STOP)
#endif
{
dsp_sub_new = INFO_SUB_CHAPTER;
}
else
{
dsp_sub_new = INFO_SUB_VTIME;
}
InitTempValueState();
dsp_sub_new = GuiSelFuc[!LeftFlag](osd_state->etInfo_sub, INFO_SUB_TITLE, dsp_sub_new);
ctrl.p.info.old = osd_state->etInfo_sub;
ctrl.p.info.new = dsp_sub_new;
#if _APP_CAP_FUNC_DVD_TIMESEARCH_JUDGE_IN_UI //wanglin 20060926
if(dsp_sub_new == INFO_SUB_VTIME)
{
uop.uop_id = UOP_DVDV_TIME_SEARCH;
if(!DvdUopIsValid(&uop))
{
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_WAIT);
ctrl.p.info.new = ctrl.p.info.old;
}
}
#endif
OSD_ChangeDisplay(OSD_CTRL_ELEM_SELECT, &ctrl, SYS_NO_WAIT);
break;
default:
if( GetDvdButtonSelectionState() != DVD_BTN_NONE )
{
GuiDvdvHandleKeysWithBtn(param);
}
else
OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
break;
} /* switch (main display) */
}
/******************************************************************************
* Function name : GuiDvdvScan
* Arguments :
* Return : VOID
* By : Liu renliang
* Description :
******************************************************************************
*/
VOID GuiDvdvDefaultEnter(VOID)
{
Domain_t domain;
MediaInfo_t media;
BYTE2 temp_3dig;
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER // Qian liping 061010
DvdVideoInfo_t DvdInfo;
GetDvdVideoInfo(&DvdInfo);
#endif
temp_3dig = GetTempValue(3);
GetMediaInfoState(&media);
domain = GetDvdDomain();
if( (domain == DVD_DOM_VTSM) || (domain == DVD_DOM_VMGM)|| (domain == DVD_DOM_TT)
#if _APP_CAP_NAV_DVD_VIDEO
||(domain == DVD_DOM_AMGM) || (domain ==DVD_DOM_TT_GR)
#endif
)
{
/* maybe menu domain */
if( GetDvdButtonSelectionState() != DVD_BTN_NONE )
{
if( temp_3dig == 0 )
{
#if _APP_CAP_NAV_DVD_VIDEO
if(GetDiscState() == DVDA_DISC)
UiCmdGeneral( UOP_DVDA_BTN_ACTIVATE );
else
#endif
UiCmdGeneral( UOP_DVDV_BTN_ACTIVATE );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -