📄 o_message_setting.c
字号:
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 + -