📄 clips_menu.c
字号:
*
* In : pList = Pointer to List to which items would to be added.
*
* Out : None.
*
* Return : TRUE if successful.
*
* Desc : This is a helper function that adds tools to the toolkit (an object of type
* MSO_VLIST). The aTools array contains a lits of descriptors of the tools
* that are to be added to the toolkit.
****************************************************************************************/
static BOOL _AddTools(MSO_VLIST __NEAR* pList)
{
if(NULL != pList)
{
UINT8 cIndex;
UINT8 cNumItems;
UINT8 cTotalItemsInToolkit = 0;
MSO_OBJECT __NEAR* pObject;
// Get the total number of tools in the toolkit
while(NULL != aTools[cTotalItemsInToolkit])
cTotalItemsInToolkit++;
pList->moParam.mwTotalItems = cTotalItemsInToolkit;
cNumItems = MIN(pList->moParam.mcNumVisibleItems, (pList->moParam.mwTotalItems - pList->moParam.mwFirstDisplayItem));
for(cIndex = 0; cIndex < cNumItems; cIndex++)
{
pObject = OVLIST_CreateAndAppendItem(pList, aTools[pList->moParam.mwFirstDisplayItem + cIndex]);
MS_SendOperation(pObject, MS_OP_OPEN, 0);
MS_SendOperation(pObject, MS_OP_INIT, 0);
}
// The purpose of the object represented by oToolkitValueVScrollListDescriptor descriptor is to display available list of values for a choice.
// For example, a list of file types for the "Filter" choice.
pObject = MS_CreateObject(pList, &oToolkitValueVScrollListDescriptor);
MS_SendOperation(pObject, MS_OP_OPEN, 0);
MS_SendOperation(pObject, MS_OP_INIT, 0);
return TRUE;
}
return FALSE;
}
/***************************************************************************************
* Function : _BrowserItemAccessGetDisplayItem
*
* In : pThis
*
* Out : pItem
* pTotalItems
* pItemType
*
* Return :
*
* Desc : This is a helper function that returns pointer to the currently active (focused)
* page in a book.
****************************************************************************************/
#ifdef D_GUI_ITEM_ACCESS
static void _BrowserItemAccessGetDisplayItem(UINT16* pItem, UINT16* pTotalItems, UINT16* pItemType)
{
MSO_OBJECT __NEAR* pList ;
UINT32 mwItemandItemType;
pList = MS_FindDescendant((MSO_CONTAINER __NEAR*)gpScreen, &oBrowserVListDescriptor );
MS_SendOperation(pList, MS_OP_MENU_GET_ITEM_ACCESS, (UINT32)&mwItemandItemType);
* pItem = _GetCurrentItemFromParam(mwItemandItemType);
*pItemType = _GetItemTypeFromParam(mwItemandItemType);
MS_SendOperation(pList, MS_OP_MENU_GET_ACCESS_TOTAL_ITEMS, (UINT32)pTotalItems);
}
#endif //D_GUI_ITEM_ACCESS
/***************************************************************************************
* Function : _GetActivePage
*
* In : None
*
* Out : None.
*
* Return : Pointer to the page that is currently focused.
*
* Desc : This is a helper function that returns pointer to the currently active (focused)
* page in a book.
****************************************************************************************/
static MSO_PAGE __NEAR* _GetActivePage(void)
{
MSO_OBJECT __NEAR* pObjectBook = MS_FindDescendant(gpScreen, &oBrowserBookDescriptor);
MSO_OBJECT __NEAR* pObjectPage;
if (NULL != pObjectBook)
{
pObjectPage = MS_GetObjectListPtr(pObjectBook);
while(NULL != pObjectPage)
{
if(MS_IsSelected(pObjectPage))
break;
pObjectPage = pObjectPage->mpNext;
}
return (MSO_PAGE __NEAR*)pObjectPage;
}
return (MSO_PAGE __NEAR*)NULL;
}
/***************************************************************************************
* Function : _GetProgramPage
*
* In : None
*
* Out : None.
*
* Return : Pointer to the program page.
*
* Desc : This is a helper function that returns pointer to the page that contains
* the program list.
****************************************************************************************/
#ifdef D_GUI_TOOLKIT_ADD_PROGRAM
static MSO_PAGE __NEAR* _GetProgramPage(void)
{
MSO_OBJECT __NEAR* pBook = MS_FindDescendant(gpScreen, &oBrowserBookDescriptor);
MSO_OBJECT __NEAR* pObject = MS_GetObjectListPtr(pBook);
while(NULL != pObject)
{
if(INVALID_DEVICEID == _GetPageDeviceId(pObject))
break;
pObject = pObject->mpNext;
}
return (MSO_PAGE __NEAR*)pObject;
}
#endif // D_GUI_TOOLKIT_ADD_PROGRAM
/***************************************************************************************
* Function : _GetMsoClipsMenu
*
* In : None.
*
* Out : None.
*
* Return : Pointer to the MSO_CLIPS_MENU object.
*
* Desc : This is a helper function that returns pointer to the clips menu object.
****************************************************************************************/
MSO_CLIPS_MENU __NEAR* _GetMsoClipsMenu(void)
{
return (MSO_CLIPS_MENU __NEAR*)MS_FindDescendant(gpScreen, &oClipsMenuDescriptor);
}
/***************************************************************************************
* Function : _AddFilterValues
*
* In : pList = Pointer to a MSO_VLIST that will display the available
* list of values.
* pChoice = Pointer to the MSO_CHOICE object that contains
* a list of values that would be displayed in the list.
*
* Out : None.
*
* Return : TRUE if successful.
*
* Desc : Adds items to the value list (oToolkitValueVListDescriptor). The name/value for the items are
* taken from the FilterValueTable table.
****************************************************************************************/
static BOOL _AddFilterValues(MSO_VLIST __NEAR* pList, MSO_CHOICE __NEAR* pChoice)
{
if((NULL != pChoice) && (NULL != pList))
{
UINT8 cIndex;
UINT8 cNumItems;
MSO_LISTITEM __NEAR* pListItem;
MS_DESCRIPTOR_CHOICE* pChoiceDescriptor = (MS_DESCRIPTOR_CHOICE*)MS_GetDescriptorPtr(pChoice);
pList->moParam.mwTotalItems = pChoiceDescriptor->mcTotalValues;
cNumItems = MIN(pList->moParam.mcNumVisibleItems, (pList->moParam.mwTotalItems - pList->moParam.mwFirstDisplayItem));
for(cIndex = 0; cIndex < cNumItems; cIndex++)
{
pListItem = (MSO_LISTITEM __NEAR*)OVLIST_CreateAndAppendItem(pList, pChoiceDescriptor->mpDescriptorValue);
MS_SendOperation((MSO_OBJECT __NEAR*)pListItem, MS_OP_OPEN, 0);
pListItem->moParam.mwOsdMsgIndex = pChoiceDescriptor->mpData[(pList->moParam.mwFirstDisplayItem + cIndex)].mwOsdMsgIndex;
pListItem->moParam.mwValue = pChoiceDescriptor->mpData[(pList->moParam.mwFirstDisplayItem + cIndex)].mwValue;
MS_SendOperation((MSO_OBJECT __NEAR*)pListItem, MS_OP_INIT, 0);
}
return TRUE;
}
return FALSE;
}
/***************************************************************************************
* Function : _IsRuntimeRequired
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
static BOOL _IsRuntimeRequired(UINT16 wFileType)
{
if (_IsFileTypeVideo(wFileType))
return 1;
return 0;
}
/***************************************************************************************
* Function : _IsRuntimeActive
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
static BOOL _IsRuntimeActive(void)
{
MSO_OBJECT __NEAR* pObjectRuntime = MS_FindDescendant(_GetMsoClipsMenu(), &oDescriptorClipsRuntime);
if (MS_IsFocused(pObjectRuntime))
return 1;
return 0;
}
/***************************************************************************************
* Function : _IsBrowserActive
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
#ifdef D_GUI_ITEM_ACCESS
static BOOL _IsBrowserActive(void)
{
MSO_OBJECT __NEAR* pObjectBrowser = MS_FindDescendant(_GetMsoClipsMenu(), &oBrowserDescriptor);
if (MS_IsFocused(pObjectBrowser))
return 1;
return 0;
}
#endif
#ifdef D_JPEG_DIGEST_SUPPORT
/***************************************************************************************
* Function : _IsDigestActive
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
static BOOL _IsDigestActive(void)
{
MSO_OBJECT __NEAR* pObjectDigest = MS_FindDescendant(_GetMsoClipsMenu(), &oDescriptorClipsDigest);
if (MS_IsFocused(pObjectDigest))
return 1;
return 0;
}
#endif //#ifdef D_JPEG_DIGEST_SUPPORT
/***************************************************************************************
* Function : _SwitchToRuntime
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
static MSO_OBJECT __NEAR* _SwitchToRuntime(void)
{
MSO_OBJECT __NEAR* pMenu = (MSO_OBJECT __NEAR*)_GetMsoClipsMenu();
MSO_OBJECT __NEAR* pObjectRuntime = MS_FindDescendant(pMenu, &oDescriptorClipsRuntime);
MSO_OBJECT __NEAR* pObjectHelp = MS_FindDescendant(pMenu, &oHelpTextDescriptor);
#ifdef D_GINGER_I96
#ifdef OSD_ALLOW_ONLY_BIG_OSD_BUFF_MENUS
OSDSetWriteToBuffProhibited(TRUE);
OSDTurnOff();
#endif // OSD_ALLOW_ONLY_BIG_OSD_BUFF_MENUS
#endif //D_GINGER_I96
if (!MS_IsFocused(pObjectRuntime))
{
MS_SendOperation(pMenu, MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
MS_ScreenSetFocusObject(pObjectRuntime);
if(TRUE == _PlayJPEGIndefinitely(_GetMsoClipsMenu()))
{
CoreAPI_SetPresentationTime(eClipType_JPEG, PLAY_INDEFINITELY);
_PlayJPEGIndefinitely(((MSO_CLIPS_MENU __NEAR*)pMenu)) = FALSE;
}
else
{
CoreAPI_SetPresentationTime(eClipType_JPEG, PHOTO_PRESENTATION_TIME);
}
MS_SetInvisible(pObjectHelp);
MS_DisplayObject(pMenu);
}
return pObjectRuntime;
}
#ifdef D_JPEG_DIGEST_SUPPORT
/***************************************************************************************
* Function : _SwitchToDigest
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
void _SwitchToDigest(void)
{
MSO_OBJECT __NEAR* pMenu = (MSO_OBJECT __NEAR*)_GetMsoClipsMenu();
MSO_OBJECT __NEAR* pObjectHelp = MS_FindDescendant(pMenu, &oHelpTextDescriptor);
CoreAPI_SetClipWorkingMode(CLIP_WORKING_MODE_DIGEST);
MS_SetInvisible(pObjectHelp);
MS_DisplayObject(pMenu);
}
#endif
/***************************************************************************************
* Function : _SwitchToBrowser
*
* In :
*
* Out :
*
* Desc :
*
*
****************************************************************************************/
static MSO_OBJECT __NEAR* _SwitchToBrowser(void)
{
MSO_OBJECT __NEAR* pMenu = (MSO_OBJECT __NEAR*)_GetMsoClipsMenu();
MSO_OBJECT __NEAR* pObjectBrowser = MS_FindDescendant(pMenu, &oBrowserDescriptor);
MSO_OBJECT __NEAR* pObjectHelp = MS_FindDescendant(pMenu, &oHelpTextDescriptor);
if (!MS_IsFocused(pObjectBrowser))
{
MS_SendOperation(pMenu, MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
MS_ScreenSetFocusObject(pObjectBrowser);
MS_ClearInvisible(pObjectHelp);
MS_DisplayAddObject(pMenu);
}
return pObjectBrowser;
}
#ifdef D_CD_GRAPHIC_ENABLED
//
static void _SwitchBrowserGraphicView(MSO_OBJECT __NEAR* pThis, BOOL bGraphicViewOn)
{
MS_PARAM_BROWSER* poBrowserParam = &(((MSO_BROWSER __NEAR*)pThis)->moParam);
if (bGraphicViewOn)
{
if(poBrowserParam->mbCdgInGraphicView)
return;
poBrowserParam->mbCdgInGraphicView = TRUE;
go_CurrentLayout.m_bOSDBufferNum = OSD_BUFFER_1;
OSDSetPlaneCDGraphic();
}
else
{
if(!poBrowserParam->mbCdgInGraphicView)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -