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

📄 run_time_menu.c

📁 ZORAN 962/966 SOURCE CODE,DVD chip
💻 C
📖 第 1 页 / 共 3 页
字号:
	case MS_OP_BRIGHTNESS_EDGE_CONTROL:
	{	
		if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
			MS_SendOperation(pThis, MS_OP_EMPTY, 0);	
		OBrightnessEdge_OpenAtPos((MSO_CONTAINER __NEAR * )pThis, DEFAULT_POSITION, DEFAULT_POSITION);		
		return MS_OP_NONE;	
	}
#endif//D_GUI_COMPONENT_BRIGHTNESS_EDGE_CONTROLLER

#ifdef D_GUI_PROLOGICII_COMPONENT
	case MS_OP_PROLOGIC:
	{
		if (!CoreAPI_IsMediaReady())
		{
			PROHIBIT(MSG_PROHIBIT_DISC_NOT_READY);
			return MS_OP_NONE;	
		}
		if( CoreAPI_IsMenuAllowedProLogicII())
		{
			if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
				MS_SendOperation(pThis, MS_OP_EMPTY, 0);	

			OProLogicII_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_PROLOGICII_X, AREA_PROLOGICII_Y);	
		}
		else
		{
			PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
		}
		return MS_OP_NONE;	
	}

#endif //#ifdef D_GUI_PROLOGICII_COMPONENT

	// If the time search component was not opened, 
	// the pop-up container opens it in post processing.			
	case MS_OP_0: // Fall Through
	case MS_OP_1: // Fall Through
	case MS_OP_2: // Fall Through
	case MS_OP_3: // Fall Through
	case MS_OP_4: // Fall Through
	case MS_OP_5: // Fall Through
	case MS_OP_6: // Fall Through
	case MS_OP_7: // Fall Through
	case MS_OP_8: // Fall Through
	case MS_OP_9:
// TODO: >>>
// Merged here but need use API
#ifdef D_GINGER_I96
		if (DEC_DISC_TYPE_SW_UPDATE == g_disc_type)
		{
			return MS_OP_NONE;
		}
#endif //D_GINGER_I96
// TODO: <<<
#ifdef D_10P_KEY
		if ((MEDIA_TYPE_SVCD == CoreAPI_GetCurrentMediaType()) ||(MEDIA_TYPE_VCD == CoreAPI_GetCurrentMediaType())||(MEDIA_TYPE_DVD_VIDEO== CoreAPI_GetCurrentMediaType()) )
			break;
#endif

		if (CoreAPI_IsInMenu() || !CoreAPI_IsMenuAllowedSearch())
			break;
		else if (((MEDIA_TYPE_SVCD == CoreAPI_GetCurrentMediaType()) ||(MEDIA_TYPE_VCD == CoreAPI_GetCurrentMediaType())) && CoreAPI_IsSVCDPBCOn())
		{
			PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
			return MS_OP_NONE;
		}
		// Fall through!	

#ifdef D_GUI_COMPONENT_SEARCH
	case MS_OP_SEARCH:
		if (!CoreAPI_IsMediaReady())
		{
			PROHIBIT(MSG_PROHIBIT_DISC_NOT_READY);
			return MS_OP_NONE;	
		}
		if (CoreAPI_IsMenuAllowedSearch())
		{
			MSO_OBJECT __NEAR* pObject;
			
// TODO: remove >>>
// Merged here but it is a fix, not a solution
#ifdef D_GINGER_I96
				MS_ComponentClose((MS_DESCRIPTOR_COMPONENT*)&oComponentDisplay, FALSE);
#endif //D_GINGER_I96
// TODO: <<<
			if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
				MS_SendOperation(pThis, MS_OP_EMPTY, 0);			

			pObject = OSEARCH_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_SEARCH_X, AREA_SEARCH_Y);
			
			if((MsOp >= MS_OP_1) && (MsOp <= MS_OP_9))
				MS_SendOperation(pObject, MsOp, lParam);
			return MS_OP_NONE;	
		}
		PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
		return MS_OP_NONE;	
#endif

#ifdef D_GUI_COMPONENT_SEARCH_DISPLAY
	case MS_OP_DISPLAY:
		if (!CoreAPI_IsMediaReady())
		{
			PROHIBIT(MSG_PROHIBIT_DISC_NOT_READY);
			return MS_OP_NONE;	
		}
		if (CoreAPI_IsMenuAllowedDisplay())
		{
			MSO_OBJECT __NEAR* pObject;

			if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
				MS_SendOperation(pThis, MS_OP_EMPTY, 0);			

			if ((MsOp >= MS_OP_1) && (MsOp <= MS_OP_9))
				pObject = OSearch_Display_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_SEARCH_X, AREA_SEARCH_Y, TRUE);		
			else
				pObject = OSearch_Display_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_SEARCH_X, AREA_SEARCH_Y, FALSE);		
			
			if ((MsOp >= MS_OP_1) && (MsOp <= MS_OP_9))
				MS_SendOperation(pObject, MsOp, lParam);
			return MS_OP_NONE;	
		}
		PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
		return MS_OP_NONE;
#endif

	case MS_OP_CORE_FUPGRADE_REQUEST:
		{
			MSO_OBJECT __NEAR* pObject;

			if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
				MS_SendOperation(pThis, MS_OP_EMPTY, 0);
#ifdef D_GUI_SINGLE_LINE_COMPONENT
			OSDTurnOff();
			_LayoutFirmwareUpgrade();
#ifdef D_GINGER_I86
			OSDTurnOn();
#endif //D_GINGER_I86
#ifdef D_GINGER_I96
			VPU_SetOSDStatus(VPU_OSD_STATUS_START_E);
#endif
			MS_ObjectResize(pThis, AREA_POPUPMENU_FIRMWARE_UPGRADE_W, AREA_POPUPMENU_FIRMWARE_UPGRADE_H);
			MS_ObjectMove(pThis, AREA_POPUP_MOVE_X, AREA_POPUP_MOVE_Y);
#endif//#ifdef D_GUI_SINGLE_LINE_COMPONENT
			pObject = (MSO_OBJECT __NEAR * )MS_ComponentOpen((MS_DESCRIPTOR_COMPONENT *)&oDescriptorFirmwareUpgrade, 
															(MSO_CONTAINER __NEAR*)pThis);

			MS_ObjectMove(pObject, AREA_POPUPMENU_FIRMWARE_UPGRADE_X, AREA_POPUPMENU_FIRMWARE_UPGRADE_Y);
			MS_ObjectResize(pObject, AREA_POPUPMENU_FIRMWARE_UPGRADE_W, AREA_POPUPMENU_FIRMWARE_UPGRADE_H);
			MS_DisplayAddObject(pThis);
		}
		return MS_OP_NONE;		

#ifdef  D_GUI_COMPONENT_PLAYMODE
	case MS_OP_PLAY_MODE:
		if(CoreAPI_IsMenuAllowedPlaymode())
		{
			if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
				MS_SendOperation(pThis, MS_OP_EMPTY, 0);
			
			//close display before pop up PlayMode
			if(PST_STOP == CoreAPI_GetPlayState())
				MS_ComponentClose((MS_DESCRIPTOR_COMPONENT*)&oComponentDisplay, FALSE);

#ifdef D_GUI_COMPONENT_DVDVR			
			// The DVD-VR, and the Play mode component cannot be open at the same instant.
			if(NULL != MS_FindDescendant(pThis->mpParent, &oDVDVRDescriptor))
				MS_ComponentClose((MS_DESCRIPTOR_COMPONENT*)&oDVDVRDescriptor, FALSE);
#endif // D_GUI_COMPONENT_DVDVR

			OPLAYMODE_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_PLAYMODE_X, AREA_PLAYMODE_Y);
		}
		else
			PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
		
		return MS_OP_NONE;
#endif //D_GUI_COMPONENT_PLAYMODE
		
#ifdef D_GUI_COMPONENT_PROGRAM
	case MS_OP_PROGRAM:
		if (!CoreAPI_IsMediaReady())
		{
			PROHIBIT(MSG_PROHIBIT_DISC_NOT_READY);
			return MS_OP_NONE;	
		}
		{
			BOOL bIsPlayBeforeOpened = FALSE;
			
			if (PST_STOP != CoreAPI_GetPlayState())
			{
				if (!CoreAPI_Stop() ||!CoreAPI_WaitForUICoreActionDone())
				{
					PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
					return MS_OP_NONE;
				}
				bIsPlayBeforeOpened = TRUE;
			}
			if (CoreAPI_IsMenuAllowedProgram())
			{
	#ifdef D_GINGER_I96
					MS_ComponentClose((MS_DESCRIPTOR_COMPONENT*)&oComponentDisplay, FALSE);
	#endif //D_GINGER_I96

				if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
					MS_SendOperation(pThis, MS_OP_EMPTY, 0);			

	#ifdef D_GUI_SINGLE_LINE_COMPONENT
				OSDTurnOff();
				_LayoutProgram();
	#ifdef D_GINGER_I86
				OSDTurnOn();
	#endif //D_GINGER_I86
	#ifdef D_GINGER_I96
				VPU_SetOSDStatus(VPU_OSD_STATUS_START_E);
	#endif
				MS_ObjectResize(pThis, AREA_MENU_W, AREA_MENU_H);
				MS_ObjectMove(pThis, 0, 0);
	#endif//#ifdef D_GUI_SINGLE_LINE_COMPONENT

				OProgram_Open((MSO_CONTAINER __NEAR*)pThis, bIsPlayBeforeOpened);
				return MS_OP_NONE;	
			}
		}
		PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
		return MS_OP_NONE;
#endif

	case MS_OP_BOOKMARK:
		{
			// Open the bookmark menu.			
			if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
				MS_SendOperation(pThis, MS_OP_EMPTY, 0);
			
			if (NULL == OBOOKMARK_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_BOOKMARK_X, AREA_BOOKMARK_Y))
				PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
		}
		return MS_OP_NONE;

#ifdef INTERNAL_KARAOKE
	case MS_OP_KARAOKE:
		{
			if(CoreAPI_IsMenuAllowedKaraoke())
			{
				if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
					MS_SendOperation(pThis, MS_OP_EMPTY, 0);
				if(NULL == OKARAOKE_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, AREA_KARAOKE_X, AREA_KARAOKE_Y))
					PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
			}
			else
				PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
			
		}
		return MS_OP_NONE;
#endif // INTERNAL_KARAOKE

	case MS_OP_CORE_PASSWORD_CHECK_REQUEST:
		if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
			MS_SendOperation(pThis, MS_OP_EMPTY, 0);
		OPASSWORD_PROMPT_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, FALSE, PASSWORD_TYPE_DVDV_PLAY, AREA_PASSWDPROMPT_X, AREA_PASSWDPROMPT_Y);
		return MS_OP_NONE;

	case MS_OP_SETUP:
		{
			MSO_OBJECT __NEAR* pPasswordPrompt = MS_FindDescendant(pThis, &oPasswordPromptDescriptor);
			
			if(NULL != pPasswordPrompt)
			{
				PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
				return MS_OP_NONE;
			}
		}
		break;

#ifdef TV_GUARDIAN_ENABLE
	case MS_OP_MENU_TVG_ADVERTISEMENT:
		OTVGuardianComponent_OpenAtPos((MSO_CONTAINER __NEAR*)MS_GetParentPtr(pThis), DEFAULT_POSITION,DEFAULT_POSITION);
		return MS_OP_NONE;
#endif // TV_GUARDIAN_ENABLE

#ifdef  D_GUI_COMPONENT_DEVICE_SWITCH
	case MS_OP_DEVICE_SWITCH:
		ODEVICESWITCH_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, DEFAULT_POSITION, DEFAULT_POSITION);
		return MS_OP_NONE;
#endif //D_GUI_COMPONENT_DEVICE_SWITCH
		

#ifdef DVD_AUDIO_SUPPORT
	case MS_OP_MENU_DVDA_REQUEST_PASSWORD:
		if(FALSE == MS_IsEmpty((MSO_CONTAINER __NEAR*)pThis))
			MS_SendOperation(pThis, MS_OP_EMPTY, 0);
		OPASSWORD_PROMPT_OpenAtPos((MSO_CONTAINER __NEAR*)pThis, FALSE, PASSWORD_TYPE_DVDA_PLAY, AREA_PASSWDPROMPT_X, AREA_PASSWDPROMPT_Y);
		return MS_OP_NONE;
	case MS_OP_MENU_DVDA_PENDING_PLAY_SET:
		_GetPendingPlayEntry(MS_GetParentPtr(pThis)) = (UINT16)lParam&0XFFFF ;
		break;	
	case MS_OP_MENU_DVDA_PENDING_PLAY_RUN:
		CoreAPI_HGRTrackPlay(((UINT32)_GetPendingPlayEntry(MS_GetParentPtr(pThis))<<16)|_GetDVDAUserPassword(MS_GetParentPtr(pThis)));
		break;
	case MS_OP_MENU_DVDA_USER_PASSWORD_SET:
		_GetDVDAUserPassword(MS_GetParentPtr(pThis)) = (UINT16)lParam;
		break;
	case MS_OP_MENU_DVDA_USER_PASSWORD_GET:
		*(UINT16 *)lParam =  _GetDVDAUserPassword(MS_GetParentPtr(pThis));
		return MS_OP_NONE;
#endif

	default:
		break;
	}	
	return MsOp;
}
 /***************************************************************************************/
#endif //D_CUSTOM
#ifdef FTA_SUPPORT
/****************************************************************************************************
* Function	: _FtaIsMsOpAllowed
*
* Input		: None
*
* Output		: None
*
* Return		:   return TRUE is MS_OP allowed when FTA device is playback.
*
* Description	:  
*  	
****************************************************************************************************/
static BOOL _FtaIsMsOpAllowed( UINT16 uiMsOP )
{
    if( !MS_IS_USER_OP( uiMsOP ) )
        return TRUE;
    if( DeviceManager_GetCurrentDevice() == DEVICE_FTA )
    {
        switch( uiMsOP )
        {
            case MS_OP_PLAY:
            case MS_OP_EJECT:
            case MS_OP_POWER:
            case MS_OP_MUTE:
            case MS_OP_PROLOGIC:
            case MS_OP_TV_SYS:
            case MS_OP_VIDEO_OUTMODE:		
            case MS_OP_VIDEO_ENHANCE:		
            case MS_OP_PSO_MODE:			
            case MS_OP_HD_RESOLUTION:		
		case MS_OP_DISPLAY:			
            case MS_OP_CLEAR:				
            case MS_OP_SETUP:
            case MS_OP_BASS_MGR:			            		
            case MS_OP_VOLUME:            
            case MS_OP_DEVICE_SWITCH:		
            case MS_OP_FTA_SELECTION:            
            case MS_OP_FTA_CHANNEL_TABLE:
            case MS_OP_FTA_TRANSPORT_TABLE:
            case MS_OP_0: 
	        case MS_OP_1: 
	        case MS_OP_2: 
	        case MS_OP_3: 
	        case MS_OP_4: 
	        case MS_OP_5: 
	        case MS_OP_6: 
	        case MS_OP_7: 
	        case MS_OP_8: 
	        case MS_OP_9: 
            case MS_OP_CHNL_SCANNING:
            case MS_OP_SKIPF:
            case MS_OP_SKIPB:
		case MS_OP_MENU:
		case MS_OP_BOOKMARK:
                return TRUE;
            default:
                return FALSE;
        }
    } 
    return TRUE;
}
#endif

⌨️ 快捷键说明

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