📄 clips_runtime.c
字号:
MS_SendOp(MS_OP_MSG_SYS_ZOOM, (UINT32)wZoomLevel);
else
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
#ifdef D_PRESSED_AGAIN
else
{
MS_SendOp(MS_OP_MSG_SYS_ZOOM, (UINT32)wZoomLevel);
}
#endif // D_PRESSED_AGAIN
}
return MS_OP_NONE;
case MS_OP_SUBTITLE:
{
UINT16 wCurrSubtitleNum;
if(ActionEngine_IsMPEG4Loading(FgActionEnginePtr))
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
return MS_OP_NONE;
}
if(!_IsPlayingFileType(CLIPTYPE_FILTER_DIVX))
{
PROHIBIT(MSG_PROHIBIT_INVALID_OPERATION);
return MS_OP_NONE;
}
wCurrSubtitleNum = ActionEngine_CurrItemGetCurrSubtitleNum(FgActionEnginePtr);
if(wCurrSubtitleNum == ERROR_SUBTITLE_NUM)
{
PROHIBIT(MSG_PROHIBIT_NO_SUBTS_AVAIL); // Prohibited
return MS_OP_NONE;
}
#ifdef D_PRESSED_AGAIN
if(SCREENPROC_MessageIsDisplayed(MS_OP_MSG_SYS_SUBTITLE))
#endif
{
UINT16 wAvailableSubNum = ActionEngine_CurrItemGetAvailableSubtitleNum(FgActionEnginePtr);
wCurrSubtitleNum = (wCurrSubtitleNum+1)%(wAvailableSubNum+1);
if (ActionEngine_CurrItemSetSubtitle(FgActionEnginePtr, wCurrSubtitleNum))
{
MS_SEND_OP(MS_OP_MSG_SYS_SUBTITLE, (wCurrSubtitleNum+1)%(wAvailableSubNum+1));
}
else PROHIBIT(MSG_PROHIBIT_NO_SUBTS_AVAIL);
}
#ifdef D_PRESSED_AGAIN
else
{
MS_SendOp(MS_OP_MSG_SYS_SUBTITLE, (UINT32)wCurrSubtitleNum);
}
#endif // D_PRESSED_AGAIN
}
return MS_OP_NONE;
case MS_OP_AUDIO:
{
UINT16 wCurrAudioNum ;
// James 2005/06/19: added.
// If ActionEngine_CurrItemGetAvailableAudioNum() returns zero,
// the test wCurrAudioNum >= (wAvailAudioNum - 1) will fail.
UINT16 wAvailAudioNum ;
if(ActionEngine_IsMPEG4Loading(FgActionEnginePtr))
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
return MS_OP_NONE;
}
if(!_IsPlayingFileType(CLIPTYPE_FILTER_DIVX))
{
PROHIBIT(MSG_PROHIBIT_INVALID_OPERATION);
return MS_OP_NONE;
}
wCurrAudioNum = ActionEngine_CurrItemGetCurrAudioNum(FgActionEnginePtr);
wAvailAudioNum = ActionEngine_CurrItemGetAvailableAudioNum(FgActionEnginePtr);
#ifdef D_PRESSED_AGAIN
if(SCREENPROC_MessageIsDisplayed(MS_OP_MSG_SYS_AUDIO))
#endif // D_PRESSED_AGAIN
{
if(1 >= wAvailAudioNum)
{
#ifdef D_GUI_CLIPS_DISPLAY_AUDIO_NUM_EVEN_ONLY_1_AVAILABLE
MS_SendOp(MS_OP_MSG_SYS_AUDIO, _AudioNumSystemToUser(wCurrAudioNum));
#else
PROHIBIT(MSG_PROHIBIT_NO_MORE_AUDIO);
#endif
}
else
{
// Switching to the next audio stream.
wCurrAudioNum ++;
if (wCurrAudioNum == wAvailAudioNum)
wCurrAudioNum = 0;
if(ActionEngine_CurrItemSetAudio(FgActionEnginePtr, wCurrAudioNum))
MS_SendOp(MS_OP_MSG_SYS_AUDIO, _AudioNumSystemToUser(wCurrAudioNum));
else PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
}
#ifdef D_PRESSED_AGAIN
else
{
MS_SendOp(MS_OP_MSG_SYS_AUDIO, _AudioNumSystemToUser(wCurrAudioNum));
}
#endif // D_PRESSED_AGAIN
}
return MS_OP_NONE;
// TODO: Need to find a good MS_OP for JPEG Transition
case MS_OP_ANGLE: // Jpeg transition
{
UINT8 cTransition ;
if(!_IsPlayingFileType(CLIPTYPE_FILTER_PHOTO)
#ifndef D_GINGER_I86
|| (CoreAPI_IsSimultaneousMode())
#endif //D_GINGER_I86
)
{
PROHIBIT(MSG_PROHIBIT_INVALID_OPERATION);
return MS_OP_NONE;
}
cTransition = ActionEngine_CurrItemGetJpegTrans(FgActionEnginePtr);
#ifdef D_PRESSED_AGAIN
if(SCREENPROC_MessageIsDisplayed(MS_OP_MSG_SYS_JPEG_TRANSITION))
#endif // D_PRESSED_AGAIN
{
cTransition++;
if(eCTE_TransitionEffectsCnt <= cTransition)
cTransition = eCTE_None;
if(ActionEngine_CurrItemSetJpegTrans(FgActionEnginePtr, cTransition))
MS_SendOp(MS_OP_MSG_SYS_JPEG_TRANSITION, (UINT32)cTransition);
else PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
#ifdef D_PRESSED_AGAIN
else
{
MS_SendOp(MS_OP_MSG_SYS_JPEG_TRANSITION, (UINT32)cTransition);
}
#endif // D_PRESSED_AGAIN
}
return MS_OP_NONE;
#if 0
case MS_OP_ANGLE: // Jpeg rotation
if(!_IsPlayingFileType(CLIPTYPE_FILTER_PHOTO))
{
PROHIBIT(MSG_PROHIBIT_INVALID_OPERATION);
return MS_OP_NONE;
}
{
UINT8 cAngle = ActionEngine_CurrItemGetJpegAngle(FgActionEnginePtr);
#ifdef D_PRESSED_AGAIN
if(SCREENPROC_MessageIsDisplayed(MS_OP_MSG_SYS_JPEG_ROTATION))
#endif // D_PRESSED_AGAIN
{
if(eCIO_OrientationCnt > cAngle)
cAngle++;
else
cAngle = eCIO_Original;
if(ActionEngine_CurrItemSetJpegAngle(FgActionEnginePtr, cAngle))
MS_SendOp(MS_OP_MSG_SYS_JPEG_ROTATION, (UINT32) cAngle);
else PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
#ifdef D_PRESSED_AGAIN
else
{
MS_SendOp(MS_OP_MSG_SYS_JPEG_ROTATION, (UINT32) cAngle);
}
#endif // D_PRESSED_AGAIN
}
return MS_OP_NONE;
#endif //if 0
#ifdef AVI_DRM_SUPPORT
case MS_OP_CORE_DIVX_AUTHORIZATION_ERROR: // Fall Through !!!
case MS_OP_CORE_DIVX_RENTAL_EXPIRED: // Fall Through !!!
case MS_OP_CORE_DIVX_RENTAL_CONFIRM: // Fall Through !!!
{
MSO_OBJECT __NEAR* pObjectComponent;
MS_DESCRIPTOR_COMPONENT* pDescriptorComponent;
MS_ComponentClose((MS_DESCRIPTOR_COMPONENT*)&oDRMRentalConfirmDescriptor, FALSE);
MS_ComponentClose((MS_DESCRIPTOR_COMPONENT *)&oDRMRentalExpiredDescriptor, FALSE);
MS_ComponentClose((MS_DESCRIPTOR_COMPONENT*)&oDRMAuthorErrorDescriptor, FALSE);
if (MS_OP_CORE_DIVX_RENTAL_CONFIRM == MsOp)
pDescriptorComponent = (MS_DESCRIPTOR_COMPONENT *)&oDRMRentalConfirmDescriptor;
else if (MS_OP_CORE_DIVX_RENTAL_EXPIRED == MsOp)
pDescriptorComponent = (MS_DESCRIPTOR_COMPONENT *)&oDRMRentalExpiredDescriptor;
else
pDescriptorComponent = (MS_DESCRIPTOR_COMPONENT *)&oDRMAuthorErrorDescriptor;
// TODO: close the possible component when open these components. temp fixing
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
pObjectComponent = (MSO_OBJECT __NEAR*)MS_ComponentOpen(pDescriptorComponent, (MSO_CONTAINER __NEAR*)pThis);
MS_ObjectMove(pObjectComponent, AREA_DRM_CERTI_X, AREA_DRM_CERTI_Y);
#ifdef D_GUI_SINGLE_LINE_COMPONENT
//switch to runtime layout
OSDTurnOff();
usleep(10000);
MS_MenuSetOsdLayout((MS_DESCRIPTOR_MENU*)MS_MenuGetActiveMenuId());
VPU_SetOSDStatus(VPU_OSD_STATUS_START_E);
#endif // D_GUI_SINGLE_LINE_COMPONENT
MS_DisplayAddObject(pObjectComponent);
return MS_OP_NONE;
}
#endif //AVI_DRM_SUPPORT
case MS_OP_PAUSE:
{
// Avoid step command in jpeg
if((eClipType_JPEG == ActionEngine_GetFileType(FgActionEnginePtr, ActionEngine_GetActiveItem(FgActionEnginePtr))
&& (PST_PAUSE == ActionEngine_GetPlayState(FgActionEnginePtr))))
return MS_OP_NONE;
}
break;
#ifdef D_GUI_COMPONENT_SEARCH
case MS_OP_SEARCH:
{
if(ActionEngine_IsMPEG4Loading(FgActionEnginePtr))
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
return MS_OP_NONE;
}
if((CLIPTYPE_MP3 | CLIPTYPE_CDDA | CLIPTYPE_FILTER_MOVIE) & (1 << ActionEngine_GetPlayingFileType(FgActionEnginePtr)))
{
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
OSEARCH_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_SEARCH_RUNTIME_X, AREA_SEARCH_RUNTIME_Y);
}
else
PROHIBIT(MSG_PROHIBIT_SEARCH_NOT_ALLOWED);
}
return MS_OP_NONE;
#endif //D_GUI_COMPONENT_SEARCH
#ifdef D_GUI_COMPONENT_VOLUME_CONTROL
//Leon.He_0106_06: open volume component in clips menu when press volume up and down also
case MS_OP_VOLUME:
case MS_OP_VOLUME_UP:
case MS_OP_VOLUME_DOWN:
{
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
OVolume_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_PROLOGICII_RUNTIME_X, AREA_PROLOGICII_RUNTIME_Y);
return MS_OP_NONE;
}
#endif //D_GUI_COMPONENT_VOLUME_CONTROL
#ifdef D_GUI_PROLOGICII_COMPONENT
case MS_OP_PROLOGIC:
{
if( CoreAPI_IsMenuAllowedProLogicII())
{
MSO_OBJECT __NEAR *pObjectProLogicII;
// TODO:Close other pop up object first.
pObjectProLogicII = MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)pThis, (MS_DESCRIPTOR*)&oProLogicIIDescriptor);
if (NULL == pObjectProLogicII)
{
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
pObjectProLogicII = OProLogicII_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_PROLOGICII_RUNTIME_X, AREA_PROLOGICII_RUNTIME_Y);
}
}
else
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
return MS_OP_NONE;
}
#endif //D_GUI_PROLOGICII_COMPONENT
#ifdef INTERNAL_KARAOKE
case MS_OP_KARAOKE:
{
// TODO: Move this test in CoreAPI_IsMenuAllowedKaraoke
UINT16 wActiveItem = ActionEngine_GetActiveItem(FgActionEnginePtr);
UINT16 wFileType = ActionEngine_GetFileType(FgActionEnginePtr, wActiveItem);
if(eClipType_MPEG == wFileType)
{
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
if(NULL == OKARAOKE_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_KARAOKE_RUNTIME_X, AREA_KARAOKE_RUNTIME_Y))
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
else
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
return MS_OP_NONE;
#endif // INTERNAL_KARAOKE
#ifndef D_GUI_ITEM_ACCESS
//prohibit the following keys at the end of run time
case MS_OP_0:
case MS_OP_1:
case MS_OP_2:
case MS_OP_3:
case MS_OP_4:
case MS_OP_5:
case MS_OP_6:
case MS_OP_7:
case MS_OP_8:
case MS_OP_9:
#endif //D_GUI_ITEM_ACCESS
case MS_OP_CLEAR:
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
return MS_OP_NONE;
#ifdef D_GUI_COMPONENT_BRIGHTNESS_EDGE_CONTROLLER
case MS_OP_BRIGHTNESS_EDGE_CONTROL:
{
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
OBrightnessEdge_OpenAtPos((MSO_CONTAINER __NEAR * )pThis, DEFAULT_POSITION, DEFAULT_POSITION);
return MS_OP_NONE;
}
#endif//D_GUI_COMPONENT_BRIGHTNESS_EDGE_CONTROLLER
#ifdef D_GUI_ITEM_ACCESS
#ifdef D_10P_KEY
case MS_OP_10P:
#endif
case MS_OP_0: // Fall Through
case MS_OP_1: // Fall Through
case MS_OP_2: // Fall Through
case MS_OP_3: // Fall Through
case MS_OP_4: // Fall Through
case MS_OP_5: // Fall Through
case MS_OP_6: // Fall Through
case MS_OP_7: // Fall Through
case MS_OP_8: // Fall Through
case MS_OP_9:
#ifdef D_GUI_COMPONENT_SEARCH_DISPLAY
case MS_OP_DISPLAY:
if(ActionEngine_IsMPEG4Loading(FgActionEnginePtr)
||(CoreAPI_IsFileLoading() && eClipType_JPEG == CoreAPI_GetCurrentClipType()))
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
else
{
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
if ((MsOp >= MS_OP_1) && (MsOp <= MS_OP_9))
{
MSO_OBJECT __NEAR* pTSWnd = OSearch_Display_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_DISPLAY_X, AREA_DISPLAY_Y, TRUE);
MS_SendOperation(pTSWnd, MsOp, lParam);
}
else
OSearch_Display_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_DISPLAY_X, AREA_DISPLAY_Y, FALSE);
}
return MS_OP_NONE;
#else
{
#ifdef D_10P_KEY
UINT16 cValue = MS_OperationDigitKeyToValue(MsOp);
if(cValue>CoreAPI_GetUiItemIndexTotal())
{
return MS_OP_NONE;
}
#endif
if(ActionEngine_IsMPEG4Loading(FgActionEnginePtr)
||(CoreAPI_IsFileLoading() && eClipType_JPEG == CoreAPI_GetCurrentClipType()))
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
return MS_OP_NONE;
}
MS_SendOperation((MSO_OBJECT __NEAR*)MS_GetParentPtr(pThis), MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
MS_ComponentOpen((MS_DESCRIPTOR_COMPONENT*)&DescriptorItemAccess, (MSO_CONTAINER __NEAR * )pThis);
MS_SendOperation(pThis, MsOp, PARAM_ITEM_ACCESS_START_NEW_EDITION);
return MS_OP_NONE;
}
#endif//D_GUI_COMPONENT_SEARCH_DISPLAY
#endif//D_GUI_ITEM_ACCESS
default:
break;
}
return MsOp;
}
STATIC BOOL _IsPlayingFileType (CLIPTYPE wRequestType)
{
if ((wRequestType)&(1 << ActionEngine_GetPlayingFileType(FgActionEnginePtr)))
return TRUE;
else
return FALSE;
}
/***************************************************************************************
* Operation functions
****************************************************************************************/
#ifdef D_GUI_ITEM_ACCESS
static MS_OP _ItemAccessComponentOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
switch(MsOp)
{
case MS_OP_INIT:
MS_ComponentInitFocus((MSO_COMPONENT __NEAR*)pThis);
break;
default :
break;
}
return MS_ComponentBasicOperation(pThis, MsOp, lParam);
}
/***************************************************************************************
* Utility functions
****************************************************************************************/
#pragma argsused
static void _RuntimeItemAccessGetDisplayItem(UINT16* pItem, UINT16* pTotalItems, UINT16* pItemType)
{
if (ActionEngine_IsProgramListObject(FgActionEnginePtr))
{
*pTotalItems = ProgramList_GetListSize((PtrToProgramList)FgActionEnginePtr);
}
else
{
*pTotalItems = DirBrowser_GetTotalNumEntitiesInDir((PtrToDirBrowser)FgActionEnginePtr);
if (!DirBrowser_AmIRoot((PtrToDirBrowser)FgActionEnginePtr))
*pTotalItems +=1;
}
}
#endif //D_GUI_ITEM_ACCESS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -