📄 alarm.~c
字号:
case ALARM_NONE :#ifdef SUPPORT_ALARM_WITH_FM_TUNER if (__bPlayRadio == TRUE) break; #endif if(__bTriggerAlarm) { __bAlarmState = ALARM_TRIGGERED; } break; case ALARM_TRIGGERED : //Show the UI to notify the user#ifdef SUPPORT_ALARM_WITH_FM_TUNER POWERONMENU_ClearScreen(); OSD_RemoveAllUI(); _ALARM_StopPlayMode(); __bCountStop = 2; // force real stop __bTriggerAlarm = FALSE; __bAlarmState = ALARM_NONE;#ifdef SUUPORT_ALARM_AGAIN ALARM_RealStop(); #endif //SUUPORT_ALARM_AGAIN //Show FM Tuner RADIO_Entry(RADIO_MODE_FAVORITE);#else //SUPPORT_ALARM_WITH_FM_TUNER _ALARM_ShowNotifyUserDlg(); _ALARM_PlaySound(); __bCountStop = 2; // force real stop __bAlarmState = ALARM_GOING;#endif //SUPPORT_ALARM_WITH_FM_TUNER break; case ALARM_GOING : OSDSS_ResetTime(); break; default: break; }}/************************************************************************** Function : ALARM_Test* Description : Unit test* Arguments : None* Return : None* Side Effect :* *************************************************************************/void ALARM_Test ( void ){ extern void RTC_Test_Set(void); ALARM_TM tm; tm.bHr = 0; tm.bMin = 1; //tm.bSec = 10; __bAlarmState = ALARM_NONE; __bTriggerAlarm = FALSE; ALARM_Enable(); RTC_Test_Set(); ALARM_Set(&tm);}//*********************************************************************************************************// Function : ALARM_Entry// Abstract : This is the entry function of the alarm.// Arguments : none.// Return : // Side Effect : none.// Notes ://*********************************************************************************************************void ALARM_Entry(void){ _hALARMMenu = MENU_HANDLE_INVALID; _bALARMRealStopKey = KEY_NO_KEY; //Config the OSD to 8 bit mode. _ALARM_ConfigOSDRegion(); _MENU_ALARM_Enable.bDefaultCursorPos = __ImageFrameSetupInfo.bAlarmEnable-ALARM_ENABLE_BEGIN; _MENU_ALARM_Enable.bCheckMenuItemPos = _MENU_ALARM_Enable.bDefaultCursorPos; //Show Alarm menu. _ALARM_ShowMenu();}// ***************************************************************************// Function : _ALARM_ConfigOSDRegion// Description : // Arguments : None.// Return : None.// Side Effect :// ***************************************************************************void _ALARM_ConfigOSDRegion(void){ GDI_REGION_INFO RegionInfo;#ifdef BORROW_FRAME_BUFFER DWORD dwBufferAddr;#endif // GDI_ClearRegion(0);#ifdef BORROW_FRAME_BUFFER if ((POWERPNMENU_WIDTH == __RegionList[0].wWidth) && (POWERPNMENU_HEIGHT <= __RegionList[0].wHeight) && (GDI_OSD_8B_MODE == __RegionList[0].bColorMode)) { return; } else if (__RegionList[0].bColorMode != GDI_OSD_8B_MODE) // Thumbnail mode & preview mode { // Use Frame buffer 1 or 2 dwBufferAddr = DISP_QueryAvailableBuffer(); if (0 == dwBufferAddr) { RegionInfo.dwTAddr = DS_OSDFRAME_ST; } else { RegionInfo.dwTAddr = dwBufferAddr; } } else { // Use OSD buffer and Frame buffer 0 RegionInfo.dwTAddr = DS_OSDFRAME_ST; // Use OSD buffer and Frame buffer 0 }#else RegionInfo.dwTAddr = DS_OSDFRAME_ST;#endif // #ifdef BORROW_FRAME_BUFFER RegionInfo.wWidth = POWERPNMENU_WIDTH; RegionInfo.wHeight = POWERPNMENU_HEIGHT; RegionInfo.bColorMode = GDI_OSD_8B_MODE;#ifdef BORROW_FRAME_BUFFER OSD_SetRegion(0, TRUE, &RegionInfo);#else OSD_SetRegion(0, FALSE, &RegionInfo);#endif}void _ALARM_ShowMenu(void){ MAINMENU_InitializeGDI(__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); MAINMENU_DrawMainBackground(); MAINMENU_DrawSelectionHelp(FALSE, FALSE); //Draw the title MAINMENU_DrawTitleString(aALARMAlarmSetting, NULL, NULL); if (_hALARMMenu == MENU_HANDLE_INVALID) { _hALARMMenu = MENU_CreateMenu(&_MENU_ALARM, ALARM_MAX_VISIBLE_MENU_ITEM_NUM, _bALARMExitKey); } MENU_ShowMenu(_hALARMMenu, TRUE, MAINMENU_PALETTE_ENTRY_CONTENT_REGION); _bALARMMode = ALARM_MODE_MENU;}//*********************************************************************************************************// Function : ALARM_ProcessKey// Abstract : Call this function to process the keys.// Arguments : none.// Return : KEY_NO_KEY: The input key is processed.// : INVALID_KEY: The input key is not allowed.// : KEY_BYPASS: Will not process this key and pass it to main flow to process it.// : KEY_XXX: The main program need do more process for the key.// Side Effect : none.// Notes ://*********************************************************************************************************BYTE ALARM_ProcessKey(void){ WORD wMenuAction; DWORD dwMenuReturn; if (__bKey == KEY_FUNCTION) { ALARM_Exit(FALSE); POWERONMENU_BackToMainMenu(); } switch (_bALARMMode) { case ALARM_MODE_MENU: dwMenuReturn = MENU_ProcessKey(_hALARMMenu, __bKey); wMenuAction = HIWORD(dwMenuReturn); if (HIWORD(dwMenuReturn) == MENU_ACTION_EXIT) { ALARM_Exit(FALSE); POWERONMENU_BackToMainMenu(); } else if (wMenuAction == MENU_ACTION_PROCESS_MENU_ITEM) { _ALARM_ProcessMenuItem(LOWORD(dwMenuReturn)); } break; case ALARM_MODE_SET_TIME: SETTIME_ProcessKey(_hAlarmSetTime, __bKey); break; default: break; } return KEY_NO_KEY;}void _ALARM_ProcessMenuItem(BYTE bID){ switch (bID) { case ALARM_ENABLE_ON: ALARM_Enable(); //Set the setting to flash. __ImageFrameSetupInfo.bAlarmEnable = ALARM_ENABLE_ON;#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 HAL_WriteStorage(SETUP_ADDR_ALARM_ENABLE, (BYTE *)&(__ImageFrameSetupInfo.bAlarmEnable), 1);#endif break; case ALARM_ENABLE_OFF: ALARM_Disable(); //Set the setting to flash. __ImageFrameSetupInfo.bAlarmEnable = ALARM_ENABLE_OFF;#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 HAL_WriteStorage(SETUP_ADDR_ALARM_ENABLE, (BYTE *)&(__ImageFrameSetupInfo.bAlarmEnable), 1);#endif break; case ALARM_MAIN_EXIT: ALARM_Exit(FALSE); POWERONMENU_BackToMainMenu(); break; case ALARM_MAIN_SET_TIME:#ifdef NL_SOLUTION MAINMENU_DrawMainHelpBackground(__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); MAINMENU_DrawSelectionHelp(TRUE, FALSE);#endif //NL_SOLUTION _bALARMMode = ALARM_MODE_SET_TIME; _ALARM_SET_TIME.bHour = HIBYTE(__ImageFrameSetupInfo.wAlarmTime); _ALARM_SET_TIME.bMinute = LOBYTE(__ImageFrameSetupInfo.wAlarmTime); _hAlarmSetTime = SETTIME_Create(&_ALARM_SET_TIME, &_ALARM_SET_TIME_Action); if (_hAlarmSetTime != SETTIME_HANDLE_INVALID) { SETTIME_Show(_hAlarmSetTime, MAINMENU_PALETTE_ENTRY_CONTENT_REGION, __SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); } break; default: break; }}void ALARM_Exit(BYTE bClearBackground){ if (_hALARMMenu != MENU_HANDLE_INVALID) { MENU_DeleteMenu(_hALARMMenu, bClearBackground); _hALARMMenu = MENU_HANDLE_INVALID; } if (_hAlarmSetTime != SETTIME_HANDLE_INVALID) { SETTIME_Exit(_hAlarmSetTime, TRUE); _hAlarmSetTime = SETTIME_HANDLE_INVALID; }}//*********************************************************************************************************// Function : ALARM_Recover// Abstract : Call this function to do recovery.// Arguments : bRecoverRegion: OSD_RECOVER_UPPER_REGION/OSD_RECOVER_BOTTOM_REGION.// Return : TRUE: The region is recovered.// : FALSE: The region doesn't need to be recovered in THUMB UI.// Side Effect : none.// Notes ://*********************************************************************************************************BYTE ALARM_Recover(BYTE bRecoverRegion){ //Config the OSD to 8 bit mode. _ALARM_ConfigOSDRegion(); _ALARM_ShowMenu(); if (_bALARMMode == ALARM_MODE_SET_TIME) {#ifdef NL_SOLUTION MAINMENU_DrawMainHelpBackground(__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); MAINMENU_DrawSelectionHelp(TRUE, FALSE);#endif //NL_SOLUTION SETTIME_Recover(_hAlarmSetTime); } return TRUE;}void ALARM_SetTime(BYTE bHour, BYTE bMinute, BYTE bSecond){ __Alarm.bHr = bHour; __Alarm.bMin = bMinute; //Save the alarm time to flash. __ImageFrameSetupInfo.wAlarmTime = (bHour << 8) | bMinute;#ifdef WRITE_EEPROM_ENABLE //SYSTEM_8051 HAL_WriteStorage(SETUP_ADDR_ALARM_TIME, (BYTE *)&(__ImageFrameSetupInfo.wAlarmTime), 2);#endif SETTIME_Exit(_hAlarmSetTime, TRUE); MENU_ShowMenu(_hALARMMenu, TRUE, MAINMENU_PALETTE_ENTRY_CONTENT_REGION); #ifdef NL_SOLUTION MAINMENU_DrawMainHelpBackground(__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); MAINMENU_DrawSelectionHelp(FALSE, FALSE);#endif //NL_SOLUTION _bALARMMode = ALARM_MODE_MENU;}void ALARM_CancelSetTime(void){ SETTIME_Exit(_hAlarmSetTime, TRUE); MENU_ShowMenu(_hALARMMenu, TRUE, MAINMENU_PALETTE_ENTRY_CONTENT_REGION); _bALARMMode = ALARM_MODE_MENU;}void _ALARM_StopPlayMode(void){ OSDSS_Reset();#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM CC_ForceStop(CC_FORCE_STOP_FROM_ALARM_MENU);#endif#ifdef SUPPORT_JPEG_AUDIO_PLAYING{ extern BYTE __bMMJPEGAudioMode; if (__bMMJPEGAudioMode) { MM_ExitJPEGAudioMode(); }}#endif CC_KeyCommand(KEY_STOP); CC_ResetState( KEY_OPEN_CLOSE );}void _ALARM_ShowNotifyUserDlg(void){ _ALARM_StopPlayMode(); __bLOGO = 0; UTL_ShowLogo(); //Config the OSD to 8 bit mode. _ALARM_ConfigOSDRegion(); if (_hALARMDlg == DIALOG_HANDLE_INVALID) { _hALARMDlg = DIALOG_CreateDialog(&_ALARMDlg, __SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); } if (_hALARMDlg != DIALOG_HANDLE_INVALID) { DIALOG_InitializeGDI(__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN); DIALOG_ShowDialog(_hALARMDlg, PAL_ENTRY_COLOR_TRANSPARENT, FALSE); DIALOG_ShowMessage(_hALARMDlg, (ALARM_DIALOG_WIDTH-GDI_GetStringWidth(aALARMDlgContent))/2, ALARM_DIALOG_CONTENT_DISTANCE_V, aALARMDlgContent); }}void ALARM_RealStop(void){ __Alarm.bHr = HIBYTE(__ImageFrameSetupInfo.wAlarmTime); __Alarm.bMin = LOBYTE(__ImageFrameSetupInfo.wAlarmTime);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -