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

📄 o_fta_program.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
📖 第 1 页 / 共 4 页
字号:
static CONST MS_PARAM_CHOICE InitChoiceParam = 
{
	0
};

static CONST MS_CHOICE_DATA aChannelTypeChoiceTable[MAX_CHANNELS_TYPE] =
{
	{FTA_CHANNEL_RADIO_ATTR,				S_RADIO		},
	{FTA_CHANNEL_VIDEO_ATTR,				S_VIDEO	    	}	
};

static CONST MS_DESCRIPTOR_CHOICE oChannelTypeParamDescriptor = 
{
	{// 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
            //20, 50, 240, OPTION_HEIGHT                    
            20, 50, 240, OPTION_HEIGHT 
		},
		_ChannelTypeChoiceOperation,//ListItemOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_TYPE,
	MAX_CHANNELS_TYPE,
	(MS_CHOICE_DATA*)&aChannelTypeChoiceTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_ChannelTypeChoiceAction
};

/****************************** descriptors for transport editing **********************/

#ifdef FTA_SATELLITE
/***************************************************************************************
*	Descriptor 	: 	oLNBEditDescriptor
*
*	Purpose	 	:	The LNB edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oLNBEditDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		_LNBOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_LNB,
	NULL,
	CIDX_8
};
/***************************************************************************************
*	Descriptor 	: 	oTransFreqEditDescriptor
*
*	Purpose	 	:	The trans freq edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oTransFreqEditDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		_TransFreqOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_TRANSPORT_FREQ,
	NULL,
	CIDX_8
};

/***************************************************************************************
*	Descriptor 	: 	oSymbolEditDescriptor
*
*	Purpose	 	:	The AudPid edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oSymbolEditDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		_SymbolOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_SYMBOL,
	NULL,
	CIDX_8
};
/***************************************************************************************
*	Descriptor 	: 	oPolarityParamDescriptor
*
*	Purpose	 	:	The polarity edit element.
****************************************************************************************/
#define MAX_POLARITY_OPTION                   2

static CONST MS_CHOICE_DATA aPolarityChoiceTable[MAX_POLARITY_OPTION] =
{
	{0,				S_HORIZONTAL    },
	{1,				S_VERTICAL		}
};

static CONST MS_DESCRIPTOR_CHOICE oPolarityParamDescriptor = 
{
	{// 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
            //20, 50, 240, OPTION_HEIGHT                    
            20, 50, 240, OPTION_HEIGHT 
		},
		_PolarityChoiceOperation,//ListItemOperation,
		ChoiceFillOSDSeg,
		(UINT8*)&InitChoiceParam
	},
	NULL,
	S_POLARITY,
	MAX_POLARITY_OPTION,
	(MS_CHOICE_DATA*)&aPolarityChoiceTable,
	CIDX_8,
	CIDX_8,
	CIDX_6,
	BMP_BG_3,
	_PolarityChoiceAction
};

#endif //FTA_SATELLITE

/***************************************************************************************
*	Descriptor 	: 	oProgExitButtonDescriptor
*
*	Purpose	 	:	The PCR Pid edit element.
****************************************************************************************/
static CONST OSD_TEXT oExitProgText =	// Left surround label
{	OSDR_GetFormUniStr_OsdMessage,		S_CLOSE	};


STATIC CONST MS_DESCRIPTOR_BUTTON oProgExitButtonDescriptor =
{// MS_DESCRIPTOR
	{

		{
			sizeof(MSO_BUTTON),
			MS_NAV_TO_ALGINED_Y,
			MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0 | MS_ATTR_RADIO_BUTTON,
			{
				//AREA_CHOICE_X, AREA_CHOICE_Y, AREA_CHOICE_W, AREA_CHOICE_H
                20, 50, 240, OPTION_HEIGHT
			},
			_ProgExitOperation,
			OBUTTON_FillOSDSeg,
			mpParamNull
		},
		(MS_X_Y_ALIGN *)&oButtonTextXYAlign,
		(MS_COLOR_SET *)&oButtonTextColorSet,
		(MS_BITMAP_SET *)&oButtonBitmapSet,
		(OSD_TEXT *)&oExitProgText,
		FONT_0,
		NULL,
		NULL
	},
	MS_OP_NONE
};

/***************************************************************************************
*	Descriptor 	: 	oFtaProgramDescriptor
*
*	Purpose	 	:	Descriptor of the list (MSO_FTA_PROGRAM) FTA component.
 ****************************************************************************************/
#ifndef D_GUI_SINGLE_LINE_COMPONENT
#define NBR_FTA_PROGRAM_CONTENTS		2
#else // D_GUI_SINGLE_LINE_COMPONENT
#define NBR_FTA_PROGRAM_CONTENTS		1
#endif // D_GUI_SINGLE_LINE_COMPONENT

STATIC CONST MS_DESCRIPTOR* CONST apFtaProgramContents[NBR_FTA_PROGRAM_CONTENTS] = {	
#ifndef D_GUI_SINGLE_LINE_COMPONENT
	(MS_DESCRIPTOR*)&oFtaProgramComponentTitleDescriptor,
#endif // D_GUI_SINGLE_LINE_COMPONENT
	(MS_DESCRIPTOR*)&oFtaProgramKitDescriptor,
};

CONST MS_DESCRIPTOR_FTA_PROGRAM oFtaProgramDescriptor =
{
	{// MS_DESCRIPTOR_COMPONENT
		{// MS_DESCRIPTOR_CONTAINER
			{// MS_DESCRIPTOR
				sizeof(MSO_FTA_PROGRAM),
				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_2,
				{
					AREA_FTA_PROGRAM_X,
					AREA_FTA_PROGRAM_Y, 
					AREA_FTA_PROGRAM_W, 
					AREA_FTA_PROGRAM_H
				},
				_FtaProgramOperation,
				_FtaProgramFillOSDSeg,
				mpParamNull
			},
			(CONST MS_DESCRIPTOR**)apFtaProgramContents,	//maContentsNull,
			NBR_FTA_PROGRAM_CONTENTS, 					//mwNbrContentsNull,
		},
		NULL
	},
	BMP_BG_2,
	CIDX_6
};

/***************************************************************************************
*	Array 		: 	aFtaPidKit
*
*	Purpose	 	:	Contains an array of pointer to descriptors of the objects that would be 
*					added to the aFtaPidKit (oFtaProgramKitDescriptor). 
 ****************************************************************************************/
STATIC CONST MS_DESCRIPTOR* CONST aFtaPidKit[] = {
	(MS_DESCRIPTOR*)&oChnlIndexDescriptor,
	(MS_DESCRIPTOR*)&oVidPidEditDescriptor,
	(MS_DESCRIPTOR*)&oAudPidEditDescriptor,	
	(MS_DESCRIPTOR*)&oPcrPidEditDescriptor,
	(MS_DESCRIPTOR*)&oChannelTypeParamDescriptor,
	(MS_DESCRIPTOR*)&oProgExitButtonDescriptor,
	NULL // IMPORTANT : Last item must always be NULL.
};

/***************************************************************************************
*	Array 		: 	aFtaPidKit
*
*	Purpose	 	:	Contains an array of pointer to descriptors of the objects that would be 
*					added to the aFtaPidKit (oFtaProgramKitDescriptor). 
 ****************************************************************************************/
STATIC CONST MS_DESCRIPTOR* CONST aFtaTransportKit[] = {
#ifdef FTA_SATELLITE
	(MS_DESCRIPTOR*)&oLNBEditDescriptor,
	(MS_DESCRIPTOR*)&oTransFreqEditDescriptor,
	(MS_DESCRIPTOR*)&oSymbolEditDescriptor,	
	//(MS_DESCRIPTOR*)&oPcrPidEditDescriptor,
	(MS_DESCRIPTOR*)&oPolarityParamDescriptor,
#endif //FTA_SATELLITE
	(MS_DESCRIPTOR*)&oProgExitButtonDescriptor,
	NULL // IMPORTANT : Last item must always be NULL.
};

/***************************************************************************************
* 	Utility functions
****************************************************************************************/

/***************************************************************************************
*	Function 	: 	_AddItemsToFtaProgramKit
*
*	In		:	pList		=	Pointer to the aFtaPidKit MSO_VLIST.
*
*	Out		:
*
*	Desc 	:	
****************************************************************************************/
#ifndef D_CUSTOM__AddItemsToFtaProgramKit
STATIC BOOL _AddItemsToFtaProgramKit(MSO_VLIST __NEAR* pList )
{
	if(NULL != pList)
	{
		UINT8 cIndex;
		UINT8 cNumItems;
		UINT8 cTotalItemsInToolkit = 0;
		MSO_OBJECT __NEAR* pObject;
		MS_DESCRIPTOR** ppDescriptor = NULL;	  		

		if( bIsChannelProg  )
		{
			ppDescriptor = (MS_DESCRIPTOR**)aFtaPidKit;
		}
		else
		{
			ppDescriptor = (MS_DESCRIPTOR**)aFtaTransportKit;
		}

		// Get the total number of tools in the toolkit
		while(NULL != ppDescriptor[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, ppDescriptor[pList->moParam.mwFirstDisplayItem + cIndex]);

			MS_SendOperation(pObject, MS_OP_OPEN, 0);
			MS_SendOperation(pObject, MS_OP_INIT, 0);
		}			
		return TRUE;
	}	
	return FALSE;
}
#endif // #ifndef D_CUSTOM
/**********************************************************************************
 * Name			: _IsPidAllowed
 *
 * Purpose          : Check whether the title num and the chapter num are in the range.
 *
 * Input			: wPidNum - VidPid/AudPid/PcrPid number
 *				    
 *
 * Return Value     : TRUE: The pid num  are in the range else FALSE.
 *
 * Description		: refer to purpose
 *
 * Comments		: None.
 *
 **********************************************************************************/
static BOOL _IsPidAllowed(UINT16 wPidNum )
{
	if ((wPidNum < MIN_PID_VALUE) || (wPidNum > MAX_PID_VALUE ))
	{
		return FALSE;
	}
	return TRUE;
}

/***************************************************************************************
* 	Utility functions
****************************************************************************************/
#pragma argsused
#ifndef D_CUSTOM__OFtaTab_GetFormUniStr_FtaChnl
STATIC void OFtaTab_GetFormUniStr_FtaChnl(FORMATED_UNICODE_STRING __NEAR *pFormattedString, UINT32 wParam)
{
	memcpy((BYTE*)pFormattedString->mszUniStr, wFtaProgTitle, (UNISTR_LENGTH_MAX*2));

   	OSDR_FormatUniString(pFormattedString);
}
#endif //D_CUSTOM

/***************************************************************************************
* 	Operation functions
****************************************************************************************/

/***************************************************************************************
*	Function 	: 	_FtaProgramOperation
*
*	In		:
*
*	Out		:

⌨️ 快捷键说明

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