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

📄 o_fta_program.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
📖 第 1 页 / 共 4 页
字号:
/* **************************************************************************************
*  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: $Workfile: o_fta_program.c $
*
* Description:
* ============
* Project definition of the MSO_FTA_PROGRAM
*
****************************************************************************************/
#include "Config.h"		// Global Configuration - do not remove!

#ifdef FTA_SUPPORT
#ifdef DEBUG_UI_TRACE
#undef IFTRACE
#define IFTRACE if (gTraceUI)
#include "Debug\DbgMain.h"
#endif //DEBUG_UI_TRACE

#include "Include\SysDefs.h"

#include "GUI\Menu_system\ms_menu.h"
#include "GUI\Object_class\Page\mso_page.h"
#include "Menu\menu_operation_def.h"
#include "GUI\Menu_system\ms_container.h"
#include "GUI\Menu_system\ms_component.h"
#include "CoreAPI\CoreAPI.h"
#include "Playcore\FTA\fta.h"
#include "Kernel\EventDef.h"
#include "GUI\Object_class\Vlist\mso_vlist.h"
#include "GUI\Menu_system\ms_display.h"
#include "GUI\Menu_system\ms_screen.h"
#include "GUI\Menu_system\ms_send_op.h"
#include "GUI\Resource\Bitmap\bitmap.h"
#include "GUI\Object_class\Button\mso_button.h"
#include "Library\String_generate.h"
#include "GUI\Object_class\Choice\mso_choice.h"
#include "GUI\Object_class\Text\mso_text_defs.h"
#include "GUI\Object_class\Text\mso_text.h"
#include "Menu_config\menu_config_common.h"


#include "Components\FTA_Channel_Tab\o_FTA_Channel_Tab.h"
#include "Components\FTA_Transport_Tab\o_FTA_Transport_Tab.h"


// Include the module header file
#include "Components\FTA_Program\o_FTA_Program.h"
// Include configuration header file: named constants, macros and typedefs.
//#include "Components\FTA_Selection\o_FTA_Selection_config.h"
// Include custom header file: customer specific definitions, over-writing common ones.
#include "Components\Custom\FTA_Program\o_FTA_Program_custom.h"

#ifndef DEBUG_UI_TRACE
#undef dbg_printf(sMsg)
#define dbg_printf(sMsg)
#undef	dbgm_printf(sMsg, mode)
#define dbgm_printf(sMsg, mode)
#endif //DEBUG_UI_TRACE


/***************************************************************************************
* 	Constants and Macros
****************************************************************************************/

#define MAX_PID_VALUE                   8192 
#define MIN_PID_VALUE                   0

#ifdef D_GUI_SINGLE_LINE_COMPONENT
#define AREA_FTA_PROGRAM_X					0
#define AREA_FTA_PROGRAM_Y					0
#define AREA_FTA_PROGRAM_W					OSD_LAYOUT_AREA_POPUP_W
#define AREA_FTA_PROGRAM_H					OSD_LAYOUT_AREA_POPUP_H
#else // D_GUI_SINGLE_LINE_COMPONENT
#define AREA_FTA_PROGRAM_X					100//140
#define AREA_FTA_PROGRAM_Y					0//100
#define AREA_FTA_PROGRAM_W					300
#define AREA_FTA_PROGRAM_H					240//192//128
#endif // D_GUI_SINGLE_LINE_COMPONENT

#define OPTION_HEIGHT						28
#define OPTION_XPADDING					20

#define AREA_FTA_PROGRAM_TITLE_W				(AREA_FTA_PROGRAM_W - 4)
#define AREA_FTA_PROGRAM_TITLE_H				OPTION_HEIGHT
#define AREA_FTA_PROGRAM_TITLE_X				((AREA_FTA_PROGRAM_W - AREA_FTA_PROGRAM_TITLE_W) / 2)
#define AREA_FTA_PROGRAM_TITLE_Y				2

#define AREA_FTA_PROGRAMKIT_W					(AREA_FTA_PROGRAM_W - 4)
#define AREA_FTA_PROGRAMKIT_H					(AREA_FTA_PROGRAM_H - AREA_FTA_PROGRAMKIT_Y)
#define AREA_FTA_PROGRAMKIT_X					((AREA_FTA_PROGRAM_W - AREA_FTA_PROGRAMKIT_W) / 2)
#ifdef D_GUI_SINGLE_LINE_COMPONENT
#define AREA_FTA_PROGRAMKIT_Y					0
#else // D_GUI_SINGLE_LINE_COMPONENT
#define AREA_FTA_PROGRAMKIT_Y					(AREA_FTA_PROGRAM_TITLE_Y + AREA_FTA_PROGRAM_TITLE_H)
#endif // D_GUI_SINGLE_LINE_COMPONENT

#ifdef D_GUI_SINGLE_LINE_COMPONENT
#define MAX_VISIBLE_FTA_PROGRAM_OPTIONS		1
#else // D_GUI_SINGLE_LINE_COMPONENT
#define MAX_VISIBLE_FTA_PROGRAM_OPTIONS		6//5//4
#endif // D_GUI_SINGLE_LINE_COMPONENT

#define FTA_PROGRAMKIT_SCROLL_XPADDING			4
#define FTA_PROGRAMKIT_SCROLL_ARROW_HEIGHT	0

#define MAX_FTA_PROG_TITLE_CHARS            60
STATIC WCHAR wFtaProgTitle[MAX_FTA_PROG_TITLE_CHARS];
static BOOL bIsChannelProg = TRUE;
/***************************************************************************************
* 	Utility functions
****************************************************************************************/
STATIC BOOL _AddItemsToFtaProgramKit(MSO_VLIST __NEAR* pList);
STATIC void OFtaTab_GetFormUniStr_FtaChnl(FORMATED_UNICODE_STRING __NEAR *pFormattedString, UINT32 wParam);
/***************************************************************************************
* 	Operation functions
****************************************************************************************/
STATIC MS_OP _FtaProgramOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _FtaProgramKitOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _FtaProgramkitVlistOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
//STATIC MS_OP _ChnlIndexOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#ifdef FTA_SATELLITE
STATIC MS_OP _LNBOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _TransFreqOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _SymbolOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif // FTA_SATELLITE
STATIC MS_OP _VidPidOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _AudPidOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _PcrPidOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _EditOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam, UINT16 *uipEditParamPtr);
STATIC void _ChannelTypeChoiceAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC MS_OP _ChannelTypeChoiceOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#ifdef FTA_SATELLITE
STATIC MS_OP _PolarityChoiceOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC void _PolarityChoiceAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //FTA_SATELLITE
STATIC MS_OP _ProgExitOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);

/***************************************************************************************
* 	Display functions
****************************************************************************************/
STATIC BOOL _FtaProgramFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea);
STATIC BOOL _FtaPidFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea);

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

/***************************************************************************************
*	Descriptor 	: 	oFtaProgramComponentTitleDescriptor
*
*	Purpose	 	:	
 ****************************************************************************************/
#ifndef D_GUI_SINGLE_LINE_COMPONENT
//static CONST OSD_TEXT oFtaProgramComponentTitleText = {OSDR_GetFormUniStr_OsdMessage, S_FTA};
#ifndef D_CUSTOM_oFtaProgramComponentTitleText
static CONST OSD_TEXT oFtaProgramComponentTitleText = {
    OFtaTab_GetFormUniStr_FtaChnl,
    NULL
};
#endif


static CONST MS_DESCRIPTOR_TEXT oFtaProgramComponentTitleDescriptor =
{ // MS_DESCRIPTOR_TEXT
	{ // MS_DESCRIPTOR
        	sizeof(MSO_TEXT),
        	MS_NAV_NULL,
        	MS_ATTR_OSD_LAYER_0,
        	{
                AREA_FTA_PROGRAM_TITLE_X,
			    AREA_FTA_PROGRAM_TITLE_Y,
            	AREA_FTA_PROGRAM_TITLE_W,
            	AREA_FTA_PROGRAM_TITLE_H
        	},
        	OTEXT_Operation,
        	OTEXT_FillOSDSeg,
        	mpParamNull
    	},
    	(MS_X_Y_ALIGN *)&oCenterAlignToContainer,
	(MS_COLOR_SET *)&oFtaProgramComponentColorSet, //oDefaultTextColorSet,
	NULL,
	(OSD_TEXT*)&oFtaProgramComponentTitleText,
	FONT_0,
	NULL,
	NULL
};
#endif // D_GUI_SINGLE_LINE_COMPONENT

/***************************************************************************************
*	Descriptor 	: 	oFtaProgramKitVListDescriptor
*
*	Purpose	 	:	Descriptor of the list (MSO_VLIST) containing the Fta program options.
 ****************************************************************************************/
STATIC CONST MS_PARAM_VLIST oFtaProgramKitListParam = {
	0,	// Total number of items in the list.
	0,	// Index of the first item.
	MAX_VISIBLE_FTA_PROGRAM_OPTIONS, // Visible
	0, // offset
	0
};

STATIC CONST MS_DESCRIPTOR_VLIST oFtaProgramKitVListDescriptor = 
{ // 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_FTA_PROGRAMKIT_X,
			AREA_FTA_PROGRAMKIT_Y,
			AREA_FTA_PROGRAMKIT_W,
			AREA_FTA_PROGRAMKIT_H
		},
		_FtaProgramkitVlistOperation,
		mpfFillOsdSegNull,
		(UINT8*)&oFtaProgramKitListParam
	},// Descriptor end
	maContentsNull,
	mwNbrContentsNull,
};

/***************************************************************************************
*	Descriptor 	: 	oFtaProgramKitDescriptor
*
*	Purpose	 	:	Descriptor of the toolkit. The toolkit is a MSO_VSCROLL_LIST object, 
*					that contains an MSO_VLIST (descriptor oFtaProgramKitVListDescriptor) object 
*					within it.
 ****************************************************************************************/
STATIC CONST MS_DESCRIPTOR_VSCROLL_LIST oFtaProgramKitDescriptor = 
{
	{ // 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_FTA_PROGRAMKIT_X,
				AREA_FTA_PROGRAMKIT_Y,
				AREA_FTA_PROGRAMKIT_W,
				AREA_FTA_PROGRAMKIT_H
			},
			_FtaProgramKitOperation,
			VScrollListFillOSDSeg,
			mpParamNull,
		}, // Descriptor end
		maContentsNull,
		mwNbrContentsNull,		
	}, // Container descriptor end
	(MS_DESCRIPTOR_VLIST*)&oFtaProgramKitVListDescriptor, // mpDescriptorVList
	FTA_PROGRAMKIT_SCROLL_XPADDING, 
	FTA_PROGRAMKIT_SCROLL_ARROW_HEIGHT,
	CIDX_8, 				// Text color
	NULL, 				// Background bitmap
	BMP_BG_PUSHED_1, 	// Scrollbar background bitmap
	BMP_BG_3 			// Scrollbar bitmap
};

/***************************************************************************************
*	Descriptor 	: 	oChnlIndexDescriptor
*
*	Purpose	 	:	The VidPid edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oChnlIndexDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		mpfOperationNull, //_ChnlIndexOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_CH_INDEX,
	NULL,
	CIDX_8
};


/***************************************************************************************
*	Descriptor 	: 	oVidPidEditDescriptor
*
*	Purpose	 	:	The VidPid edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oVidPidEditDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		_VidPidOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_VID_PID,
	NULL,
	CIDX_8
};

/***************************************************************************************
*	Descriptor 	: 	oAudPidEditDescriptor
*
*	Purpose	 	:	The AudPid edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oAudPidEditDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		_AudPidOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_AUD_PID,
	NULL,
	CIDX_8
};

/***************************************************************************************
*	Descriptor 	: 	oPcrPidEditDescriptor
*
*	Purpose	 	:	The PCR Pid edit element.
****************************************************************************************/
static CONST MS_DESCRIPTOR_FTA_PID oPcrPidEditDescriptor =
{
	{// MS_DESCRIPTOR
		sizeof(MSO_OBJECT),
		MS_NAV_TO_ALGINED_Y,
		MS_ATTR_FOCUSABLE | MS_ATTR_OSD_LAYER_0,
		{
			20, 50, 240, OPTION_HEIGHT
		},
		_PcrPidOperation,
		_FtaPidFillOSDSeg,
		mpParamNull
	},
	S_PCR_PID,
	NULL,
	CIDX_8
};
/***************************************************************************************
*	Descriptor 	: 	oChannelTypeParamDescriptor
*
*	Purpose	 	:	The channel type edit element.
****************************************************************************************/
#define MAX_CHANNELS_TYPE                   2

⌨️ 快捷键说明

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