?? screenprocessing.c
字號:
}
}
#endif //SUPPORT_FLASH_CARD
// TODO: need to return MS_OP_CORE_REMOVE_DEVICE for multipage clips menu
break;
}
#ifdef I86_USB_SUPPORT
case MS_OP_CORE_UNSUPPORT_USB_DEVICE_INSERTED:
MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_BAD_USB);
MS_SendOp(MS_OP_MSG_ERROR_UNSUPPORTED_USB, 0);
break;
#endif //SUPPORT_FLASH_CARD
#ifdef FTA_SUPPORT
case MS_OP_CORE_FTA_SCANNING_DONE:
MS_SendOp(MS_OP_CHNL_SCANNING, 0);
MS_SendOp( MS_OP_FTA_SELECTION, 0 );
break;
#endif
case MS_OP_CORE_CACHE_FINISHED:
wDeviceIdCurrent = (UINT16)lParam;
MS_EnableUserOp(pThis);
//clear UI program list for non-clip
#ifdef D_GUI_COMPONENT_PLAYMODE
if (DEVICE_DISC == wDeviceIdCurrent)
OPLAYMODE_ClearUIProgramList();
#endif//D_GUI_COMPONENT_PLAYMODE
#ifdef FTA_SUPPORT
if (MEDIA_TYPE_FTA == DeviceManager_GetMediaType((UINT16)lParam) )
{
MS_SendOp(MS_OP_OPEN_MENU, MENU_ID_RUNTIME);
MS_SendOp(MS_OP_MSG_DEVICE_MEDIA, MSG_DEVICE_MEDIA_FTA);
MS_SendOp( MS_OP_FTA_SELECTION, 0 );
}
else
#endif // FTA_SUPPORT
if ((MEDIA_TYPE_CLIPS == DeviceManager_GetMediaType((UINT16)lParam))||
(MEDIA_TYPE_FUJICOLOR_PICTURE_CD== DeviceManager_GetMediaType((UINT16)lParam))||
(MEDIA_TYPE_KADAK_PICTURE_CD== DeviceManager_GetMediaType((UINT16)lParam)) )
{
if (MENU_ID_CLIPS == MS_MenuGetActiveMenuId())
{
// TODO: Use MS_OP_REFRESH, make sure the menu does full refresh
//MS_SendOp(MS_OP_REFRESH, 0);
MS_SendOp(MS_OP_CLOSE, MENU_ID_CLIPS);
MS_SendOp(MS_OP_OPEN, MENU_ID_CLIPS);
}
else
{
// Resume for clips is handled in the menu, need to open the directory in which to resume
MS_SendOp(MS_OP_OPEN_MENU, MENU_ID_CLIPS);
}
}
// TODO: Should also send to clips menu when message in clips menu
else
{
MS_SendOp(MS_OP_OPEN_MENU, MENU_ID_RUNTIME);
_ScreenRestartPlayback();
}
MS_SendOp(MS_OP_MSG_DEVICE_MEDIA_CURRENT, lParam);
break;
case MS_OP_CORE_CACHE_FAILED:
#ifdef D_MULTI_CDDA_SHUFFLE_PLAY
// check if in Multi CDDA Shuffle play mode
if (CoreAPI_IsMultiCDDAShufflePlay())
{
// Check current disc type, if it's non-CDDA type (the Browse Handler in purpose not support non-CDDA in this playmode), mount the next disc
if (MEDIA_TYPE_UNKNOWN == CoreAPI_GetCurrentMediaType())
CoreAPI_MountDisc();
}
#endif
//Fall through.
case MS_OP_CORE_CACHE_ABORT:
{
wDeviceIdCurrent = 0xFFFF;
MS_EnableUserOp(pThis);
// If cache failed, go to default menu
MS_SendOp(MS_OP_OPEN_MENU, MENU_ID_RUNTIME);
}
//should display message after menu opened
MS_SendOp(MS_OP_MSG_DEVICE_MEDIA_CURRENT, lParam);
break;
case MS_OP_TICK:
{
DeviceManager_Tick();
if((0xFFFF != wDeviceIdRequested) && (wDeviceIdCurrent != wDeviceIdRequested))
{
if(DeviceManager_IsAllowedContructDevice(wDeviceIdRequested))
{
//if (MEDIA_TYPE_CLIPS != DeviceManager_GetMediaType(wDeviceId))
MS_SendOp(MS_OP_CLOSE, MENU_ID_CLIPS);
MS_SendOp(MS_OP_MENU_CLOSE_POPUP_COMPONENT, 0);
//_SendOp(MS_OP_OPEN_MENU, MENU_ID_CLIPS);
//_SEND_OP(MS_OP_MSG_DEVICE_LOADING, 0);
//_SEND_OP(MS_OP_MENU_ENABLE_USE_OP, 0);
DeviceManager_ContructDevice(wDeviceIdRequested);
}
wDeviceIdRequested = 0xFFFF;
}
// Adapt OSD display range if COOE automatically changes TV system
if(DEC_IsVideoPal())
{
if(!MS_IsScreenPal(gpScreen))
{
OSDAdaptDisplayRangeToVideoStandard();
MS_SetScreenPal(gpScreen);
}
}
else
{
if(MS_IsScreenPal(gpScreen))
{
OSDAdaptDisplayRangeToVideoStandard();
MS_ClearScreenPal(gpScreen);
}
}
}
break;
case MS_OP_EJECT:
wDeviceIdCurrent = 0xFFFF;
#ifndef D_RESUME_STOP_AFTER_POWER_ON // <<< ITA_KK_0002G: Customized of the power on action.
if (CoreAPI_IsMediaReady() && !CoreAPI_IsProgramPlayback())
{
CoreAPI_SetNVMBookMark((INT16)(-1));
}
#else // D_RESUME_STOP_AFTER_POWER_ON
CoreAPI_FlushAllNVMBookMark();
#endif // D_RESUME_STOP_AFTER_POWER_ON
break;
default:
break;
}
MsOp = MS_BasicScreenOperation(pThis, MsOp, lParam);
// Post-processing
switch (MsOp)
{
case MS_OP_CORE_CACHE_FINISHED:
{
if(MEDIA_TYPE_CLIPS == CoreAPI_GetCurrentMediaType())
{
MS_MenuClose((MS_DESCRIPTOR_MENU *)MENU_ID_CLIPS);
MS_SEND_OP(MS_OP_OPEN, (UINT32)MENU_ID_RUNTIME);
}
}
return MS_OP_NONE;
#if D_SUPPORT_SACD
case MS_OP_MENU_SWITCH_SACD_LAYER:
{
// Open the Runtime menu.
if(MEDIA_TYPE_CLIPS == CoreAPI_GetCurrentMediaType())
{
MS_MenuClose((MS_DESCRIPTOR_MENU*)MENU_ID_CLIPS);
MS_SEND_OP(MS_OP_OPEN, (UINT32)MENU_ID_RUNTIME);
}
if(!CoreAPI_SwitchHybridLayer())
{
PROHIBIT(MSG_PROHIBIT_NOT_ALLOWED_NOW);
}
}
return MS_OP_NONE;
#endif // D_SUPPORT_SACD
default:
break;
}
return MsOp;
}
#endif //D_CUSTOM
/**************************************************************************
* Function : _ScreenPostUserOperation
* In :
* Out :
* Desc :
***************************************************************************/
#ifndef D_CUSTOM__ScreenPostUserOperation
#pragma argsused
static MS_OP _ScreenPostUserOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
switch(MsOp)
{
/*case MS_OP_POWER:
dbg_printf(("MS_OP_SCREEN_CLOSE\n"));
SCREENPROC_CloseScreen();
return MS_OP_NONE;*/
case MS_OP_EJECT:
// Clips menu needs to stop is ActionEngines, others might require other actions
// MS_OP_EJECT is a special case as it is a user operation but needs to be transmitted to every body
MS_SendOp(MS_OP_MENU_ON_EJECT, lParam);
break;
}
return MsOp;
}
#endif //D_CUSTOM
/****************************************************************************************************
* Function : _ScreenSSaverOperation
*
* 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
*
****************************************************************************************************/
#ifndef D_CUSTOM__ScreenSSaverOperation
#pragma argsused
static MS_OP _ScreenSSaverOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
#ifdef FTA_SUPPORT
WORD wDeviceID = DeviceManager_GetCurrentDevice();
UINT16 wDeviceType = DeviceManager_GetDeviceType(wDeviceID);
#endif
// Screen frozen during menu switvhing
if (MS_IsContentFrozen(pThis))
return MsOp;
if(MS_IS_USER_OP(MsOp))
{
if(((MSO_SCREEN __NEAR*)pThis)->moParam.moScreenSaver.mbIsRunning)
{
((MSO_SCREEN __NEAR*)pThis)->moParam.moScreenSaver.mbIsRunning = FALSE;
OSCREEN_SAVER_Stop();
// TODO: Add a function to search into tables of MS_OP for this kind of list
// The keys in the following switch-case are those which are transmited to
// after cancelling the screen saver, others are ignored.
switch (MsOp)
{
case MS_OP_PLAY:
case MS_OP_STOP:
case MS_OP_EJECT:
case MS_OP_POWER:
case MS_OP_AUDIO:
case MS_OP_MARKAB:
case MS_OP_SHUFFLE:
case MS_OP_REPEAT:
case MS_OP_SKIPB:
case MS_OP_SKIPF:
case MS_OP_INTRO_PLAY:
case MS_OP_PROGRAM:
case MS_OP_FASTB:
case MS_OP_FASTF:
case MS_OP_PREV_INDEX:
case MS_OP_NEXT_INDEX:
case MS_OP_PAUSE:
case MS_OP_RESUME_STOP:
case MS_OP_3D:
case MS_OP_MUTE:
case MS_OP_VOLUME_UP:
case MS_OP_VOLUME_DOWN:
case MS_OP_EQUALIZER:
case MS_OP_SPECTRUM:
case MS_OP_PROLOGIC:
case MS_OP_DD_EX:
case MS_OP_PLAY_PAUSE:
break;
default:
MsOp = MS_OP_NONE;
break;
}
}
_ScreenSaverStartTimer();
}
else if ( (MS_OP_TICK == MsOp)
&& (FALSE == ((MSO_SCREEN __NEAR*)pThis)->moParam.moScreenSaver.mbIsRunning)
&& (PST_STOP == CoreAPI_GetPlayState())
#ifndef D_CUSTOMER_MIZUDA //Toml When opened screen saver on
&& (DEVICE_TRAY_OPENED != DeviceManager_GetDeviceState(DEVICE_DISC))
#endif
&& (DEVICE_TRAY_OPENING != DeviceManager_GetDeviceState(DEVICE_DISC))
&& (DEVICE_TRAY_CLOSING != DeviceManager_GetDeviceState(DEVICE_DISC))
&& (DEVICE_LOADING != DeviceManager_GetDeviceState(DEVICE_DISC))
#ifdef FTA_SUPPORT
&& ( DEVICE_TYPE_FTA != wDeviceType )
#endif
// <<< ITA_YO_0001G : Customizing of loader spinning. Sync saver to spin down.
#ifndef D_SYNC_SPINDOWN_TO_OSDSAVER
&& (MENU_ID_CLIPS != MS_MenuGetActiveMenuId())
#endif
// >>> ITA_YO_0001G : Customizing of loader spinning. Sync saver to spin down.
&& (MENU_ID_CLIPS != MS_MenuGetActiveMenuId())
&& (MENU_ID_SETUP != MS_MenuGetActiveMenuId())
&& (NULL == MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)pThis, (MS_DESCRIPTOR*)&oDescriptorFirmwareUpgrade))
#ifdef D_GUI_COMPONENT_PROGRAM
&& (NULL == MS_FindObjectFromDescriptor((MSO_CONTAINER __NEAR*)pThis, (MS_DESCRIPTOR*)&oProgramDescriptor))
#endif
#ifdef D_SCREEN_SAVER_SELECTION
&& (SCREEN_SAVER_DISABLE != PS_GET_SCREEN_SAVER_ENABLE)
#endif
)
{
((MSO_SCREEN __NEAR*)pThis)->moParam.moScreenSaver.mwTimerStart--;
if(0 == ((MSO_SCREEN __NEAR*)pThis)->moParam.moScreenSaver.mwTimerStart)
{
((MSO_SCREEN __NEAR*)pThis)->moParam.moScreenSaver.mbIsRunning = TRUE;
#ifdef D_AUTO_POWER_DOWN
CoreAPI_PowerControl(FALSE); //Power down
#else
OSCREEN_SAVER_Start();
// <<< ITA_YO_0001G : Customizing of loader spinning. Sync saver to spin down.
#ifdef D_SYNC_SPINDOWN_TO_OSDSAVER
gcs.bScreenSaverOn = TRUE;
ie_send_ex(IE_CORE_STOP_DRIVE_SPINING, NULL);
#endif
// >>> ITA_YO_0001G : Customizing of loader spinning. Sync saver to spin down.
#endif
}
}
if (MS_OP_SCREEN_OPEN == MsOp)
{
_ScreenSaverStartTimer();
}
return MsOp;
}
#endif //D_CUSTOM
/**************************************************************************
* Function : _ScreenMsOpTranslator
* In :
* Out :
* Desc :
***************************************************************************/
#ifndef D_CUSTOM__ScreenMsOpTranslator
#pragma argsused
static MS_OP _ScreenMsOpTranslator(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
switch (MsOp)
{
case MS_OP_TITLE:
if (
#ifdef D_DIVX6_SUPPORT
!CoreAPI_IsCurrItemDivX6() &&
#endif
(MENU_ID_CLIPS == MS_MenuGetActiveMenuId()))
MsOp = MS_OP_DIGEST;
break;
#ifdef DVD_AUDIO_PAGE_SEARCH
case MS_OP_SLOWF:
if((g_disc_type == DEC_DISC_TYPE_DVD_AUDIO)&&CoreAPI_IsMenuAllowedPageSearch())
MsOp = MS_OP_PAGE_DOWN;
break;
case MS_OP_SLOWB:
if((g_disc_type == DEC_DISC_TYPE_DVD_AUDIO)&&CoreAPI_IsMenuAllowedPageSearch())
MsOp = MS_OP_PAGE_UP;
break;
#endif//DVD_AUDIO_PAGE_SEARCH
default:
break;
}
return MsOp;
}
#endif //D_CUSTOM
/****************************************************************************************************
* Function : _ScreenSSaverOperation
*
* 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
*
****************************************************************************************************/
#ifndef D_CUSTOM__ScreenSaverStartTimer
STATIC void _ScreenSaverStartTimer(void)
{
// Timeout fo the screen saver in minutes
gpScreen->moParam.moScreenSaver.mwTimerStart = (UI_SCREEN_SAVER_START_TIMEOUT_MINUTES * 600);
}
#endif //D_CUSTOM
/****************************************************************************************************
* Function : _ScreenRestartPlayback
*
* Input : None
*
* Output : None
*
* Return : None
*
* Description : Restart playback from the last point or from the beginning.
*
****************************************************************************************************/
#ifndef D_CUSTOM_ScreenRestartPlayback
STATIC void _ScreenRestartPlayback(void)
{
CoreAPI_ReStart(TRUE);//whatever support resume or not the parameter should be always TRUE as NAV team design
}
#endif //D_CUSTOM_ScreenRestartPlayback
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -