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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? screenprocessing.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* **************************************************************************************
*  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: $Workfile$
*
* Description:
* ============
*
*
****************************************************************************************/

#include "Config.h" 			// Global Configuration - do not remove!

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

#include "include\sysdefs.h"

// Included CORE files
#include "Playcore\Coremain\coredefs.h"
#include "playcore\scpad\scmgr.h"
#include "Playcore\Coremain\BrowseHandler.h"
#include "Playcore\ps\ps.h"
//#include "Playcore\Coremain\CoreGDef.h"

// Included CORE API files
#include "CoreAPI\CoreAPI.h"
#include "CoreAPI\DeviceManager.h"

// Included UI MENU SYSTEM files
#include "GUI\Menu_system\ms_menu.h"
#include "GUI\Menu_system\ms_screen.h"
#include "Menu_config\menu_config_common.h"

// Included CUSTOMER files
#include "Runtime\run_time_menu.h"
#include "Clips\clips_menu.h"
#include "Setup\setup_menu.h"
#include "Components\Message\o_message_handler.h"
#include "Components\Screen_saver\o_ssaver.h"
#include "Components\Firmware_upgrade\o_firmware_upgrade.h"
#include "Menu\menu_operation_def.h"
#include "Strings\Strings.h"
#include "Screen\ScreenProcessing.h"
#include "Screen\menu_manager.h"
#include "UI_Manager\UIOP_Lib\uiop_lib.h"
#include "gui\Components\Playmode\o_playmode.h"
#ifdef D_GUI_COMPONENT_PROGRAM
#include "Components\Program\o_program.h"
#endif

#ifdef D_GINGER_I86
#include "Decoder\OSDLayou.h"
#include "Decoder\decoder.h"
#endif //D_GINGER_I86
#ifdef D_GINGER_I96
#include "OSDLayou.h"
#endif //D_GINGER_I96

#ifdef TV_GUARDIAN_ENABLE
#include "Kernel\EventDef.h"
#include "Playcore\TVG\TVGAPI.h"
#endif // TV_GUARDIAN_ENABLE
// <<< ITA_YO_0001G : Customizing of loader spinning. Sync saver to spin down.
#ifdef D_SYNC_SPINDOWN_TO_OSDSAVER
#include "Kernel\eventdef.h"
#endif
// >>> ITA_YO_0001G : Customizing of loader spinning. Sync saver to spin down.


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

// Include configuration header file: named constants, macros and typedefs.
#include "Screen\ScreenProcessing_config.h"
// Include custom header file: customer specific definitions, over-writing common ones.
#include "Screen\Custom\ScreenProcessing_custom.h"

/**************************************************************************
*	Static macro declaration
***************************************************************************/
#define MS_IsScreenPal		MS_IsGeneralPurpose1
#define MS_SetScreenPal		MS_SetGeneralPurpose1
#define MS_ClearScreenPal	MS_ClearGeneralPurpose1

#define MS_IsEnableUserOp	MS_IsGeneralPurpose2
#define MS_EnableUserOp		MS_SetGeneralPurpose2
#define MS_DisableUserOp	MS_ClearGeneralPurpose2

/****************************************************************************************************
*	DEFINITION: Public (global) variables
****************************************************************************************************/
UINT16 __NEAR wDeviceIdCurrent;
UINT16 __NEAR wDeviceIdRequested;


/**************************************************************************
*	Static functions declaration
***************************************************************************/
static MS_OP _ScreenOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
static MS_OP _ScreenMsOpTranslator(MSO_OBJECT __NEAR* pThis, MS_OP  MsOp, UINT32 lParam);
static MS_OP _ScreenPostUserOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
static MS_OP _ScreenSSaverOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC void _ScreenSaverStartTimer(void);
STATIC void _ScreenRestartPlayback(void);

// Include custom code file: customer specific code, over-writing common one.
#include "Screen\Custom\ScreenProcessing_custom.c"
// Include configuration file: constants.
#include "Screen\ScreenProcessing_config.c"

/**************************************************************************
*	Screen descriptor for the whole project
***************************************************************************/
static CONST MS_DESCRIPTOR_SCREEN oScreenDescriptor =
{
	{
		sizeof(MSO_SCREEN),
		MS_NAV_NULL,
		MS_ATTR_CONTAINER | MS_ATTR_FOCUSABLE | MS_ATTR_FOCUS, // Attributes
		{
			0, 0, 720, 560,
		},
		SCREENPROC_ScreenOperation,
		mpfFillOsdSegNull,
		mpParamNull 
	},
	maContentsNull,
	mwNbrContentsNull
};
	
/**************************************************************************
*	Public functions definition
***************************************************************************/

/**************************************************************************
*	Function	:	SCREENPROC_OpenScreen
*	In		:	
*	Out		:	
*	Desc	:	
 ***************************************************************************/
void SCREENPROC_OpenScreen(void)
{
	dbg_printf(( "\nSCREENPROC_OpenScreen" ));
	// Initialise the screen descriptor
	((MSO_OBJECT __NEAR*)gpScreen)->mpDescriptor = (MS_DESCRIPTOR*)(&oScreenDescriptor);
	// Open the screen (allocation of memory for OSD areas to refresh, other MS variables...	
	MS_SendOp(MS_OP_SCREEN_OPEN, 0);
#ifdef OSD_ALLOW_ONLY_BIG_OSD_BUFF_MENUS
    OSDSetWriteToBuffProhibited(TRUE );
#endif
	MS_SendOp(MS_OP_OPEN, MENU_ID_RUNTIME);
}
/**************************************************************************
*	Function	:	SCREENPROC_OpenScreen
*	In		:	
*	Out		:	
*	Desc	:
 ***************************************************************************/
void SCREENPROC_CloseScreen(void)
{
	dbg_printf(( "\nSCREENPROC_CloseScreen" ));
	// Close the screen (allocation of memory for OSD areas to refresh, other MS variables...	
	MS_SendOp(MS_OP_SCREEN_CLOSE, 0);
}
/**************************************************************************
*	Function	:	SCREENPROC_OpenScreen
*	In		:	
*	Out		:	
*	Desc	:	
 ***************************************************************************/
BOOL SCREENPROC_MessageIsDisplayed (MS_OP MsOpMsg)
{
	MS_OP MsOpMsgSearch= MsOpMsg;

	MS_SendOp(MS_OP_IS_MSG_DISPLAYED, (UINT32)(&MsOpMsgSearch));

	if (MsOpMsg == MsOpMsgSearch)
		return 0;
	return 1;
}
/**************************************************************************
*	Function	:	SCREENPROC_ScreenOperation
*	In		:	
*	Out		:	
*	Desc	:	
 ***************************************************************************/
#pragma argsused
MS_OP SCREENPROC_ScreenOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{		
	// Transmit MS_OP of class message to the message handler only to save the stack
	if (MS_IS_MSG_OP(MsOp))
	{
		MSO_OBJECT __NEAR* pObjectMessageHandler;

		pObjectMessageHandler = MS_FindDescendant(pThis, &oDescriptorMessageHandler);
		if (NULL != pObjectMessageHandler)
		{
			MS_SendOperation(pObjectMessageHandler, MsOp, lParam);
		}
		return MS_OP_NONE;
	}

	MsOp = _ScreenSSaverOperation(pThis, MsOp, lParam);
	MsOp = _ScreenMsOpTranslator(pThis, MsOp, lParam);
	MsOp = _ScreenOperation(pThis, MsOp, lParam);

	// Post-processing project screen operation override
	// User operations require handling here only if not handled elsewhere.
	MsOp = _ScreenPostUserOperation(pThis, MsOp, lParam);

	MsOp = MENU_MANAGER_Operation(pThis, MsOp, lParam);
	return(MsOp);
}

/**************************************************************************
*	Function	:	_ScreenCoreOperation
*	In		:	
*	Out		:	
*	Desc	:	
 ***************************************************************************/
#ifndef D_CUSTOM__ScreenOperation
#pragma argsused
static MS_OP _ScreenOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
	if(!MS_IsEnableUserOp(pThis) && MS_IS_USER_OP(MsOp))
	{
		switch(MsOp)
		{
		case MS_OP_EJECT: // Fall Through !!!
		case MS_OP_POWER:
			break;
			
		default:
			PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
			return MS_OP_NONE;			
		}
	}

	// Pre-processing
	switch(MsOp)
	{
	case MS_OP_OPEN:
		MS_EnableUserOp(pThis);
		break;

	case MS_OP_MENU_ENABLE_USE_OP:
		if (lParam)
			MS_EnableUserOp(pThis);
		else
			MS_DisableUserOp(pThis);
		return MS_OP_NONE;

	case MS_OP_MENU_SET_REQUESTED_DEVICE:
		wDeviceIdRequested = (UINT16)lParam;
		return MS_OP_NONE;
		
	/*case MS_OP_DEVICE_SWITCH:
		// Ask the active menu to stop the current playback
		// Need to do from the screen to be able to switch runtime to browser in clips
		// No condition, always do stop for filesystem
		MS_SendOp(MS_OP_MENU_STOP, 0);
		break;*/
		
	case MS_OP_CORE_REFRESH_DEVICE_LIST:
		{
			UINT16 wDeviceId = (UINT16)lParam;
		
			if (DEVICE_DISC == wDeviceId)
			{				
				switch (DeviceManager_GetDeviceState(wDeviceId))
				{
				case DEVICE_TRAY_OPENING:
					CoreAPI_Stop();
					MS_SendOp(MS_OP_OPEN_MENU, MENU_ID_RUNTIME);
					if (wDeviceId == wDeviceIdCurrent)
					{
						wDeviceIdCurrent = 0xFFFF;
					}
					break;

				case DEVICE_IDENTIFIED:
					if (DeviceManager_IsAllowedContructDevice(wDeviceId))
					{
						MS_DisableUserOp(pThis);
						DeviceManager_ContructDevice(wDeviceId);
					}
					break;
					
				// In case no media or unknown media, we don't cache, so need to display the message here (only for disc)
				case DEVICE_NO_DEVICE:
					if (MEDIA_TYPE_NOMEDIA == DeviceManager_GetMediaType(wDeviceId))
					{
#ifdef TV_GUARDIAN_ENABLE
						if((!CoreAPI_TVGIsActivated())&&(0 !=CoreAPI_GetTVGRemindCounter())&&!CoreAPI_TVGAdvertisementHasBeenDisplayed())
							{
							MS_SEND_OP(MS_OP_MENU_TVG_ADVERTISEMENT,NULL);
							CoreAPI_TVGAdvertisementSetHasBeenDisplayed(TRUE);
						}
#endif // TV_GUARDIAN_ENABLE
						MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_NO_DISK);
					}
					break;
					
					// In case no media or unknown media, we don't cache, so need to display the message here (only for disc)
				case DEVICE_UNKNOWN:
					if (MEDIA_TYPE_UNKNOWN == DeviceManager_GetMediaType(wDeviceId))
						MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_BAD_DISK);
					break;

				default:
					break;
				}

			}
#ifdef FTA_SUPPORT
			else if (DEVICE_FTA == wDeviceId)
			{
				if (DeviceManager_IsAllowedContructDevice(wDeviceId))
				{
					MS_DisableUserOp(pThis);
					DeviceManager_ContructDevice(wDeviceId);
                
				}
				break;
			}
#endif // FTA_SUPPORT

			// Other device than DISC
#ifdef SUPPORT_FLASH_CARD
			else
			{
				if (DEVICE_REMOVED == DeviceManager_GetDeviceState(wDeviceId))
				{
					switch(DeviceManager_GetDeviceType(wDeviceId))
					{
					case DEVICE_TYPE_SD:
					case DEVICE_TYPE_MMC: 
					case DEVICE_TYPE_MS:
					case DEVICE_TYPE_MSPRO:
					case DEVICE_TYPE_CF:
					case DEVICE_TYPE_SM:
					case DEVICE_TYPE_XD:
						MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_CARD_REMOVED);
						break;
					case DEVICE_TYPE_USB:
						MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_USB_REMOVED);
						break;	
					default:
						break;
					}
					
					if (DeviceManager_IsAllowedDestructUSBCard(wDeviceId))
					{
						// !!! API SEQUENCE: Close the menu (destruct the directory) before destructing the device
						// TODO: when multipage, maybe another device is playing in the clips
						if (wDeviceId == wDeviceIdCurrent)
						{
							MS_MenuClose((MS_DESCRIPTOR_MENU *)MENU_ID_CLIPS);
							MS_SendOp(MS_OP_OPEN_MENU, MENU_ID_RUNTIME);
							wDeviceIdCurrent = 0xFFFF;
						}
					   	DeviceManager_DestructUSBCard(wDeviceId);
					
						/*if (wDeviceId == wDeviceIdCurrent)
						{
							wDeviceIdCurrent = 0xFFFF;
							// If the disc is present switch ot it and the only device, else go to Runtime menu
							if (		(DEVICE_IDENTIFIED == DeviceManager_GetDeviceState(DEVICE_DISC))
								&& 	(1 == DeviceManager_GetNumberDevices())) 
							{
								if (DeviceManager_WaitBHIdle())
								{
									MS_DisableUserOp(pThis);
									DeviceManager_ContructDevice(DEVICE_DISC);
								}
							}
						}*/
					}
					else
					{
						BREAK_POINT();
					}					
								
				}
				else if (DEVICE_UNKNOWN == DeviceManager_GetDeviceState(wDeviceId))
				{
					switch (DeviceManager_GetDeviceType(wDeviceId))
					{
					case DEVICE_TYPE_USB:
						MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_BAD_USB);
						//MS_SendOp(MS_OP_MSG_ERROR_UNSUPPORTED_USB, 0);
						break;
						
					case DEVICE_TYPE_SD:
					case DEVICE_TYPE_MMC:
					case DEVICE_TYPE_MS:
					case DEVICE_TYPE_MSPRO:
					case DEVICE_TYPE_CF:
					case DEVICE_TYPE_SM:
					case DEVICE_TYPE_XD:
						MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_BAD_CARD);
						break;

					default:
						break;
					}
					

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情成人在线| 91精品国产色综合久久不卡蜜臀| 偷拍一区二区三区四区| 亚洲国产欧美另类丝袜| 美国毛片一区二区三区| 亚洲一级二级三级| 极品少妇xxxx精品少妇偷拍| 色妞www精品视频| 久久久五月婷婷| 亚洲视频图片小说| 久草在线在线精品观看| 99国产精品视频免费观看| 91精品国产手机| 日韩无一区二区| 欧美一级电影网站| 26uuu国产日韩综合| 国产精品成人在线观看| 午夜视频一区二区三区| 成人国产精品免费观看视频| 欧美亚洲动漫另类| 国产精品国产三级国产普通话99| 亚洲国产精品久久久男人的天堂 | 亚洲欧美另类久久久精品2019| 一区二区三区免费网站| 精品亚洲成a人| 在线观看免费视频综合| 国产欧美日韩另类视频免费观看| 136国产福利精品导航| 久久草av在线| 3d动漫精品啪啪1区2区免费| 国产精品久久久久久久久图文区| 久久精品国产成人一区二区三区 | 91麻豆精品91久久久久同性| 国产偷国产偷亚洲高清人白洁| 亚洲成av人片观看| 99久久综合精品| 久久网站最新地址| 美女www一区二区| 精品卡一卡二卡三卡四在线| 奇米影视一区二区三区小说| 99久久er热在这里只有精品15 | 久久99蜜桃精品| 欧美精品日韩综合在线| 亚洲一区二区三区四区五区中文| 色综合天天在线| 无吗不卡中文字幕| 精品国产露脸精彩对白| 国产美女在线观看一区| 国产精品热久久久久夜色精品三区| 成人ar影院免费观看视频| 亚洲黄色av一区| 欧美色大人视频| 蜜臀av性久久久久蜜臀aⅴ| www国产精品av| 本田岬高潮一区二区三区| 一区二区三区国产| 欧美日韩一区中文字幕| 精品一区二区免费看| 亚洲激情中文1区| 国产嫩草影院久久久久| 欧美片在线播放| 成人av电影在线观看| 蜜桃一区二区三区四区| 一区二区三区毛片| 国产欧美一区二区在线观看| 3atv一区二区三区| 99久久综合精品| 国产精品自在在线| 免费一级片91| 午夜一区二区三区视频| 国产三级精品三级| 日韩视频免费观看高清完整版| av电影在线观看完整版一区二区| 麻豆精品久久精品色综合| 亚洲色图欧美偷拍| 欧美激情一区二区三区| 欧美成人vr18sexvr| 欧美午夜精品免费| 91色在线porny| 国内精品伊人久久久久av一坑 | 国产成人精品aa毛片| 日韩二区三区四区| 亚洲制服丝袜在线| 亚洲欧美在线高清| 亚洲日本青草视频在线怡红院 | 激情图区综合网| 国产在线视频一区二区三区| 国内成人精品2018免费看| 久久激情五月激情| 成人午夜视频网站| 91极品美女在线| 欧美一二三四区在线| 久久久99精品久久| 亚洲天堂成人在线观看| 亚洲va天堂va国产va久| 水野朝阳av一区二区三区| 蜜臀91精品一区二区三区| 国产精品白丝jk黑袜喷水| 91麻豆精东视频| 欧美肥妇bbw| 久久精品亚洲国产奇米99| 国产精品你懂的在线欣赏| 亚洲乱码中文字幕| 精品午夜一区二区三区在线观看| 国产精品99久久久| 在线观看亚洲专区| 精品国产一区二区三区不卡| 欧美一区二区精品久久911| 精品国产91洋老外米糕| 国产精品女主播av| 亚洲一区二区高清| 91麻豆蜜桃一区二区三区| 亚洲精品免费一二三区| 在线精品视频免费观看| 一区二区三区在线不卡| 国产剧情一区在线| 国产精品麻豆视频| 欧美日本在线一区| 成人禁用看黄a在线| 日本视频中文字幕一区二区三区| www一区二区| 6080国产精品一区二区| 成人爽a毛片一区二区免费| 五月天欧美精品| 国产精品夫妻自拍| 久久夜色精品一区| 欧美二区乱c少妇| 91久久国产综合久久| 99久久婷婷国产综合精品| 久久精品999| 蜜桃视频在线观看一区二区| 一区二区三区91| 欧美国产日韩在线观看| 日韩一级片在线观看| 欧美性高清videossexo| 色狠狠一区二区| 91麻豆成人久久精品二区三区| 成人天堂资源www在线| 国产美女在线观看一区| 国产精品亚洲第一区在线暖暖韩国| 日日夜夜一区二区| 天堂成人国产精品一区| 日本午夜一区二区| 免费成人在线网站| 久久91精品国产91久久小草| 九九在线精品视频| 亚洲欧美日韩一区| 亚洲综合在线电影| 亚洲精品久久久蜜桃| 国产精品第一页第二页第三页| 欧美国产日韩在线观看| 国产欧美一区二区三区鸳鸯浴| 中文在线资源观看网站视频免费不卡| 91精品在线观看入口| 91精品在线观看入口| 日韩一区二区在线观看| 精品国产乱码久久久久久牛牛| 久久久亚洲午夜电影| 亚洲三级在线观看| 蜜臀av国产精品久久久久| 国产成人激情av| 欧美探花视频资源| 久久久国产午夜精品 | 26uuu国产电影一区二区| 中文字幕成人av| 亚洲图片欧美综合| 国产乱人伦精品一区二区在线观看| 9i在线看片成人免费| 777久久久精品| 日韩美女精品在线| 精彩视频一区二区| 91成人免费电影| 中文字幕中文乱码欧美一区二区| 日韩一区欧美二区| 99精品在线观看视频| 久久久久亚洲综合| 日韩**一区毛片| 色狠狠色噜噜噜综合网| 欧美国产精品一区二区| 日韩精品电影在线观看| 91麻豆精东视频| 国产精品美女一区二区在线观看| 免费人成精品欧美精品| 欧美日韩一区小说| 亚洲欧美福利一区二区| 成人在线视频一区二区| 日韩精品一区二区三区中文精品| 亚洲欧美区自拍先锋| 99精品一区二区| 国产精品丝袜91| 91免费在线播放| 一区二区三区日韩欧美精品| 99re热这里只有精品视频| 亚洲人成影院在线观看| 福利一区二区在线| 久久精品一区四区| 99精品在线观看视频| 亚洲日本丝袜连裤袜办公室| 91国产成人在线| 日韩av在线播放中文字幕|