亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? o_dvdvr.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* **************************************************************************************
*  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: $Workfile: o_dvdvr.c $
*
* Description:
* ============
* Project definition of the MSO_DVDVR component
*
****************************************************************************************/
#include "Config.h"		// Global Configuration - do not remove!

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

#include "Include\SysDefs.h"

/***************************************************************************************
* Include files
****************************************************************************************/
#include <stdio.h>
#include <string.h>
#include "include\math-macro.h"
#include "CoreAPI\CoreAPI.h"
#include "CoreAPI\DeviceManager.h"

#include "Library\Container_misc.h"
#include "Library\String_generate.h"
#include "Library\Number.h"

#include "GUI\Menu_system\ms_object.h"
#include "gui\menu_system\osd_rendering.h"
#include "gui\menu_system\ms_display.h"
#include "GUI\Menu_system\ms_screen.h"
#include "GUI\Menu_system\ms_component.h"

#include "GUI\Object_class\Button\mso_button.h"
#include "GUI\Object_class\Text\mso_text.h"
#include "GUI\Object_class\Hscroll\mso_hscroll_text.h"
#include "GUI\Object_class\Vlist\mso_vlist.h"
#include "GUI\Resource\Bitmap\bitmap.h"
#include "Menu\menu_operation_def.h"

#include "Menu_config\menu_config_common.h"

#include "Components\Dvdvr\o_dvdvr.h"
#include "Components\Dvdvr\o_dvdvr_config.h"
#include "Components\Custom\Dvdvr\o_dvdvr_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

/***************************************************************************************
* 	Utility functions
****************************************************************************************/
STATIC PGC_TYPE _GetProgramChainType(void);
STATIC BOOL _DisplayActiveTitle(void);
STATIC void _ResetActiveTitleFlag(void);
STATIC void _GetDiscName(FORMATED_UNICODE_STRING __NEAR* pFormUniStr, UINT32 wParam);
STATIC void _GetPlayTitle(FORMATED_UNICODE_STRING __NEAR* pFormUniStr, UINT32 wParam);
 
/***************************************************************************************
* 	Operation functions
****************************************************************************************/
STATIC MS_OP _ProgramChainOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _PlayTitleOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _ListItemOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _BrowserScrollListOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _HelpTextOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _DVDVROperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);

/***************************************************************************************
* 	Display functions
****************************************************************************************/
STATIC BOOL _DVDVRFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea);
STATIC BOOL _ListItemFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea);

#include "Components\Custom\Dvdvr\o_dvdvr_custom.c"
#include "Components\Dvdvr\o_dvdvr_config.c"

/* Macros for the MSO_PLAYTITLE object */
#define _MakePlayTitleParam(_CurrentTitle_, _TotalTitles_)		(((UINT32)_CurrentTitle_ << 16) | _TotalTitles_)
#define _GetCurrentTitleFromParam(_Param_)					((UINT16)(_Param_ >> 16))
#define _GetTotalTitlesFromParam(_Param_)					((UINT16)_Param_)

/* Macros for the MSO_DVDVR_LISTITEM objects */
#define _MakeListItemParam(_Index_, _IsPlaying_)				(((UINT32)_Index_ << 16) | _IsPlaying_)
#define _GetIndexFromParam(_Param_)						((UINT16)(_Param_ >> 16))
#define _GetIsPlayingStatusFromParam(_Param_)				((BOOL)(_Param_ && 0xFFFF))

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

/***************************************************************************************
*	Function 	: 	_GetProgramChainType
*
*	In		:	None.
*
*	Out		:	eProgramChain_Original if the DVD-VR component is displaying the original program 
*				chain.
*
*	Desc 	:	Returns the type of program chain that is being currently displayed in the Browser list..
****************************************************************************************/
STATIC PGC_TYPE _GetProgramChainType(void)
{
	MSO_DVDVR __NEAR* pDVDVRWindow = (MSO_DVDVR __NEAR*)MS_FindDescendant(gpScreen, &oDVDVRDescriptor);

	if(NULL != pDVDVRWindow)
		return pDVDVRWindow->moParam.mcProgramChain;
	
	return FALSE;
}

/***************************************************************************************
*	Function 	: 	_DisplayActiveTitle
*
*	In		:	None.
*
*	Out		:	TRUE if the Browser list should display active title.
*
*	Desc 	:	The Browser list displays the active title if this function returns TRUE.
****************************************************************************************/
STATIC BOOL _DisplayActiveTitle(void)
{
	MSO_DVDVR __NEAR* pDVDVRWindow = (MSO_DVDVR __NEAR*)MS_FindDescendant(gpScreen, &oDVDVRDescriptor);

	if(NULL != pDVDVRWindow)
		return pDVDVRWindow->moParam.mbDisplayActiveItem;
	
	return FALSE;
}

/***************************************************************************************
*	Function 	: 	_ResetActiveTitleFlag
*
*	In		:	None.
*
*	Out		:	None.
*
*	Desc 	:	Resets the mbDisplayActiveItem flag of MSO_DVDVR.
****************************************************************************************/
STATIC void _ResetActiveTitleFlag(void)
{
	MSO_DVDVR __NEAR* pDVDVRWindow = (MSO_DVDVR __NEAR*)MS_FindDescendant(gpScreen, &oDVDVRDescriptor);

	if(NULL != pDVDVRWindow)
		pDVDVRWindow->moParam.mbDisplayActiveItem = FALSE;
}

/***************************************************************************************
*	Function 	: 	_GetDiscName
*
*	In		:	1.	pFormUniStr	=	Pointer to structure that holds the formatted Unicode string.
*				2.	wParam		=	Contains the current playing track in the HIWORD, and the 
*									total number of tracks in the LOWORD.
*
*	Out		:	None.
*
*	Desc 	:	This function builds the unicode formatted string which would display the DVD-VR 
*				disc name.
****************************************************************************************/
#pragma argsused
STATIC void _GetDiscName(FORMATED_UNICODE_STRING __NEAR* pFormUniStr, UINT32 wParam)
{
	UINT8 cWordsWritten = STR_GenerateOSDMESSAGEString(S_DVD_VR, pFormUniStr->mszUniStr, 0, UNISTR_LENGTH_MAX);

	// Tag a colon, and a space on the end.
	pFormUniStr->mszUniStr[cWordsWritten++] = L':';
	pFormUniStr->mszUniStr[cWordsWritten++] = UNICODE_SPACE;
	
	STR_GenerateDiscName(pFormUniStr->mszUniStr, cWordsWritten, (UNISTR_LENGTH_MAX - cWordsWritten));

	// Reformat the unicode string.
	OSDR_FormatUniString(pFormUniStr);
}

/***************************************************************************************
*	Function 	: 	_GetPlayTitle
*
*	In		:	1.	pFormUniStr	=	Pointer to structure that holds the formatted Unicode string.
*				2.	wParam		=	Contains the current playing title in the HIWORD, and the 
*									total number of titles in the LOWORD.
*
*	Out		:	None.
*
*	Desc 	:	This function builds the unicode formatted string which would display the current 
*				playing title, and the total number of titles in the current program chain.
****************************************************************************************/
#pragma argsused
STATIC void _GetPlayTitle(FORMATED_UNICODE_STRING __NEAR* pFormUniStr, UINT32 wParam)
{
	STR_GenerateNumericAndTotalNumeric(_GetCurrentTitleFromParam(wParam), _GetTotalTitlesFromParam(wParam), 
										pFormUniStr->mszUniStr, 0, UNISTR_LENGTH_MAX + 1);
	OSDR_FormatUniString(pFormUniStr);
}

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

/***************************************************************************************
*	Function 	: 	_ProgramChainOperation
*
*	In		:
*
*	Out		:
*
*	Desc 	:	MSO_PROGRAM_CHAIN user operation function.
****************************************************************************************/
STATIC MS_OP _ProgramChainOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
	// Pre-processing
	switch(MsOp)
	{
	case MS_OP_TICK:
		{			 
			MSO_PROGRAM_CHAIN __NEAR* pProgramChain = (MSO_PROGRAM_CHAIN __NEAR*)pThis;
			PGC_TYPE tProgramChain = _GetProgramChainType();
			
			if(tProgramChain != pProgramChain->moParam.mtProgramChain)
			{				
				OSD_MESSAGES osdProgramChain = (PGC_TYPE_ORIGINAL == tProgramChain) ? S_PROGRAM_LIST : S_PLAY_LIST;
				pProgramChain->moParam.mtProgramChain = tProgramChain;

				MS_SendOperation(pThis, MS_OP_BUILD_TEXT_STRING, osdProgramChain);
				MS_DisplayAddObject(pThis);
			}
		}
		break;

	default:
		break;
	}

	MsOp = OTEXT_Operation(pThis, MsOp, lParam);

	// Post-processing.
	switch(MsOp)
	{
	case MS_OP_INIT:			// Fall Through !!!
	case MS_OP_ON_DEFROST:
		{			 
			MSO_PROGRAM_CHAIN __NEAR* pProgramChain = (MSO_PROGRAM_CHAIN __NEAR*)pThis;
			pProgramChain->moParam.mtProgramChain = PGC_TYPE_NONE;
		}
		break;
		
	default:
		break;
	}
	return MsOp;
}

/***************************************************************************************
*	Function 	: 	_PlayTitleOperation
*
*	In		:
*
*	Out		:
*
*	Desc 	:	MSO_PLAYTITLE user operation function.
****************************************************************************************/
STATIC MS_OP _PlayTitleOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
	// Pre-processing
	switch(MsOp)
	{
	case MS_OP_TICK:
		{			 
			PGC_TYPE tProgramChain = _GetProgramChainType();
			
			// Display current/total titles if the following conditions hold true:
			// 1. The current play state is not full stop state.
			// 2. The active item belongs to the orginal/user defined program chain if the original/user define 
			// program chain is currently displayed in the Browser list respectively.
			if(!CoreAPI_IsFullStop() 
				&& (((PGC_TYPE_ORIGINAL == tProgramChain) && CoreAPI_DVDVRIsPGPlaying())
				|| ((PGC_TYPE_USERDEFINED == tProgramChain) && !CoreAPI_DVDVRIsPGPlaying())))			
			{ 
				MSO_PLAYTITLE __NEAR* pPlayTitle = (MSO_PLAYTITLE __NEAR*)pThis;
				UINT16 wCurrentTitle = (PGC_TYPE_ORIGINAL == tProgramChain) ? CoreAPI_GetDVDVRCurrtProgramNum() : CoreAPI_GetDVDVRCurrentPlayListNum();
				UINT16 wTotalTitles = (PGC_TYPE_ORIGINAL == tProgramChain) ? CoreAPI_GetDVDVRMaxProgramNum() : CoreAPI_GetDVDVRMaxPlayListNum();

				if((wCurrentTitle != pPlayTitle->moParam.mwTitleCurrent) || (wTotalTitles != pPlayTitle->moParam.mwTitlesTotal) || MS_IsInvisible(pThis))
				{
					pPlayTitle->moParam.mwTitleCurrent 	= wCurrentTitle;
					pPlayTitle->moParam.mwTitlesTotal	= wTotalTitles;

					MS_SendOperation(pThis, MS_OP_BUILD_TEXT_STRING, _MakePlayTitleParam(pPlayTitle->moParam.mwTitleCurrent, pPlayTitle->moParam.mwTitlesTotal));
					MS_ClearInvisible(pThis);
					MS_DisplayAddObject(pThis);
				}
			}
			else
			{
				if(!MS_IsInvisible(pThis))
				{
					MS_SetInvisible(pThis);
					MS_DisplayAddObject(pThis);
				}
			}
		}
		break;
		

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人一区二区艾草| 粗大黑人巨茎大战欧美成人| 亚洲综合在线观看视频| 日本一区二区成人在线| 中文字幕av不卡| 国产精品久久国产精麻豆99网站| 欧美激情综合在线| 国产午夜精品一区二区| 欧美高清在线一区| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕日韩av资源站| 亚洲激情自拍偷拍| 亚洲成av人**亚洲成av**| 日韩高清不卡一区二区| 麻豆91在线播放| 国产麻豆成人精品| av男人天堂一区| 欧美综合一区二区| 91 com成人网| 久久综合99re88久久爱| 国产精品不卡在线| 亚洲成人高清在线| 久久99精品久久久久久| 成人激情免费电影网址| 色欧美88888久久久久久影院| 欧美性一二三区| 日韩一区二区在线看| 国产区在线观看成人精品| 亚洲欧美激情在线| 日本欧美一区二区| 国产.欧美.日韩| 欧美在线free| 欧美精品一区二区三区蜜臀| 国产精品网站在线| 亚洲不卡一区二区三区| 精品一区二区三区久久久| 99久久99久久精品国产片果冻| 欧美日韩中文字幕一区二区| 精品国产百合女同互慰| 亚洲天堂免费在线观看视频| 手机精品视频在线观看| 成人污视频在线观看| 欧美日韩午夜在线视频| 2023国产精品视频| 亚洲一区二区三区四区在线观看| 九九久久精品视频| 色菇凉天天综合网| 亚洲美女少妇撒尿| 另类调教123区| 日本乱人伦aⅴ精品| 精品精品国产高清a毛片牛牛 | 国产精品久久午夜夜伦鲁鲁| 一区二区三区波多野结衣在线观看| 毛片av一区二区| 91丨porny丨在线| 精品乱人伦一区二区三区| 日韩理论片网站| 精品一区二区三区久久| 欧美在线高清视频| 国产精品国产三级国产三级人妇 | 亚洲裸体xxx| 精品一区二区免费看| 在线精品国精品国产尤物884a| 精品成人在线观看| 亚洲成av人片在线观看无码| 成人黄色软件下载| 久久亚洲一区二区三区四区| 香蕉久久一区二区不卡无毒影院| 成人av在线一区二区三区| 欧美v亚洲v综合ⅴ国产v| 亚洲国产综合人成综合网站| 成人avav影音| 久久精品一区二区三区不卡| 免费在线观看精品| 欧美色图天堂网| 亚洲黄色片在线观看| 成人a级免费电影| 国产校园另类小说区| 美女视频免费一区| 欧美日韩高清影院| 一区二区欧美国产| 91碰在线视频| 国产欧美久久久精品影院| 久久av老司机精品网站导航| 欧美人伦禁忌dvd放荡欲情| 亚洲精选视频在线| fc2成人免费人成在线观看播放| 久久久www成人免费毛片麻豆 | 福利91精品一区二区三区| 精品欧美久久久| 日本女人一区二区三区| 欧美日本一区二区| 亚洲v精品v日韩v欧美v专区| 色88888久久久久久影院按摩| 中文字幕一区二| 92精品国产成人观看免费| 国产精品免费看片| 99久久精品费精品国产一区二区| 国产精品婷婷午夜在线观看| 成人午夜碰碰视频| 亚洲色图一区二区三区| 91美女片黄在线观看91美女| 一区二区三区四区高清精品免费观看| 色综合一个色综合| 亚洲制服丝袜在线| 欧美精品第1页| 日韩制服丝袜先锋影音| 91精品国产日韩91久久久久久| 日韩二区三区在线观看| 日韩久久久久久| 极品少妇xxxx偷拍精品少妇| 久久久久国产一区二区三区四区| 国产成人精品免费看| 一区在线中文字幕| 在线视频综合导航| 日韩国产欧美在线观看| 精品久久久影院| 国产成人无遮挡在线视频| 中文字幕在线观看不卡| 色美美综合视频| 日韩av成人高清| 亚洲国产欧美另类丝袜| 欧美日韩1234| 精品一区二区三区视频在线观看| 国产日韩视频一区二区三区| 99视频一区二区三区| 亚洲成人动漫在线免费观看| 日韩欧美在线综合网| 国产传媒欧美日韩成人| 亚洲欧美二区三区| 在线播放中文一区| 国产成人亚洲精品狼色在线| 亚洲人成亚洲人成在线观看图片| 欧美性猛交xxxx黑人交| 丝袜美腿亚洲一区| 国产欧美一区二区精品忘忧草| 91原创在线视频| 麻豆成人av在线| 国产精品第13页| 91精品国产黑色紧身裤美女| 国产精品18久久久久久久久| 亚洲免费在线视频一区 二区| 欧美一区二区三区日韩| 国产白丝网站精品污在线入口| 亚洲精品菠萝久久久久久久| 精品国产sm最大网站免费看| 91尤物视频在线观看| 日本视频中文字幕一区二区三区| 国产精品天美传媒沈樵| 欧美男人的天堂一二区| 国产91精品在线观看| 三级欧美韩日大片在线看| 中文字幕av免费专区久久| 91精品国产乱| 色狠狠色狠狠综合| 国产精品羞羞答答xxdd| 丝袜脚交一区二区| 国产精品久久久99| 精品成人在线观看| 欧美人伦禁忌dvd放荡欲情| 成人app网站| 极品少妇一区二区| 丝袜亚洲另类欧美综合| 亚洲欧美色综合| 久久精品免费在线观看| 欧美精品日韩精品| 91麻豆文化传媒在线观看| 国产在线一区二区| 日韩影院在线观看| 亚洲美女免费视频| 国产精品三级av在线播放| 精品国产伦一区二区三区观看方式| 色噜噜狠狠色综合中国 | 日韩欧美高清在线| 欧美自拍偷拍午夜视频| 欧美mv和日韩mv国产网站| 色www精品视频在线观看| 国产电影精品久久禁18| 麻豆专区一区二区三区四区五区| 一区二区三区在线高清| 国产精品网友自拍| 久久久久免费观看| 欧美va亚洲va在线观看蝴蝶网| 欧美日韩三级一区| 在线观看日韩毛片| 99r精品视频| 9i在线看片成人免费| 国v精品久久久网| 高清国产一区二区| 国产91精品在线观看| 国产成人精品午夜视频免费| 精品影院一区二区久久久| 日本欧美在线观看| 热久久国产精品| 蜜桃视频一区二区三区在线观看| 爽爽淫人综合网网站| 日韩av在线免费观看不卡| 亚洲成a人片综合在线| 亚洲成a人片在线不卡一二三区 | 91蝌蚪porny|