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

📄 o_karaoke_config.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
字号:
/****************************************************************************************************
*  Copyright (c) 2005 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: o_firmware_upgrade_custom.c
*
* Description:
* =========
****************************************************************************************************/

/***************************************************************************************
* 	Object definitions
****************************************************************************************/
CONST MS_COLOR_SET oKaraokeComponentColorSet = {
	CIDX_6,
	NULL,
	NULL,
	NULL
};

/***************************************************************************************
*	Descriptor 	: 	oKaraokeComponentTitleDescriptor
*
*	Purpose	 	:	
 ****************************************************************************************/
#ifndef D_GUI_SINGLE_LINE_COMPONENT
static CONST OSD_TEXT oKaraokeComponentTitleText = {OSDR_GetFormUniStr_OsdMessage, S_KARAOKE};

static CONST MS_DESCRIPTOR_TEXT oKaraokeComponentTitleDescriptor =
{ // MS_DESCRIPTOR_TEXT
	{ // MS_DESCRIPTOR
        	sizeof(MSO_TEXT),
        	MS_NAV_NULL,
        	MS_ATTR_OSD_LAYER_0,
        	{
        		AREA_KARAOKE_TITLE_X,
			AREA_KARAOKE_TITLE_Y,
            		AREA_KARAOKE_TITLE_W,
            		AREA_KARAOKE_TITLE_H
        	},
        	OTEXT_Operation,
        	OTEXT_FillOSDSeg,
        	mpParamNull
    	},
    	(MS_X_Y_ALIGN *)&oCenterAlignToContainer,
	(MS_COLOR_SET *)&oKaraokeComponentColorSet, 
	NULL,
	(OSD_TEXT*)&oKaraokeComponentTitleText,
	FONT_0,
	NULL,
	NULL
};
#endif // D_GUI_SINGLE_LINE_COMPONENT

/***************************************************************************************
*	Descriptor 	: 	oKaraokeKitVListDescriptor
*
*	Purpose	 	:	Descriptor of the list (MSO_VLIST) containing the Karaoke settings.
 ****************************************************************************************/
static CONST MS_PARAM_VLIST oKaraokeKitListParam = {
	0,	// Total number of items in the list.
	0,	// Index of the first item.
	NBR_MSO_CHOICE_MAX_VISIBLE, // Visible
	0, // offset
	0
};

static CONST MS_DESCRIPTOR_VLIST oKaraokeKitVListDescriptor = 
{ // Container descriptor start
	{// Descriptor start
		sizeof(MSO_VLIST),
		MS_NAV_CONTAINER_WRAP_UD | 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_OFFSET_FIRSTITEM | MS_ATTR_VLIST_SCROLL_SINGLE_ITEM, 
		{
			AREA_KARAOKEKIT_X,
			AREA_KARAOKEKIT_Y,
			AREA_KARAOKEKIT_W,
			AREA_KARAOKEKIT_H
		},
		_KaraokekitVlistOperation,	
		mpfFillOsdSegNull, // VListFillOSDSeg
		(UINT8*)&oKaraokeKitListParam
	},// Descriptor end
	maContentsNull,
	mwNbrContentsNull,
};

/***************************************************************************************
*	Descriptor 	: 	oKaraokeKitDescriptor
*
*	Purpose	 	:	Descriptor of the toolkit. The toolkit is a MSO_VSCROLL_LIST object, 
*					that contains an MSO_VLIST (descriptor oToolKitVListDescriptor) object 
*					within it.
 ****************************************************************************************/
static CONST MS_DESCRIPTOR_VSCROLL_LIST oKaraokeKitDescriptor = 
{
	{ // Container descriptor start
		{ // Descriptor start
			sizeof(MSO_VSCROLL_LIST),
			MS_NAV_NULL,
			MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_1 | MS_ATTR_VSLIST_DISPLAY_BG_BMP | 
			MS_ATTR_VSLIST_SCROLL_ARROW | MS_ATTR_VSLIST_SCROLL_ARROW_ON_SIDE,
			{
				AREA_KARAOKEKIT_X,
				AREA_KARAOKEKIT_Y,
				AREA_KARAOKEKIT_W,
				AREA_KARAOKEKIT_H
			},
			_KaraokeKitOperation,					
			VScrollListFillOSDSeg,
			mpParamNull,
		}, // Descriptor end
		maContentsNull,
		mwNbrContentsNull,		
	}, // Container descriptor end
	(MS_DESCRIPTOR_VLIST*)&oKaraokeKitVListDescriptor, // mpDescriptorVList
	KARAOKEKIT_SCROLL_XPADDING, 
	KARAOKEKIT_SCROLL_ARROW_HEIGHT,
	CIDX_8, 				// Text color
	NULL, 				// Background bitmap
	BMP_BG_PUSHED_1, 	// Scrollbar background bitmap
	BMP_BG_3 			// Scrollbar bitmap
};

/***************************************************************************************
* 	The Karaoke On/Off choice object
****************************************************************************************/
static CONST MS_PARAM_CHOICE InitChoiceParam = 
{
	0
};

#define MAX_KARAOKE_ONOFF_VALUES			2

static CONST MS_CHOICE_DATA aKaraokeOnOffChoiceTable[MAX_KARAOKE_ONOFF_VALUES] =
{
	{KARAOKE_OFF,				S_OFF			},
	{KARAOKE_ON,					S_ON		}
};

static CONST MS_DESCRIPTOR_CHOICE oKaraokeOnOffChoiceDescriptor = 
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
		},
		_KaraokeOnOffChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_KARAOKE,
	MAX_KARAOKE_ONOFF_VALUES,
	(MS_CHOICE_DATA*)&aKaraokeOnOffChoiceTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_KaraokeOnOffChoiceAction
};

/***************************************************************************************
* 	The LR Mode choice object
****************************************************************************************/
#ifdef D_KARAOKE_LRMODE
#define MAX_LR_MODE_VALUES			4

#ifdef D_KARAOKE_LR_PARAM_UPDATE     
static CONST MS_CHOICE_DATA aLRModeValueTable[MAX_LR_MODE_VALUES] =
{
	{KARAOKE_LR_STEREO,				S_STEREO			},
	{KARAOKE_LR_LEFT,					S_LEFT				},
	{KARAOKE_LR_RIGHT,				S_RIGHT				},
	{KARAOKE_LR_MIX,					S_MIX				}
};
#else
static CONST MS_CHOICE_DATA aLRModeValueTable[MAX_LR_MODE_VALUES] =
{
	{DMM_SETTING_NORMAL,				S_STEREO			},
	{DMM_SETTING_LEFT_ONLY,					S_LEFT				},
	{DMM_SETTING_RIGHT_ONLY,				S_RIGHT				},
	{DMM_SETTING_MIX,					S_MIX				}
};
#endif//D_KARAOKE_LR_PARAM_UPDATE

static CONST MS_DESCRIPTOR_CHOICE oLRModeChoiceDescriptor = 
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
		},
		_LRModeChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_LR_MODE,
	MAX_LR_MODE_VALUES,
	(MS_CHOICE_DATA*)&aLRModeValueTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_LRModeChoiceAction
};
#endif//D_KARAOKE_LRMODE
/***************************************************************************************
* 	The Key shift choice object
****************************************************************************************/

STATIC CONST MS_PARAM_HSLIDER oKeyShiftSliderParams =
{
	KEYSHIFT_SLIDER_MIN_VALUE,		
	KEYSHIFT_SLIDER_MAX_VALUE,		
	KEYSHIFT_SLIDER_CURRENT_VALUE,	
	KEYSHIFT_SLIDER_STEP_INDEX		
};

STATIC CONST MS_DESCRIPTOR_HSLIDER_VLIST oKeyShiftSliderDescriptor =
{
	{
    		sizeof(MSO_HSLIDER),
        	MS_NAV_NULL,
        	MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0, 
        	{
			AREA_SLIDER_X, AREA_SLIDER_Y, AREA_SLIDER_W, AREA_SLIDER_H
        	},
        	_KeyShiftHSliderOperation,
        	HSliderFillOSDSegOnVList,
        	(UINT8*)&oKeyShiftSliderParams
    	},
    	S_KEY_SHIFT,
    	S_NULL,//S_MINUS, 
    	S_NULL,//S_PLUS, 
    	KARAOKEKIT_HSLIDER_BAR_HEIGHT,
    	KARAOKEKIT_HSLIDER_BAR_WIDTH,
    	KARAOKEKIT_HTAB_HEIGHT,
    	KARAOKEKIT_HTAB_WIDTH,
   	HS_HIGHLIGHT_ON_OBJECT,
    	TRUE,//FALSE,	// bDisplayCurrentValue
    	TRUE,//FALSE,	// bDisplayMinAndMaxValues
    	_KeyShiftSliderAction
};

/***************************************************************************************
* 	The Echo choice object
****************************************************************************************/

STATIC CONST MS_PARAM_HSLIDER oEchoSliderParams =
{
	ECHO_SLIDER_MIN_VALUE,		
	ECHO_SLIDER_MAX_VALUE,		
	ECHO_SLIDER_CURRENT_VALUE,	
	ECHO_SLIDER_STEP_INDEX		
};

STATIC CONST MS_DESCRIPTOR_HSLIDER_VLIST oEchoSliderDescriptor =
{
	{
    		sizeof(MSO_HSLIDER),
        	MS_NAV_NULL,
        	MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0, 
        	{
			AREA_SLIDER_X, AREA_SLIDER_Y, AREA_SLIDER_W, AREA_SLIDER_H
        	},
        	_EchoHSliderOperation,
        	HSliderFillOSDSegOnVList,
        	(UINT8*)&oEchoSliderParams
    	},
    	S_ECHO,
    	S_MINUS, 
    	S_PLUS, 
    	KARAOKEKIT_HSLIDER_BAR_HEIGHT,
    	KARAOKEKIT_HSLIDER_BAR_WIDTH,
    	KARAOKEKIT_HTAB_HEIGHT,
    	KARAOKEKIT_HTAB_WIDTH,
   	HS_HIGHLIGHT_ON_OBJECT,
    	FALSE,	// bDisplayCurrentValue
    	FALSE,	// bDisplayMinAndMaxValues
    	_EchoSliderAction
};

/***************************************************************************************
* 	The Voice cancel choice object
****************************************************************************************/
#define MAX_VOICE_CANCEL_VALUES			2

static CONST MS_CHOICE_DATA aVoiceCancelChoiceTable[MAX_VOICE_CANCEL_VALUES] =
{
	{VOICE_CANCEL_SETTING_OFF,				S_OFF			},
	{VOICE_CANCEL_SETTING_ON,					S_ON		}
};

static CONST MS_DESCRIPTOR_CHOICE oVoiceCancelChoiceDescriptor = 
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
		},
		_VoiceCancelChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_VOICE_CANCEL,
	MAX_VOICE_CANCEL_VALUES,
	(MS_CHOICE_DATA*)&aVoiceCancelChoiceTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_VoiceCancelChoiceAction
};

/***************************************************************************************
* 	The Voice cancel choice object
****************************************************************************************/
#ifdef D_KARAOKE_MELODY
#define MAX_MELODY_VALUES			2

static CONST MS_CHOICE_DATA aMelodyChoiceTable[MAX_MELODY_VALUES] =
{
	{KAR_AC3_MELODY_SETTING_OFF,				S_OFF			},
	{KAR_AC3_MELODY_SETTING_ON,					S_ON		}
};

static CONST MS_DESCRIPTOR_CHOICE oMelodyChoiceDescriptor = 
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
		},
		_MelodyChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_MELODY,
	MAX_MELODY_VALUES,
	(MS_CHOICE_DATA*)&aMelodyChoiceTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_MelodyChoiceAction
};
#endif//D_KARAOKE_MELODY
/***************************************************************************************
* 	The Mic Effect choice object
****************************************************************************************/
#ifdef D_KARAOKE_MIC_EFFECT
#define MAX_MIC_EFFECT_VALUES				4	

static CONST MS_CHOICE_DATA aMicEffectValueTable[MAX_MIC_EFFECT_VALUES] =
{
	{KAR_MIC_EFFECT_OFF,			S_OFF		},
	{KAR_MIC_EFFECT_FLANGE, 		S_FLANGE	},
	{KAR_MIC_EFFECT_CHORUS,		S_CHORUS	},
	{KAR_MIC_EFFECT_HARMONY,		S_HARMONY	}
};

static CONST MS_DESCRIPTOR_CHOICE oMicEffectChoiceDescriptor = 
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
		},
		_MicEffectChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_MIC_EFFECT,
	MAX_MIC_EFFECT_VALUES,
	(MS_CHOICE_DATA*)&aMicEffectValueTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_MicEffectChoiceAction
};
#endif//D_KARAOKE_MIC_EFFECT
/***************************************************************************************
* 	The Vocal Effect choice object
****************************************************************************************/
#ifdef D_VOCAL_SUPPORT_ENABLED

#define MAX_VOCAL_EFFECT_VALUES				4

static CONST MS_CHOICE_DATA aVocalEffectValueTable[MAX_VOCAL_EFFECT_VALUES] =
{
	{KAR_AC3_SETTING_NOVOCAL,		S_OFF	},
	{KAR_AC3_SETTING_VOCAL1, 		S_V1	},
	{KAR_AC3_SETTING_VOCAL2,		S_V2	},
	{KAR_AC3_SETTING_ALL,		S_V1_V2	}
};

static CONST MS_DESCRIPTOR_CHOICE oVocalEffectChoiceDescriptor = 
{
	{// MS_DESCRIPTOR
		sizeof(MSO_CHOICE),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, CHOICE_HEIGHT
		},
		_VocalEffectChoiceOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_VOCAL_EFFECT,
	MAX_VOCAL_EFFECT_VALUES,
	(MS_CHOICE_DATA*)&aVocalEffectValueTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_VocalEffectChoiceAction
};
#endif // D_VOCAL_SUPPORT_ENABLED

/***************************************************************************************
* 	The Karaoke component
****************************************************************************************/
#ifndef D_GUI_SINGLE_LINE_COMPONENT
#define NBR_KARAOKE_CONTENTS		2
#else // D_GUI_SINGLE_LINE_COMPONENT
#define NBR_KARAOKE_CONTENTS		1
#endif // D_GUI_SINGLE_LINE_COMPONENT

static CONST MS_DESCRIPTOR* CONST apKaraokeContents[NBR_KARAOKE_CONTENTS] = {	
#ifndef D_GUI_SINGLE_LINE_COMPONENT
	(MS_DESCRIPTOR*)&oKaraokeComponentTitleDescriptor,
#endif // D_GUI_SINGLE_LINE_COMPONENT
	(MS_DESCRIPTOR*)&oKaraokeKitDescriptor,
};

CONST MS_DESCRIPTOR_KARAOKE oKaraokeDescriptor =
{
	{// MS_DESCRIPTOR_COMPONENT
		{// MS_DESCRIPTOR_CONTAINER
			{// MS_DESCRIPTOR
				sizeof(MSO_KARAOKE),
				MS_NAV_TO_ALGINED_Y | MS_NAV_DISABLE_LR | MS_NAV_DISABLE_UD |
				MS_NAV_CONTAINER_WRAP_LR | MS_NAV_CONTAINER_WRAP_UD | MS_NAV_CONTAINER_GOTO_TOP,
				MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
				{ 
					AREA_KARAOKE_X, AREA_KARAOKE_Y, AREA_KARAOKE_W, AREA_KARAOKE_H
				},
				_KaraokeOperation,
				_KaraokeFillOSDSeg,
				mpParamNull,
			},			
			(CONST MS_DESCRIPTOR**)apKaraokeContents,	//maContentsNull,
			NBR_KARAOKE_CONTENTS, 					//mwNbrContentsNull,
		},
		(MS_DESCRIPTOR*)&oKaraokeOnOffChoiceDescriptor
	},
	BMP_BG_2,
	CIDX_6
};

/***************************************************************************************
*	Array 		: 	aKaraokeKit
*
*	Purpose	 	:	Contains an array of pointer to descriptors of the objects that would be 
*					added to the Karaokekit (oKaraokeKitDescriptor). 
 ****************************************************************************************/
static CONST MS_DESCRIPTOR* CONST aKaraokeKit[] = {
	(MS_DESCRIPTOR*)&oKaraokeOnOffChoiceDescriptor,
#ifdef D_KARAOKE_LRMODE
	(MS_DESCRIPTOR*)&oLRModeChoiceDescriptor,
#endif//D_KARAOKE_LRMODE
	(MS_DESCRIPTOR*)&oKeyShiftSliderDescriptor,
	(MS_DESCRIPTOR*)&oEchoSliderDescriptor,
	(MS_DESCRIPTOR*)&oVoiceCancelChoiceDescriptor,
#ifdef D_KARAOKE_MELODY
	(MS_DESCRIPTOR*)&oMelodyChoiceDescriptor,
#endif//D_KARAOKE_MELODY
#ifdef D_KARAOKE_MIC_EFFECT
	(MS_DESCRIPTOR*)&oMicEffectChoiceDescriptor,	
#endif//D_KARAOKE_MIC_EFFECT
#ifdef D_VOCAL_SUPPORT_ENABLED
	(MS_DESCRIPTOR*)&oVocalEffectChoiceDescriptor,		
#endif // D_VOCAL_SUPPORT_ENABLED
	NULL // IMPORTANT : Last item must always be NULL.
};

⌨️ 快捷键说明

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