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

📄 o_message_setting.c

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 C
📖 第 1 页 / 共 4 页
字号:
	case MS_OP_MSG_SYS_JPEG_ROTATION:
		eMsg = _HandleRotationOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_SYS_TV_STD:			
		eMsg = _HandleTvStdOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
		
	case MS_OP_MSG_SYS_VIDEO_OUTPUT:		
		eMsg = _HandleVideoOutputOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
		
	case MS_OP_MSG_SYS_PBC:			
		eMsg = _HandlePbcOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_SYS_JPEG_TRANSITION:		
		eMsg = _HandleJpegTransitionOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_PROHIBIT:
		eMsg = _HandleProhibitOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_ERROR_CORE:		// Display a core error message.
		eMsg = _HandleCoreErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_ERROR_DEC:		// Display a decoder error message.
		eMsg = _HandleDecErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_ERROR_DRIVE:		// Display a drive error message.
		eMsg = _HandleDriveErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_ERROR_CDNAV:		// Display a CD navigation error message.
		eMsg = _HandleCdNavErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_ERROR_CLIPSNAV:	// Display a CLIPS navigation error message.
		eMsg = _HandleClipsNavErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

	case MS_OP_MSG_ERROR_DVDNAV:	// Display a DVD navigation error message.
		eMsg = _HandleDvdNavErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

#ifdef DVD_VR_SUPPORT
	case MS_OP_MSG_ERROR_DVDVRNAV:	// Display a DVDVR navigation error message.
		eMsg = _HandleDvdVrNavErrorOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
#endif // DVD_VR_SUPPORT

#ifdef D_CACHE_CLIPSDB_ONLY_ONCE
case MS_OP_MSG_ERROR_DISC_PARTIALLY_CACHED:
		STR_GeneratePartialCached((UINT16)lParam, oFormUniStr.mszUniStr, 0, UNISTR_LENGTH_MAX);
		pMessage->moParam.mwTimer =	pMessageDescriptor->mwDefaultTimeout;
		break;

case MS_OP_MSG_ERROR_DISC_NO_SUPPORTED_FILE:
		eMsg = S_NO_SUPPORTED_FILE;
		pMessage->moParam.mwTimer = OMESSAGE_INFINITE_TIMEOUT;
		break;
#endif //D_CACHE_CLIPSDB_ONLY_ONCE

#ifdef EXTERNAL_KARAOKE
	case MS_OP_MSG_SYS_KARAOKE:
		eMsg = _HandleKaraokeOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
#endif //EXTERNAL_KARAOKE

	case MS_OP_MSG_SYS_3D:
		eMsg = _Handle3DOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;

#ifdef MPP_SUPPORT
	case MS_OP_MSG_SYS_MPP:
		eMsg = _HandleMppOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
#endif // MPP_SUPPORT

#ifdef D_ENABLE_DOLBY_EX_SUPPORT
	case MS_OP_MSG_SYS_DOLBY_EX:
		eMsg = _HandleDolbyExOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
#endif // D_ENABLE_DOLBY_EX_SUPPORT

	case MS_OP_MSG_SYS_MUSIC_AND_PHOTO:
		pMessage->moParam.mwTimer = pMessageDescriptor->mwDefaultTimeout;
		eMsg = S_MUSIC_AND_SLIDES;
		break;

#ifdef FTA_SUPPORT
	case MS_OP_MSG_ADD_CHANNEL_TO_FAVORITE:
		pMessage->moParam.mwTimer = pMessageDescriptor->mwDefaultTimeout;
		eMsg = S_ADD_TO_FAVORITE;
		break;
		
	case MS_OP_MSG_REMOVE_CHANNEL_FROM_FAVORITE:
		pMessage->moParam.mwTimer = pMessageDescriptor->mwDefaultTimeout;
		eMsg = S_REMOVE_FROM_FAVORITE;
		break;
	case MS_OP_MSG_CHANNEL_ALREADY_IN_FAVORITE:
		pMessage->moParam.mwTimer = pMessageDescriptor->mwDefaultTimeout;
		eMsg = S_ALREADY_IN_FAVORITE;
		break;
#endif //#ifdef FTA_SUPPORT
		

#ifdef EZVIEW_ENABLED
	case MS_OP_MSG_SYS_EZ_VIEW: // Display EZ view mode .
		eMsg = _HandleDvdEzViewModeOperation(pMessage, lParam);
		if (S_NULL == eMsg) 
			return MS_OP_NONE;
		break;
#endif

#ifdef SUPPORT_FLASH_CARD
	case MS_OP_MSG_ERROR_UNSUPPORTED_USB: 
		pMessage->moParam.mwTimer = pMessageDescriptor->mwDefaultTimeout;
		eMsg = S_UNSUPPORTED_USB;
		break;
#endif //SUPPORT_FLASH_CARD

#if D_SUPPORT_SACD
	case MS_OP_MSG_SYS_SACD_AREA_CHANGED:
		pMessage->moParam.mwTimer = OMESSAGE_SACD_AREA_CHANGED_TIMEOUT;
		eMsg = S_SACD_AREA_CHANGED;
		break;
		
	case MS_OP_MSG_SYS_SACD_LAYER_CHANGED: 
		{
			eMsg = (OSD_MESSAGES)lParam;
			if(S_NULL == eMsg) 
				return MS_OP_NONE;
			pMessage->moParam.mwTimer =  OMESSAGE_SACD_LAYER_CHANGED_TIMEOUT;
		}
		break;	
#endif // D_SUPPORT_SACD
		
#ifdef DVD_VR_SUPPORT
	case MS_OP_MSG_ERROR_EMPTY_PROGRAM_CHAIN:
		{
			pMessage->moParam.mwTimer = pMessageDescriptor->mwDefaultTimeout;
			eMsg = lParam ? S_DVDVR_EMPTY_PROGRAM_LIST : S_DVDVR_EMPTY_PLAY_LIST;
		}
		break;
#endif // DVD_VR_SUPPORT
		
	default:
		bSaveAndUpdate = FALSE;
		break;
	}


	if(eMsg != S_NULL)
	{
		OSDR_GetFormUniStr_OsdMessage((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, (UINT32) eMsg);
	}
	else if(bSaveAndUpdate == TRUE)
	{
		OSDR_FormatUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr);
	}

	if(bSaveAndUpdate == TRUE)
	{
		if(pThis->mpDescriptor->moArea.mwW < (oFormUniStr.mwPixelWidth + (2*AREA_SETTING_LR_MARGIN)))
		{
			MS_ObjectMove(pThis, ((MSO_OBJECT __NEAR*) MS_GetParentPtr(pThis))->moArea.msX, ((MSO_OBJECT __NEAR*) MS_GetParentPtr(pThis))->moArea.msY);
			MS_ObjectResize(pThis, ((MSO_OBJECT __NEAR*) MS_GetParentPtr(pThis))->moArea.mwW,  ((MSO_OBJECT __NEAR*) MS_GetParentPtr(pThis))->moArea.mwH);
		}
		else
		{
			MS_DisplayAddObject(pThis);
			MS_ObjectRestorePosition(pThis);
			MS_ObjectRestoreSize(pThis);
		}
		
		pMessage->moParam.mMsOpMsg = MsOp;
		MsOp = MS_OP_MSO_MESSAGE_BUILD;
		lParam = (UINT32)&oFormUniStr;
	}

	// Handle anything else in the generic handler:
	MsOp = OMESSAGE_Operation(pThis, MsOp, lParam);

	// Rest the current number on message timeout.
	// TODO: Use function to reset g_ui_current_number, don't expose it here
	if((0 != g_ui_current_number) && (0 == ((MSO_MESSAGE __NEAR*)pMessage)->moParam.mwTimer))
	{
		g_ui_current_number = 0;
#ifdef D_10P_KEY
		b_current_10PKey = 0;
#endif
	}

	return MsOp;
}


/****************************************************************************************************
*	DEFINITION: Private functions
****************************************************************************************************/
/****************************************************************************************************
* Function	: _GetTvStdMsg
*
* Input		: Parameter_1 - description
*			  Parameter_2 - description
*
* Output		: Parameter_3 - description
*			  Parameter_4 - description
*
* Return		: Describe_possible_returned_values_and_their_meaning
*
* Description	: Describe_what_the_function_does_in_English
*
****************************************************************************************************/
STATIC OSD_MESSAGES _HandleTvStdOperation(MSO_MESSAGE __NEAR* pMessage, UINT32 lParam)
{
	switch(lParam)
	{
	case TV_SYS_NTSC:	
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_NTSC;
		
	case TV_SYS_PAL:	
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PAL;
		
#ifdef SUPPORT_PAL_60
	case TV_SYS_PAL60:	
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PAL60;
		
	case TV_SYS_PAL60R:	
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PAL60;	// This one might need changing.
#endif // SUPPORT_PAL_60

#ifdef SUPPORT_PAL_M
	case TV_SYS_PALM:	
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PALM;
#endif

	case TV_SYS_AUTO:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_AUTO;
		
#ifdef SUPPORT_PAL_N
	case TV_SYS_PALN:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PALN;
		
	case TV_SYS_PALNC:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PALNC;
#endif      

	default:
		BREAK_POINT();
		break;
	}

	return S_NULL;
}

/****************************************************************************************************
* Function	: _HandleVideoOutputOperation
*
* Input		: Parameter_1 - description
*			  Parameter_2 - description
*
* Output		: Parameter_3 - description
*			  Parameter_4 - description
*
* Return		: Describe_possible_returned_values_and_their_meaning
*
* Description	: Describe_what_the_function_does_in_English
*
****************************************************************************************************/
STATIC OSD_MESSAGES _HandleVideoOutputOperation(MSO_MESSAGE __NEAR* pMessage, UINT32 lParam)
{
	switch(lParam)
	{
#if (defined(D_SETUP_VIDEOOUT_CVBS))
	case VID_OUT_CVBS:		
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_CVBS;
#endif

	case VID_OUT_YUV:		
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_YUV;

#ifdef D_SCART_OUTPUT
	case VID_OUT_RGB:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_RGB;
#endif

#ifdef D_SETUP_VIDEOOUT_SVIDEO
	case VID_OUT_S_VIDEO:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_SVIDEO;
#endif

#ifdef D_GINGER_I86
	case VID_OUT_YPbPr:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_YPBPR;

	case VID_OUT_VGA:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_VGA;
#else
	case VID_OUT_YUV_PSO:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_PROGRESSIVE_YUV;
#endif //D_GINGER_I86
#if ( defined(D_HDMI_ENABLED)||defined(D_HD_COMPONENT_ENABLED))
	case VID_OUT_HD:		
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_HD;
#endif
#if defined(D_VGA_6CH_ENABLE) || defined(D_VGA_ENABLE)
	case VID_OUT_RGB_PSO:
		pMessage->moParam.mwTimer = ((MS_DESCRIPTOR_MESSAGE*)((MSO_OBJECT __NEAR*)pMessage)->mpDescriptor)->mwDefaultTimeout;
		return S_VGA /*S_PROGRESSIVE_RGB*/;
#endif
	default:
		MS_BREAK_POINT();
		break;
	}

	return S_NULL;
}

/****************************************************************************************************
* Function	: _HandleCoreErrorOperation
*
* Input		: Parameter_1 - description
*			  Parameter_2 - description
*
* Output		: Parameter_3 - description
*			  Parameter_4 - description
*
* Return		: Describe_possible_returned_values_and_their_meaning
*

⌨️ 快捷键说明

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