⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clips_menu.c

📁 ZORAN 962/966 SOURCE CODE,DVD chip
💻 C
📖 第 1 页 / 共 5 页
字号:
*
*	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 + -