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

📄 clips_menu_config.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
📖 第 1 页 / 共 4 页
字号:
	NBR_MENU_COUNT_ITEM_ACCESS,
#endif //D_GUI_ITEM_ACCESS
	NBR_MENU_COUNT_PLAY_HDCD,
	NBR_WINDOW_CONTENTS,
};

static CONST MS_DESCRIPTOR* CONST apWindowContents[NBR_WINDOW_CONTENTS] = {
#ifndef D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR*)&oPlayStateDescriptor,
// TODO: NBR_WINDOW_CONTENTS this macro
#ifdef D_GUI_CLIPS_DISPLAY_OBJECT_PLAY_FILE
	(MS_DESCRIPTOR*)&oPlayFileDescriptor,
#endif //D_GUI_CLIPS_DISPLAY_OBJECT_PLAY_FILE
	(MS_DESCRIPTOR*)&oPlayTimeDescriptor,
#endif // D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR*)&oBrowserVScrollListDescriptor,
	(MS_DESCRIPTOR*)&oToolKitDescriptor,
	(MS_DESCRIPTOR*)&oPreviewWindowDescriptor,
	(MS_DESCRIPTOR*)&oFilePathDescriptor,
#ifdef D_GUI_ITEM_ACCESS
	(MS_DESCRIPTOR*)&oBrowserItemAccessDescriptor,
#endif //D_GUI_ITEM_ACCESS
	(MS_DESCRIPTOR*)&oSpecialMediaTypeDescriptor
};

static CONST MS_DESCRIPTOR_WINDOW oWindowDescriptor =
{// MS_DESCRIPTOR_CONTAINER
	{// MS_DESCRIPTOR
		sizeof(MSO_WINDOW),
		MS_NAV_NULL,
		MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_WINDOW_X, AREA_WINDOW_Y, AREA_WINDOW_W, AREA_WINDOW_H
		},
		OPAGE_WindowOperation,
		OPAGE_WindowFillOSDSeg,
		mpParamNull
	},
	(CONST MS_DESCRIPTOR**)apWindowContents,
	NBR_WINDOW_CONTENTS,
};

/***************************************************************************************
*	Descriptor 	: 	oBrowserPageDescriptor
*
*	Purpose	 	:	The browser page object
 ****************************************************************************************/
static CONST MS_PARAM_BROWSER_PAGE_INIT oParamBrowserPageInit =
{
	{
		0		//mwPageIndex
	},
	{
		0xFFFF,				// mwDeviceId;
		CLIPTYPE_FILTER_DEFAULT, 	// mwFileTypes; Show all files by default.
		NULL,				// mpSrcActionEngine;
	},
};

static CONST MS_DESCRIPTOR_BROWSER_PAGE oBrowserPageDescriptor =
{
	{// MS_DESCRIPTOR_CONTAINER
		{// MS_DESCRIPTOR
			sizeof(MSO_BROWSER_PAGE),
			MS_NAV_CONTAINER_WRAP_LR,
			MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
			{
				AREA_PAGE_X, AREA_PAGE_Y, AREA_PAGE_W, AREA_PAGE_H
			},
			_BrowserPageOperation,
			mpfFillOsdSegNull,
			(UINT8*)&oParamBrowserPageInit
		},
		maContentsNull,
		mwNbrContentsNull,
	},
#ifdef D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR_TABBTN*)&oTabBtnDescriptor,
#else // D_GUI_CLIPS_MULTIPAGE
	NULL, // No tab for a single page solution.
#endif // D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR_WINDOW*)&oWindowDescriptor,
};

/***************************************************************************************
*	Descriptor 	: 	oBrowserBookDescriptor
*
*	Purpose	 	:	The browser book is the container for browser pages. Only one page is active
*					at any time. Each page is composed of a tab button always visible and a window,
*					which is visible when the page is active
 ****************************************************************************************/
static CONST MS_DESCRIPTOR_BROWSER_BOOK oBrowserBookDescriptor =
{// MS_DESCRIPTOR_CONTAINER
	{// MS_DESCRIPTOR
		sizeof(MSO_BROWSER_BOOK),
		MS_NAV_NULL,
		MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_BOOK_X, AREA_BOOK_Y, AREA_BOOK_W, AREA_BOOK_H
		},
		_BookOperation,
		mpfFillOsdSegNull,
		mpParamNull
	},
	maContentsNull,
	mwNbrContentsNull,
};

/***************************************************************************************
*	Descriptor 	: 	oDescriptorPopupContainer
*
*	Purpose	 	:	The Pop up container descriptor.
 ****************************************************************************************/
static CONST MS_DESCRIPTOR_CONTAINER oDescriptorPopupContainer =
{
	{
		sizeof(MSO_CONTAINER),
		MS_NAV_NULL,
		MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_POPUP_X,
			AREA_POPUP_Y,
			AREA_POPUP_W,
			AREA_POPUP_H,
		},
		_PopupContainerOperation,
		mpfFillOsdSegNull,
		mpParamNull,
	},
	maContentsNull,
	mwNbrContentsNull,
};
/***************************************************************************************
*	Descriptor 	: 	oBrowserDescriptor
*
*	Purpose	 	:	The browser book is the container for browser pages. Only one page is active
*					at any time. Each page is composed of a tab button always visible and a window,
*					which is visible when the page is active
 ****************************************************************************************/
static CONST MS_DESCRIPTOR_CONTAINER oBrowserDescriptor =
{// MS_DESCRIPTOR_CONTAINER
	{// MS_DESCRIPTOR
		sizeof(MSO_BROWSER),
		MS_NAV_NULL,
		MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_BROWSER_X, AREA_BROWSER_Y, AREA_BROWSER_W, AREA_BROWSER_H
		},
		_BrowserOperation,
		mpfFillOsdSegNull,
		mpParamNull
	},
	maContentsNull,
	mwNbrContentsNull,
};

/***************************************************************************************
*	Descriptor 	: 	oDescriptorClipsDigest
*
*	Purpose	 	:	Descriptor of digest component.
 ****************************************************************************************/
// TODO: remove this to clips or run time menu
#ifdef D_JPEG_DIGEST_SUPPORT

//This descriptor may be no need. which should put into clips menu or run time menu
static CONST MS_DESCRIPTOR_DIGEST_COMPONENT oDescriptorClipsDigest =
{
	{//MS_DESCRIPTOR_CONTAINER
		{//MS_DESCRIPTOR
			sizeof(MSO_DIGEST_COMPONENT),
			MS_NAV_NULL,				
			MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE |MS_ATTR_OSD_LAYER_1, 
			{
				AREA_DIGEST_X,
				AREA_DIGEST_Y,
				AREA_DIGEST_W,
				AREA_DIGEST_H,
			},
			_DigestOperation,
			mpfFillOsdSegNull,
			mpParamNull,
		},
		maContentsNull,
		mwNbrContentsNull
	},
	NULL//(MS_DESCRIPTOR*)&oDescriptorDigestItem
};

#endif//#ifdef D_JPEG_DIGEST_SUPPORT
/***************************************************************************************
*	Descriptor 	: 	oClipsMenuDescriptor
*
*	Purpose	 	:	THE Clips Menu.
 ****************************************************************************************/
enum
{
#ifdef D_GUI_CLIPS_MULTIPAGE
	NBR_MENU_COUNT_WINDOW_BUTTON,
#endif
#ifdef D_GUI_HOME_BUTTON
	NBR_MENU_COUNT_HOME_BUTTON,
#endif
	NBR_MENU_COUNT_HELP_TEXT,
	NBR_MENU_COUNT_MESSAGE_HANDLER,
	NBR_MENU_CONTENTS
};

static CONST MS_DESCRIPTOR* CONST apMenuContents[NBR_MENU_CONTENTS] = {
#ifdef D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR*)&oOpenWindowButtonDescriptor,
#endif // D_GUI_CLIPS_MULTIPAGE
#ifdef D_GUI_HOME_BUTTON
	(MS_DESCRIPTOR*)&oHomeButtonDescriptor,
#endif // D_GUI_HOME_BUTTON
	(MS_DESCRIPTOR*)&oHelpTextDescriptor,
    (MS_DESCRIPTOR*)&oDescriptorMessageHandler
};

#define MALLOC_BYTE_OVERHEAD			8
#define UI_HEAP_BYTE_SIZE				(	(4 * (MALLOC_BYTE_OVERHEAD + MAX(sizeof(ProgramList),sizeof(DirectoryBrowser)))) 	\
										+ (4 * (MALLOC_BYTE_OVERHEAD + sizeof(ListNavigator)))	 	\
										/*+ (1 * (MALLOC_BYTE_OVERHEAD + sizeof(ProgramList)))*/	\
										+(MALLOC_BYTE_OVERHEAD + sizeof(ProgramListTable)) \
										+ (2 * (MALLOC_BYTE_OVERHEAD + (ID3_INDEX_ARRAY_SIZE * sizeof(UINT16)))))

#define UI_HEAP_BYTE_SIZE_INACTIVE		(	(4 * (MALLOC_BYTE_OVERHEAD + MAX(sizeof(ProgramList),sizeof(DirectoryBrowser)))) \
											+(MALLOC_BYTE_OVERHEAD + sizeof(ProgramListTable)) \
										+ (4 * (MALLOC_BYTE_OVERHEAD + sizeof(ListNavigator)))	)


// TODO: Don't use this struct to init.
static CONST MS_PARAM_CLIPS_MENU oClipsMenuParam = {
	FALSE,						// mbJpegHasFinished
	NULL_INDEX,					// Requested clip number.
	INVALID_TIME,					// Requested time index.
	FALSE,						// mbPlayJPEGINdefinitely.
#ifdef D_GUI_TOOLKIT_ADD_RIPPING
	FALSE,						// mbIsRipping.
	0,							// _mcRippingDummy
#endif // D_GUI_TOOLKIT_ADD_RIPPING
};

CONST MS_DESCRIPTOR_CLIPS_MENU oClipsMenuDescriptor =
{
	{// MS_DESCRIPTOR_CONTAINER
		{// MS_DESCRIPTOR
			sizeof(MSO_CLIPS_MENU),
			MS_NAV_CONTAINER_WRAP_UD | MS_NAV_CONTAINER_WRAP_LR,
			MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
			{
				AREA_MENU_X,AREA_MENU_Y,AREA_MENU_W,AREA_MENU_H,
			},
			_MenuOperation,
			mpfFillOsdSegNull,
			(UINT8*)&oClipsMenuParam,
		},
		(CONST MS_DESCRIPTOR**)apMenuContents,
		NBR_MENU_CONTENTS,
	},
#ifdef D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR*)&oOpenWindowButtonDescriptor,
#else // D_GUI_CLIPS_MULTIPAGE
	(MS_DESCRIPTOR*)&oBrowserVListDescriptor,
#endif // D_GUI_CLIPS_MULTIPAGE
	_Layout,
	{
		GUI_MEMPOOL_BYTE_SIZE_LARGE,
		UI_HEAP_BYTE_SIZE,
		UI_HEAP_BYTE_SIZE_INACTIVE
	},
	eStartup
};

/***************************************************************************************
*	Array 		: 	aTools
*
*	Purpose	 	:	Contains an array of pointer to descriptors of the objects that would be
*					added to the toolkit (oToolKitDescriptor).
 ****************************************************************************************/
static CONST MS_DESCRIPTOR* CONST aTools[] = {
	(MS_DESCRIPTOR*)&oFilterChoiceDescriptor,

#ifdef D_GUI_TOOLKIT_ADD_INTRO
	(MS_DESCRIPTOR*)&oIntroButtonDescriptor,
#endif // D_GUI_TOOLKIT_ADD_INTRO

#ifdef D_GUI_TOOLKIT_ADD_SHUFFLE
	(MS_DESCRIPTOR*)&oShuffleChoiceDescriptor,
#endif // D_GUI_TOOLKIT_ADD_SHUFFLE

	(MS_DESCRIPTOR*)&oRepeatChoiceDescriptor,

#ifdef D_GUI_TOOLKIT_ADD_REPEATAB
	(MS_DESCRIPTOR*)&oRepeatABChoiceDescriptor,
#endif // D_GUI_TOOLKIT_ADD_REPEATAB

#ifdef D_GUI_TOOLKIT_ADD_RIPPING
	(MS_DESCRIPTOR*)&oRippingButtonDescriptor,
#endif // D_GUI_TOOLKIT_ADD_RIPPING

#ifdef D_GUI_TOOLKIT_ADD_PROGRAM
	(MS_DESCRIPTOR*)&oProgramButtonDescriptor,
#endif // D_GUI_TOOLKIT_ADD_PROGRAM

#ifdef D_GUI_CLIPS_PLAY_MODE
	(MS_DESCRIPTOR*)&oPlayModeChoiceDescriptor,
#endif// D_GUI_CLIPS_PLAY_MODE

#ifdef D_GUI_CLIPS_EDIT_MODE
	(MS_DESCRIPTOR*)&oEditModeButtonDescriptor,
#endif//D_GUI_CLIPS_EDIT_MODE

#ifdef D_GUI_CLIPS_PROGRAM_VIEW
	(MS_DESCRIPTOR*)&oViewButtonDescriptor,
	(MS_DESCRIPTOR*)&oAddClearProgramBtnDescriptor,
#endif//D_GUI_CLIPS_PROGRAM_VIEW

#if D_SUPPORT_SACD
	(MS_DESCRIPTOR*)&oSwitchSACDLayerButtonDescriptor,
#endif // D_SUPPORT_SACD

	NULL // IMPORTANT : Last item must always be NULL.
};

/***************************************************************************************
*	Descriptor	: 	oToolkitValueVListDescriptor
*
*	Purpose	 	:	An MSO_VLIST that contains an array of tools.
 ****************************************************************************************/
static CONST MS_PARAM_VLIST oToolkitValueVListParam = {
	0, // Total number of items in the list.
	0,// Index of the first item.
	NBR_MSO_LISTITEM_MAX_VISIBLE, // Number of visible items.
	0, // mcItemOffset
	0
};

static CONST MS_DESCRIPTOR_VLIST oToolkitValueVListDescriptor =
{ // Container descriptor start
	{// Descriptor start
		sizeof(MSO_VLIST),
		MS_NAV_CONTAINER_WRAP_UD | MS_NAV_DISABLE_LR | MS_NAV_CONTAINER_GOTO_PREV_FOCUS | MS_NAV_CONTAINER_GOTO_TOP,
		MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_VLIST_SCROLL_SINGLE_ITEM,
		{
		// This object is resized by it parent, so we don't care defining its position and dimensions
			0,0,0,0
		},
		VListOperation,
		mpfFillOsdSegNull,
		(UINT8*)&oToolkitValueVListParam
	},// Descriptor end
	maContentsNull,
	mwNbrContentsNull,
};

/***************************************************************************************
*	Descriptor	: 	oToolkitValueVScrollListDescriptor
*
*	Purpose	 	:	An MSO_VSCROLL_LIST that contain the toolkit and displays the Up/Down arrows
*					if there are more items in the toolkit then can be displayed.
 ****************************************************************************************/
static CONST MS_DESCRIPTOR_VSCROLL_LIST oToolkitValueVScrollListDescriptor =
{
	{ // Container descriptor start
		{ // Descriptor start
			sizeof(MSO_VSCROLL_LIST),
			MS_NAV_CONTAINER_GOTO_PREV_FOCUS,
			MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_1 | MS_ATTR_INVISIBLE | MS_ATTR_VSLIST_DISPLAY_BG_BMP | MS_ATTR_VSLIST_SCROLL_ARROW,
			{
				AREA_TOOLKIT_VALUE_SCROLL_LIST_X,
				AREA_TOOLKIT_VALUE_SCROLL_LIST_Y,
				AREA_TOOLKIT_VALUE_SCROLL_LIST_W,
				AREA_TOOLKIT_VALUE_SCROLL_LIST_H
			},
			_ToolkitValueVScrollListOperation,
			VScrollListFillOSDSeg,
			mpParamNull,
		}, // Descriptor end
		maContentsNull,
		mwNbrContentsNull,
	}, // Container descriptor end
	(MS_DESCRIPTOR_VLIST*)&oToolkitValueVListDescriptor, // mpDescriptorVList
	TOOLKIT_VALUE_SCROLL_LIST_XPADDING, 					// X Padding
	TOOLKIT_VALUE_SCROLL_LIST_YPADDING,					// Y Padding
	CIDX_8, 				// Text color
	BMP_BG_2, 			// Background bitmap
	BMP_BG_PUSHED_1, 	// Scrollbar background bitmap
	BMP_BG_3 			// Scrollbar bitmap
};

#ifdef D_CD_GRAPHIC_ENABLED
static CONST MS_OP aMsOpAllowedInCDG[]=
{
	MS_OP_POWER,
	MS_OP_EJECT, 		
	MS_OP_PLAY,		
	MS_OP_STOP,		
	MS_OP_PAUSE, 		
	MS_OP_SKIPB, 		
	MS_OP_SKIPF, 		
	//MS_OP_FASTB,		
	//MS_OP_FASTF,		
	MS_OP_MUTE,		
	MS_OP_SETUP,		
};
#define NUM_OP_IN_CDG	(sizeof(aMsOpAllowedInCDG)/sizeof(MS_OP))
#endif//D_CD_GRAPHIC_ENABLED

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -