亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
成人激情视频网站| 久久激五月天综合精品| 亚洲精品欧美激情| 久久影院电视剧免费观看| 日本韩国一区二区三区视频| 久久久国际精品| 亚洲国产一区二区三区青草影视| 久久综合久久综合九色| 中文字幕欧美激情| 亚洲视频在线观看一区| 美女视频黄 久久| 国产精品不卡在线观看| 777午夜精品视频在线播放| 播五月开心婷婷综合| 午夜久久久影院| 国产精品电影一区二区三区| 欧美一区二区人人喊爽| 色综合久久久久综合体桃花网| 黄色精品一二区| 日韩高清不卡一区二区| 一级女性全黄久久生活片免费| 国产欧美日韩亚州综合| 日韩欧美123| 亚洲人成网站在线| 国产精品伦理在线| 亚洲伦在线观看| 奇米一区二区三区av| 国产一区二区在线看| 波多野结衣欧美| 91极品视觉盛宴| 欧美日韩国产免费| 久久影院电视剧免费观看| 中文字幕中文字幕一区二区| 国产精品对白交换视频 | 成人黄色片在线观看| 成人短视频下载| 欧美日韩综合色| 欧美大片顶级少妇| 亚洲六月丁香色婷婷综合久久 | 不卡的av电影在线观看| 欧美在线不卡一区| 欧美大片在线观看一区| 欧美变态tickling挠脚心| 欧美老年两性高潮| 亚洲伊人色欲综合网| 欧洲中文字幕精品| 日韩中文字幕91| 日韩一区二区三区免费看| ㊣最新国产の精品bt伙计久久| 久久99这里只有精品| 欧美日韩视频在线第一区| 国产欧美视频在线观看| 亚洲成在线观看| 一本一本大道香蕉久在线精品| 欧美变态tickling挠脚心| 午夜视频一区在线观看| 91色在线porny| 国产精品国产自产拍高清av王其| 日韩高清国产一区在线| 51精品久久久久久久蜜臀| 欧美国产日本视频| 午夜国产不卡在线观看视频| 成人深夜在线观看| 久久久久亚洲蜜桃| 美女视频网站久久| 久久综合色8888| 蜜臀精品久久久久久蜜臀| 91黄色免费观看| 亚洲美女视频在线观看| 欧美在线|欧美| 亚洲欧美日韩系列| 91成人免费在线| 亚洲欧美日韩久久精品| 色八戒一区二区三区| 一区二区在线观看免费| 色婷婷综合久久久中文字幕| 夜夜亚洲天天久久| 欧美午夜电影网| 丝袜诱惑亚洲看片| 久久综合色8888| av中文字幕在线不卡| 一区二区三区久久| 欧美日韩三级在线| 捆绑调教一区二区三区| 久久久久久久久伊人| 99精品国产热久久91蜜凸| 亚洲激情自拍偷拍| 欧美第一区第二区| 成人av网站免费| 青青草原综合久久大伊人精品 | 欧美电影在线免费观看| 国产1区2区3区精品美女| 午夜在线电影亚洲一区| 国产精品久久久久影院老司 | 中文字幕亚洲区| 国产亚洲综合在线| 日韩欧美一区二区视频| 欧美男生操女生| 成人精品视频.| 美日韩一区二区| 午夜精品久久久久久久99水蜜桃| 欧美国产成人在线| 日韩一区二区电影网| 在线不卡a资源高清| 精品亚洲欧美一区| 亚洲成a人片综合在线| 国产精品亲子乱子伦xxxx裸| 亚洲精品在线三区| 精品国产人成亚洲区| 91精品国产品国语在线不卡| 在线观看三级视频欧美| 91一区一区三区| 91丨porny丨户外露出| 丰满少妇久久久久久久| 国产原创一区二区| 国产在线麻豆精品观看| 蜜桃视频一区二区| 日韩精品亚洲一区二区三区免费| 亚洲精选在线视频| 亚洲免费观看在线视频| 亚洲日本中文字幕区| 国产精品激情偷乱一区二区∴| 中文在线资源观看网站视频免费不卡 | 欧美精品xxxxbbbb| 7777精品伊人久久久大香线蕉完整版| 91成人网在线| 欧美一区二区三区在线视频| 日韩视频一区二区三区| 精品日韩在线观看| 精品久久久久久久人人人人传媒| 久久综合九色综合97_久久久| 国产亚洲精品久| 亚洲精品一二三| 美腿丝袜在线亚洲一区| 六月婷婷色综合| 成人av电影在线网| 777亚洲妇女| 一区二区三区四区精品在线视频| 中文字幕一区二区三区不卡在线 | 国产a精品视频| 在线观看日韩av先锋影音电影院| 亚洲色图清纯唯美| 欧美aⅴ一区二区三区视频| 国产寡妇亲子伦一区二区| 91精品办公室少妇高潮对白| 日韩视频免费观看高清在线视频| 亚洲国产成人一区二区三区| 亚洲午夜影视影院在线观看| 国产麻豆精品一区二区| 欧美日本乱大交xxxxx| 中文字幕成人在线观看| 裸体一区二区三区| 日本道色综合久久| 中文字幕乱码久久午夜不卡| 蜜桃视频一区二区三区| 欧美日韩激情一区| 一区二区国产盗摄色噜噜| 大尺度一区二区| 欧美国产日韩在线观看| 国产精品 欧美精品| 久久免费电影网| 国内精品久久久久影院一蜜桃| 欧美日韩在线不卡| 亚洲小少妇裸体bbw| 在线亚洲一区二区| 一区二区三区四区精品在线视频| 成人精品视频.| 国产欧美va欧美不卡在线| 国内外成人在线| 久久久国产精品麻豆| 国内成人自拍视频| 久久久久久电影| av电影在线观看一区| 国产一区二区三区免费观看 | 国产精品家庭影院| 99国产欧美另类久久久精品| 自拍偷拍亚洲欧美日韩| 欧美一a一片一级一片| 丝袜美腿亚洲一区| 日韩免费观看高清完整版| 国产一区二区在线免费观看| 久久久一区二区| 色婷婷精品久久二区二区蜜臀av | 午夜精品一区二区三区三上悠亚| 7777精品伊人久久久大香线蕉的| 奇米亚洲午夜久久精品| 久久综合精品国产一区二区三区 | 亚洲一区二区三区四区中文字幕| 精品视频999| 国产麻豆精品在线| 亚洲制服丝袜一区| 日韩午夜在线播放| jiyouzz国产精品久久| 日韩经典一区二区| 国产精品国产三级国产aⅴ中文 | 国产一区 二区 三区一级| 亚洲欧美aⅴ...| 久久久影院官网| 91精品国产欧美一区二区成人| 国产精品一级片|