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

📄 clips_menu_config.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
📖 第 1 页 / 共 4 页
字号:
/****************************************************************************************************
*  Copyright (c) 2005 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: clips_menu_config.c
*
* Description:
* =========
****************************************************************************************************/
/****************************************************************************************************
*	DEFINITION: Private constants 
****************************************************************************************************/

/***************************************************************************************
* 	OSD layout areas definition
****************************************************************************************/
static CONST OSD_LAYOUT_AREA OsdLayoutAreaBrowser = {
	OSD_LAYOUT_AREA_BROWSER_X,
	OSD_LAYOUT_AREA_BROWSER_Y,
	OSD_AREA_END_X(OSD_LAYOUT_AREA_BROWSER_X, OSD_LAYOUT_AREA_BROWSER_W),
	// Quick patch for help text, remove this AREA_HELP_TEXT_H +4)
	OSD_AREA_END_Y(OSD_LAYOUT_AREA_BROWSER_Y, (OSD_LAYOUT_AREA_BROWSER_H + AREA_HELP_TEXT_H +4)),
	OSD_COLOR_PALETTE_BROWER
};

/***************************************************************************************
* 	Objects definition
****************************************************************************************/

/***************************************************************************************
*	Descriptor 	: 	oHelpTextDescriptor
*
*	Purpose	 	:	Displays Navigation help /ID3 information.
 ****************************************************************************************/
enum
{
	//for mp3
	ID3_INDEX_NAME,
	ID3_INDEX_ARTIST,
	ID3_INDEX_ALBUM,
	ID3_INDEX_YEAR,
	ID3_INDEX_TRACK,
	ID3_INDEX_GENRE,
	ID3_INDEX_COMMENT,
	ID3_INDEX_ARRAY_SIZE
};
enum
{
	//for WMA
	WMA_INDEX_TITLE,
	WMA_INDEX_AUTHOR,
	WMA_INDEX_COPYRIGHT,
	WMA_INDEX_DESCRIPTION,	
	WMA_INDEX_ARRAY_SIZE
};

#if (defined (D_OGG_VORBIS) && defined (CLIPS_ACQUIRE_EXTENDED_INFO))
enum
{
	//for OGG
	OGG_INDEX_TITLE,
	OGG_INDEX_ARTIST,
	OGG_INDEX_ALBUM,
	OGG_INDEX_COPYRIGHT,
	OGG_INDEX_DESCRIPTION,
	OGG_INDEX_GENRE,
	OGG_INDEX_ARRAY_SIZE
};

CONST EXT_INFO_CONFIG oExtInfoConfigOGG[OGG_INDEX_ARRAY_SIZE]=
{
	{S_TITLE,			eOGGTitle},
	{S_ARTIST,			eOGGArtist},
	{S_ALBUM,			eOGGAlbum},
	{S_COPYRIGHT,		eOGGCopyright},	// add copyright string
	{S_DESCRIPTION,		eOGGDescription}, // add description string
	{S_GENRE,			eOGGGenre}
};
#endif//#if (defined (D_OGG_VORBIS) && defined (CLIPS_ACQUIRE_EXTENDED_INFO))

#if (defined (CLIPS_ACQUIRE_EXTENDED_INFO) && (defined(CLIPS_MP3_EXTRACT_ID3V1_TAG) || defined (CLIPS_WMA_EXTRACT_CONTENT_DESC)))

#ifdef CLIPS_MP3_EXTRACT_ID3V1_TAG
CONST EXT_INFO_CONFIG oExtInfoConfigMP3[ID3_INDEX_ARRAY_SIZE]=
{
	{S_NAME,		eMP3Name},
	{S_ARTIST,		eMP3Artist},
	{S_ALBUM,		eMP3Album},
	{S_YEAR,		eMP3Year},
	{S_TRACK,		eMP3TrackNum},
	{S_GENRE,		eMP3Genre},
	{S_COMMENT,	eMP3Comment}
};
#endif//CLIPS_MP3_EXTRACT_ID3V1_TAG

#ifdef CLIPS_WMA_EXTRACT_CONTENT_DESC
CONST EXT_INFO_CONFIG oExtInfoConfigWMA[WMA_INDEX_ARRAY_SIZE]=
{
	{S_TITLE,			eWMATitle},
	{S_AUTHOR,			eWMAAuthor},
	{S_COPYRIGHT,		eWMACopyright},	// add copyright string
	{S_DESCRIPTION,		eWMADescription}, // add description string
};
#endif//CLIPS_WMA_EXTRACT_CONTENT_DESC
#endif //(defined (CLIPS_ACQUIRE_EXTENDED_INFO) && (defined(CLIPS_MP3_EXTRACT_ID3V1_TAG) || defined (CLIPS_WMA_EXTRACT_CONTENT_DESC)))

#define ID3_PADDING_SPACES				4

STATIC CONST MS_DESCRIPTOR_HSCROLL_TEXT oHelpTextDescriptor =
{ // MS_DESCRIPTOR_HSCROLL_TEXT
	{ // MS_DESCRIPTOR_MULTILINE_TEXT
		{ // MS_DESCRIPTOR_TEXT
       		{ // MS_DESCRIPTOR
            			sizeof(MSO_HELP_TEXT),
            			MS_NAV_NULL,
            			(MS_ATTR_OSD_LAYER_0 | MS_ATTR_INVISIBLE), // Attributes
            			{
                			AREA_HELP_TEXT_X, AREA_HELP_TEXT_Y, AREA_HELP_TEXT_W, AREA_HELP_TEXT_H
            			},
            			_HelpTextOperation,		// Use operation function
				OHSCROLLTEXT_FillOSDSeg,
            			mpParamNull
        		},
        		(MS_X_Y_ALIGN *)&oHelpTextXYAlign,
			(MS_COLOR_SET *)&oHelpTextColorSet,
			(MS_BITMAP_SET *)&oButtonBitmapSet,
			(OSD_TEXT *)NULL,
			FONT_0,
			NULL,
			NULL,
        	},
        	8,		// left/right boder
        	0,		// top/bottom border
        	0,		// pixelgap
        	ID3_INDEX_ARRAY_SIZE,		// max lines
#ifdef D_GUI_DESCRIPTOR_MULTILINETEXT_EXT1
        	CLIPS_HSCROLL_TEXT_BG_FIT_H   ,
        	CLIPS_HSCROLL_TEXT_BG_FIT_V,   
        	CLIPS_HSCROLL_TEXT_BG_MARGIN_H,
        	CLIPS_HSCROLL_TEXT_BG_MARGIN_V,
        	CLIPS_HSCROLL_TEXT_PREPARE_STR,
#endif//D_GUI_DESCRIPTOR_MULTILINETEXT_EXT1
	},
    	HSCROLL_START_RIGHT,								// startpos
    	HSCROLL_TYPE_FINISH_BEFORE_RESCROLL_REMOVE_SCROLL, // scrolltype
    	2,													// pixelcount
    	0													// holdtime
};

/***************************************************************************************
*	Descriptor 	: 	oOpenWindowButtonDescriptor
*
*	Purpose	 	:	Descriptor of the button that opens a browser page when clicked.
 ****************************************************************************************/
#ifdef D_GUI_CLIPS_MULTIPAGE
static CONST OSD_TEXT oOpenWindowText = {
	OSDR_GetFormUniStr_OsdMessage,
	S_OPEN_WINDOW
};
static CONST MS_DESCRIPTOR_BUTTON oOpenWindowButtonDescriptor =
{// MS_DESCRIPTOR
	{
		{
			sizeof(MSO_BUTTON),
			MS_NAV_TO_ALGINED_Y | MS_NAV_DISABLE_LR,
			MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
			{
				AREA_BTN_OPENW_X, AREA_BTN_OPENW_Y, AREA_BTN_OPENW_W, AREA_BTN_OPENW_H
			},
			_BtnAddWindowOperation,
			OBUTTON_FillOSDSeg,
			mpParamNull
		},
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
		(MS_COLOR_SET *)&oButtonTextColorSet,
		(MS_BITMAP_SET *)&oButtonBitmapSet,
		(OSD_TEXT *)	&oOpenWindowText,
		FONT_0,
		NULL,
		NULL
	},
	MS_OP_NONE
};
#endif // D_GUI_CLIPS_MULTIPAGE

/***************************************************************************************
*	Descriptor 	: 	oHomeButtonDescriptor
*
*	Purpose	 	:	Descriptor of the button that opens the main main when clicked.
 ****************************************************************************************/
#ifdef D_GUI_HOME_BUTTON
static CONST MS_DESCRIPTOR_BUTTON oHomeButtonDescriptor =
{// MS_DESCRIPTOR
	{
		{
			sizeof(MSO_BUTTON),
			MS_NAV_TO_ALGINED_Y | MS_NAV_DISABLE_LR,
			MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
			{
				AREA_BTN_HOME_X, AREA_BTN_HOME_Y, AREA_BTN_HOME_W, AREA_BTN_HOME_H
			},
			_BtnHomeOperation,
			OBUTTON_FillOSDSeg,
			mpParamNull
		},
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
		(MS_COLOR_SET *)&oButtonTextColorSet,
		(MS_BITMAP_SET *)&oButtonBitmapSet,
		(OSD_TEXT *)	NULL,
		FONT_0,
		(MS_BITMAP_SET *)&oHomeIconBmpSet,
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign
	},
	MS_OP_NONE
};
#endif // D_GUI_HOME_BUTTON

/***************************************************************************************
*	Descriptor 	: 	oFilterListItemDescriptor
*
*	Purpose	 	:	Descriptor of objects that represent available values for the filter
*					choice object.
 ****************************************************************************************/
static CONST MS_DESCRIPTOR_LISTITEM oFilterListItemDescriptor =
{// MS_DESCRIPTOR
	{
		sizeof(MSO_LISTITEM),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			CHOICE_HEIGHT
		},
		_FilterListItemOperation,
		ListItemFillOSDSeg,
		mpParamNull
	}
};

/***************************************************************************************
*	Descriptor 	: 	oFilterChoiceDescriptor
*
*	Purpose	 	:	Descriptor of a tool in the toolkit that allows the user to set (select
*					one or more types from a list of options) the file types to be listed.
 ****************************************************************************************/
static CONST MS_PARAM_CHOICE InitChoiceParam =
{
	0
};

#define MAX_FILTER_VALUES	3

static CONST MS_CHOICE_DATA FilterValueTable[MAX_FILTER_VALUES] =
{
	{CLIPTYPE_FILTER_MUSIC, 		S_AUDIO	},
	{CLIPTYPE_FILTER_PHOTO, 		S_PHOTO	},
	{CLIPTYPE_FILTER_MOVIE, 		S_VIDEO	},
};

static CONST MS_DESCRIPTOR_CHOICE oFilterChoiceDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_CHOICE_DISPLAY_AS_BUTTON | MS_ATTR_CHOICE_DISPLAY_BG_BMP,
		{
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			CHOICE_HEIGHT
		},
		_FilterChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	(MS_DESCRIPTOR_LISTITEM*)&oFilterListItemDescriptor,
	S_FILTER,
	MAX_FILTER_VALUES,
	(MS_CHOICE_DATA*)&FilterValueTable,
	CIDX_3,//same as button default color
	CIDX_6,
	CIDX_7,
	BMP_BG_2,
	mpfMutatorNull
};

/***************************************************************************************
*	Descriptor 	: 	oShuffleChoiceDescriptor
*
*	Purpose	 	:	Descriptor of a tool in the toolkit that allows the user to set the
*					shuffle mode.
 ****************************************************************************************/
#ifdef D_GUI_TOOLKIT_ADD_SHUFFLE

#define MAX_SHUFFLE_MODE_VALUES	3

static CONST MS_CHOICE_DATA ShuffleModeValueTable[MAX_SHUFFLE_MODE_VALUES] =
{
	{PLAYMODE_NORMAL, 	S_NORMAL	},
	{PLAYMODE_SHUFFLE, 	S_SHUFFLE	},
	{PLAYMODE_RANDOM, 	S_RANDOM	},
};

static CONST MS_DESCRIPTOR_CHOICE oShuffleChoiceDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			CHOICE_HEIGHT
		},
		_ShuffleChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_SHUFFLE,
	MAX_SHUFFLE_MODE_VALUES,
	(MS_CHOICE_DATA*)&ShuffleModeValueTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	mpfMutatorNull
};
#endif // D_GUI_TOOLKIT_ADD_SHUFFLE

/***************************************************************************************
*	Descriptor 	: 	oRepeatChoiceDescriptor
*
*	Purpose	 	:	Descriptor of a tool in the toolkit that allows the user to set the
*					repeat mode.
 ****************************************************************************************/
#define MAX_REPEAT_MODE_VALUES	3

static CONST MS_CHOICE_DATA RepeatModeValueTable[MAX_REPEAT_MODE_VALUES] =
{
	{REPEAT_OFF, 		S_OFF	},
	{REPEAT_SINGLE, 	S_SINGLE	},
	{REPEAT_ALL, 		S_ALL	},
};

static CONST MS_DESCRIPTOR_CHOICE oRepeatChoiceDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			CHOICE_HEIGHT
		},
		_RepeatChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_REPEAT,
	MAX_REPEAT_MODE_VALUES,
	(MS_CHOICE_DATA*)&RepeatModeValueTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	mpfMutatorNull
};

/***************************************************************************************
*	Descriptor 	: 	oRepeatABChoiceDescriptor
*
*	Purpose	 	:	Descriptor of a tool in the toolkit that allows the user to set
*					repeat AB.
 ****************************************************************************************/
#ifdef D_GUI_TOOLKIT_ADD_REPEATAB

#define MAX_REPEATAB_MODE_VALUES		3

static CONST MS_CHOICE_DATA RepeatABModeValueTable[MAX_REPEATAB_MODE_VALUES] =
{
	{REPEAT_AB_OFF, 		S_OFF		},
	{REPEAT_AB_A, 		S_REPEATAB_A	},
	{REPEAT_AB_B, 		S_REPEATAB_B	},
};

static CONST MS_DESCRIPTOR_CHOICE oRepeatABChoiceDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			0,//decided by it's parent vscrolllist
			CHOICE_HEIGHT
		},
		_RepeatABChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_REPEATAB_B,
	MAX_REPEATAB_MODE_VALUES,

⌨️ 快捷键说明

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