📄 play_iso.c
字号:
BYTE fgISOAngleKey(void) large
{
BYTE bAglNs = bSharedInfo(SI_AGL_NS);
BYTE bAglNo = bSharedInfo(SI_AGL_NO);
if ((bSharedInfo(SI_PBC_STATE) != SV_PLAY) ||
(bAglNs <= 1) || (bAglNs > 9) || (bAglNo > bAglNs))
{
return (UOP_FAIL);
}
if (bAglNo >= bAglNs)
{
bAglNo = 1;
}
else
{
bAglNo++;
}
vSendUopCmd(UOP_CHANGE_AGL, bAglNo, 0, 0);
return (UOP_OK);
}
BYTE fgISONumKey(void) large
{
/* Check if the number selection is valid is done by FSMENU */
#ifdef BBK_MENU
#ifndef ADO_PLAY_NO_DIR
/*10/17am*/ if ((bSharedInfo(SI_JPG_MODE)==JPEGMOD_DIGEST) // megaa patch 03/03/06, reopen
||(bSharedInfo(SI_DISC_TYPE) == SV_PCD))
#else
if (bSharedInfo(SI_JPG_MODE)==JPEGMOD_DIGEST||fgFlCheckStatus(FL_STATUS_IN_MEMU)) // megaa patch 03/03/06, reopen
#endif
vChangeInputState(INPUT_STATE_FILE_SELECT, TRUE);
#endif
//10/17am
else
{
vOsdShowError(SV_ERR_INPUT_INVALID, OSD_TIMEOUT_SHORT);
}
//10/17am
return (UOP_OK);
}
BYTE fgISODirKey(void) large
{
BYTE bParm;
switch(_bIRKey)
{
case IR_UP:
bParm = SV_UP;
break;
case IR_DOWN:
bParm = SV_DOWN;
break;
case IR_LEFT:
bParm = SV_LEFT;
break;
case IR_RIGHT:
bParm = SV_RIGHT;
break;
case IR_ENTER:
bParm = SV_ACTIVATE;
break;
default:
return (UOP_FAIL);
}
vSendUopCmd(UOP_ARROW_BTN, bParm, 0, 0);
return (UOP_OK);
}
// *********************************************************************
// Key map function
// *********************************************************************
BYTE fgISOPlayKey(void) large
{
vSendUopCmd(UOP_PLAY, 0, 0, 0);
return (UOP_OK);
}
BYTE fgISOPauseKey(void) large
{
#ifdef PLAYER_FLMENU
BYTE bPbcState = bFlGetFgPbcState();
#else
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif
if (!fgIsDiscPlay(bPbcState))
{
vOsdShowError(SV_ERR_PLAYBACK_ONLY, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
if (fgIsInputStateValid(INPUT_STATE_PCD_ZOOM))
{
vOsdShowError(OSD_MSG_ERR_INPUT_INVALID, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
//if (bSharedInfo(SI_PBC_STATE) == SV_PAUSE)
if (bPbcState == SV_PAUSE)
{
vSendUopCmd(UOP_PLAY, 0, 0, 0);
}
else
{
vSendUopCmd(UOP_PAUSE, 0, 0, 0);
}
return (UOP_OK);
}
BYTE fgISOStopKey(void) large
{
#ifdef BBK
vOsdPosClear(OSD_POS_PLAY_STATUS);
#endif
vSendUopCmd(UOP_STOP, 0, 0, SV_STOP_FORCE); //Vincent 0->sv_stop_force @03-15-04
return (UOP_OK);
}
BYTE fgISONextKey(void) large
{
vSendUopCmd(UOP_NEXT, 0, 0, 0);
return (UOP_OK);
}
BYTE fgISOPrevKey(void) large
{
vSendUopCmd(UOP_PREVIOUS, 0, 0, 0);
return (UOP_OK);
}
BYTE fgISOA2BKey(void) large
{
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
if (!fgIsDiscPlay(bPbcState))
{
vOsdShowError(SV_ERR_PLAYBACK_ONLY, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
vSendUopCmd(UOP_A_TO_B, 0, 0, 0);
return (UOP_OK);
}
BYTE fgISOResumeKey(void) large
{
vSendUopCmd(UOP_RESUME, 0, 0, 0);
return (UOP_OK);
}
BYTE fgISOMarkKey(void) large
{
return (UOP_OK);
}
BYTE fgISODigestKey(void) large
{
return (UOP_OK);
}
#ifdef SIMPLE_ZOOM_MODE
#ifdef SUPPORT_ZOOM_13
#define ISO_ZOOM_USED_MODE 11
static code BYTE pbIsoZoomMode[ISO_ZOOM_USED_MODE] = {
SV_ZOOM_12,
SV_ZOOM_13,
SV_ZOOM_15,
SV_ZOOM_2,
SV_ZOOM_25,
SV_ZOOM_3,
SV_ZOOM_35,
SV_ZOOM_4,
SV_ZOOM_21,
SV_ZOOM_31,
SV_ZOOM_41
};
#else
#define ISO_ZOOM_USED_MODE 6
static code BYTE pbIsoZoomMode[ISO_ZOOM_USED_MODE] = {
SV_ZOOM_2,
SV_ZOOM_3,
SV_ZOOM_4,
SV_ZOOM_21,
SV_ZOOM_31,
SV_ZOOM_41
};
#endif
#endif /* SIMPLE_ZOOM_MODE */
BYTE fgISOZoomInKey(void) large
{
BYTE bZoom;
#ifdef SIMPLE_ZOOM_MODE
BYTE bIdx;
#endif
#ifdef ZOOM_NO_SLOW_STEP
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif
if (fgFlCheckStatus(FL_STATUS_IN_MENU))
{
vOsdShowError(SV_ERR_INVALID_OPERATION, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
else if (fgFlCheckStatus(FL_STATUS_IN_JPEG))
{
vChangeInputState(INPUT_STATE_PCD_ZOOM, FALSE);
return (UOP_OK);
}
#ifdef ZOOM_NO_SLOW_STEP
else if (fgFlCheckStatus(FL_STATUS_IN_MPEG))
{
if ((bPbcState == SV_SF) || (bPbcState == SV_SR) ||
(bPbcState == SV_STEP) || (bPbcState == SV_STEP_BACK))
{
vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
}
#endif
bZoom = bSharedInfo(SI_ZOOM_SWITCH);
#ifdef ENABLE_ZOOM_USER_MODE
if (bZoom == SV_ZOOM_USR)
{
vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_OFF, 0, 0);
return (UOP_OK);
}
#endif
// get next zoom mode
#ifdef SIMPLE_ZOOM_MODE
for (bIdx = 0; bIdx < ISO_ZOOM_USED_MODE; bIdx++)
{
if (pbIsoZoomMode[bIdx] > bZoom)
{
bZoom = pbIsoZoomMode[bIdx];
break;
}
}
if (bIdx == ISO_ZOOM_USED_MODE)
{
bZoom = SV_ZOOM_IN_MAX + 1;
}
#else
bZoom += 1;
#endif
if (bZoom > SV_ZOOM_IN_MAX)
{
#ifdef ZOOM_IN_OUT_SAME_KEY
fgSetPlayPostKey(IR_ZOOM_OUT);
return(UOP_OK);
#else
bZoom = SV_ZOOM_OFF;
#endif
}
else if (bZoom < SV_ZOOM_IN_MIN)
{
bZoom = SV_ZOOM_IN_MIN;
}
vSendUopCmd(UOP_ZOOM_IN, bZoom, 0, 0);
return (UOP_OK);
}
BYTE fgISOZoomOutKey(void) large
{
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
BYTE bZoom;
#ifdef SIMPLE_ZOOM_MODE
BYTE bIdx;
#endif
#ifdef ZOOM_NO_SLOW_STEP
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif
if (fgIsIsoItemAOnly(bItemType))
{
vOsdShowError(SV_ERR_DISC_NOT_SUPPORT, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
else if (bItemType == SV_ISO_JPG)
{
vChangeInputState(INPUT_STATE_PCD_ZOOM, FALSE);
return (UOP_OK);
}
#ifdef ZOOM_NO_SLOW_STEP
else if (fgIsIsoItemAV(bItemType))
{
if ((bPbcState == SV_SF) || (bPbcState == SV_SR) ||
(bPbcState == SV_STEP) || (bPbcState == SV_STEP_BACK))
{
vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
}
#endif
bZoom = bSharedInfo(SI_ZOOM_SWITCH);
#ifdef ENABLE_ZOOM_USER_MODE
if (bZoom == SV_ZOOM_USR)
{
vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_OFF, 0, 0);
return (UOP_OK);
}
#endif
// get next zoom mode
#ifdef SIMPLE_ZOOM_MODE
for (bIdx = 0; bIdx < ISO_ZOOM_USED_MODE; bIdx++)
{
if (pbIsoZoomMode[bIdx] > bZoom)
{
bZoom = pbIsoZoomMode[bIdx];
break;
}
}
if (bIdx == ISO_ZOOM_USED_MODE)
{
bZoom = SV_ZOOM_OUT_MAX + 1;
}
#else
bZoom += 1;
#endif
if (bZoom > SV_ZOOM_OUT_MAX)
{
bZoom = SV_ZOOM_OFF;
}
else if (bZoom < SV_ZOOM_OUT_MIN)
{
bZoom = SV_ZOOM_OUT_MIN;
}
vSendUopCmd(UOP_ZOOM_IN, bZoom, 0, 0);
return (UOP_OK);
}
#ifdef ENABLE_ZOOM_USER_MODE
BYTE fgISOZoomUsrKey(void) large
{
BYTE bItemType = bSharedInfo(SI_ISO_ITEM_TYPE);
#ifdef ZOOM_NO_SLOW_STEP
BYTE bPbcState = bSharedInfo(SI_PBC_STATE);
#endif
if (fgIsIsoItemAV(bItemType))
{
#ifdef ZOOM_NO_SLOW_STEP
if ((bPbcState == SV_SF) || (bPbcState == SV_SR) ||
(bPbcState == SV_STEP) || (bPbcState == SV_STEP_BACK))
{
vOsdShowError(SV_ERR_NORMAL_PLAY_ONLY, OSD_TIMEOUT_SHORT);
return (UOP_OK);
}
#endif
}
else
{
// not supportted
return (UOP_OK);
}
if (bSharedInfo(SI_ZOOM_SWITCH) != SV_ZOOM_USR)
{
vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_USR, ZOOM_USR_H_BASE, ZOOM_USR_V_BASE);
}
else
{
vSendUopCmd(UOP_ZOOM_IN, SV_ZOOM_OFF, 0, 0);
}
return (UOP_OK);
}
#endif /* ENABLE_ZOOM_USER_MODE */
#ifdef MPEG4_TXT_SP
BYTE fgISOSubtitleKey(void) large //Hide and display subtitle //guosong add
{
#ifdef DEBUGE_LIKE
DRS232LogS("-s4\n");
DRS232LogB(_bSubtitleState,0,0,0);
#endif
switch (_bSubtitleState)
{
case SUBTITLE_OFF:
vCreateWB(WB_MP4_SP, TRUE);
vSetWBTcColor(WB_MP4_SP);
vSetMsgCol4(WB_MP4_SP, 0, 0, 0, 2);
vSetTransEn(WB_MP4_SP, 0);
vEnableWB(WB_MP4_SP);
_bSubtitleState = SUBTITLE_ON;
vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
vOsdPosShow(OSD_POS_SUBTITLE, OSD_MSG_SUBTITLE_SETTING, OSD_TIMEOUT);
break;
default:
vDeleteWB(WB_MP4_SP);
_bSubtitleState = SUBTITLE_OFF;
vOsdShowSubtitle(OSD_SUBTITLE_CLEAR, 0, 0, 0, 0, 0);
vOsdPosShow(OSD_POS_SUBTITLE, OSD_MSG_SUBTITLE_OFF, OSD_TIMEOUT);
break;
}
return (UOP_OK);
}
#endif
#if 0 //MTK_guosong @04-16-04
BYTE fgIsoSpKey(void) large
{
BYTE bTmp1 = bSharedInfo(SI_SPST_NO);
BYTE bTmp2 = bSharedInfo(SI_SPST_NS);
if (bTmp1 < bTmp2)
vSendUopCmd(UOP_CHANGE_SPSTN, bTmp1, 0, 0);
return (UOP_OK);
}
#else
//guosong
BYTE fgISOSpKey(void) large
{
BYTE bTmp1 = bSharedInfo(SI_SPST_NO);
BYTE bTmp2 = bSharedInfo(SI_SPST_NS);
#if 0//def SUPPORT_WAIXIAO
if(fgIsIsoPlay()&&(bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI))
{
bTmp2=0x01;
vSetSharedInfo(SI_SPST_NS, bTmp2);
}
#endif
#if 0 //Vincent @04-28-04 def MPEG4_TXT_SP
_bPressSbKey = 1;
#endif
if (!fgFlCheckStatus(FL_STATUS_IN_MPEG))
return (UOP_OK);
#ifdef DEBUGE_LIKE
DRS232LogS("-s1\n");
DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
#endif
if ((bTmp1 & (~0x41)) == 0x3e) // include 0x3e, 0x3f, 0x7e, 0x7f
{
/* take dummy stream as subtitle disabled */
bTmp1 = 0x00;
}
#if 0//def DEBUGE_LIKE
DRS232LogS("-sub\n");
DRS232LogB(bSharedInfo(SI_PBC_STATE),bTmp1,bTmp2,0);
#endif
if ((bSharedInfo(SI_PBC_STATE) != SV_PLAY) ||
//subtitle语言太多或者没有=0,或者到了最后项则出错处理
(bTmp2 > 32) || (bTmp2 == 0) || ((bTmp1 & 0x1f) >= bTmp2))
{
return UOP_FAIL;
}
// ifdef SUPPORT_WAIXIAO
if (bTmp1 & 0x40)
{
if ((bTmp1 & 0x1f) >= bTmp2 - 1) //已经到最后一项了
{
/* turn off sub-picture */
bTmp1 = 0x00;
}
else //没有到最后一项subtitle则继续切换subtitle
{
/* next sp */
bTmp1 = ((bTmp1 & 0x1f) + 1) | 0x40;
}
}
else //重新赋值循环切换
{
bTmp1 = 0x40; /* first stream is 0 */
}
//
#ifdef DEBUGE_LIKE
DRS232LogS("-s2\n");
DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
#endif
vSendUopCmd(UOP_CHANGE_SPSTN, bTmp1, 0, 0);
#ifdef MPEG4_TXT_SP //Add by Tide@08-04-04
_bSbStatus = bTmp1;
#endif
#ifdef DEBUGE_LIKE
DRS232LogS("-s3\n");
DRS232LogB(bSharedInfo(SI_SPST_NO),bTmp1,bTmp2,bSharedInfo(SI_SPST_NS));
#endif
#if 0//def SUPPORT_WAIXIAO
if(fgIsIsoPlay()&&(bSharedInfo(SI_ISO_ITEM_TYPE) == SV_ISO_AVI))
vSetSharedInfo(SI_SPST_NO, bTmp1);
// vSetSharedInfo(SI_SPST_NS, bTmp2);
#endif
return (UOP_OK);
}
#endif
#else // #ifdef SUPPORT_DATA_DISC
#ifdef SIMPLE_ZOOM_MODE
static code BYTE pbIsoZoomMode[] = { 0 };
#endif
void vISOInit(BYTE bType) large
{
BYTE bTmp = pbIsoZoomMode[0];
}
void vISOExit(void) large { }
void vISOFsMenuShow(BYTE bMode) large { }
void vISOFSMenuFilterInit(BYTE fgInit) large { }
BOOL fgISOFSMenuFilterState(void) large { return (FALSE); }
void vISOFSMenuFilterExit(void) large { }
void vISOFileSelectInit(BYTE fgInit) large { }
BOOL fgISOFileSelectState(void) large { return (TRUE); }
void vISOTimeSearchInit(BYTE fgInit) large { }
BOOL fgISOTimeSearchState(void) large { return (TRUE); }
void vISOTimeSearchExit(void) large { }
BYTE bISOHandleUopRet(BYTE bUopId, BYTE bUopRet) large
{
return (UOP_OK);
}
#endif // #ifdef SUPPORT_DATA_DISC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -