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

📄 alarm.~c

📁 ct952 source code use for Digital Frame Photo
💻 ~C
📖 第 1 页 / 共 2 页
字号:
    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 + -