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

📄 alarm.~h

📁 ct952 source code use for Digital Frame Photo
💻 ~H
字号:
#ifndef __ALARM_H__
#define __ALARM_H__
#ifdef __cplusplus        extern  "C"     {#endif

//#define SUUPORT_ALARM_AGAIN

//define the time to alarm again after user stop it.
#define ALARM_AGAIN_TIME        5

typedef struct tagALARM_TM
{
    //BYTE bSec;    
    BYTE bMin;
    BYTE bHr;
    //BYTE bDate;
    //BYTE bMon;
    //BYTE bYear;
} ALARM_TM, *PALARM_TM;

enum ALARM_STATE
{    ALARM_NONE,
    ALARM_TRIGGERED,
    ALARM_GOING
};

extern BOOL __bTriggerAlarm;
extern BYTE __bAlarmState;

void _ALARM_PlaySound(void);
void _ALARM_StopPlaySound(void);
void _ALARM_Check ( void );
void _ALARM_Monitor ( void );

void ALARM_Initial ( void );
void ALARM_Enable(void);
void ALARM_Disable(void);
void ALARM_Set ( PALARM_TM ptm);
void ALARM_Get ( PALARM_TM ptm );
void ALARM_Stop ( void );
void ALARM_Trigger ( void );
void ALARM_RealStop(void);

//////////////////////////////////////////////////////////////////////////////////////////
//UI part
#include "settime.h"
#include "dialog.h"

typedef enum tagALARM_ID_LIST
{
    ALARM_MAIN_BEGIN=0,
    ALARM_MAIN_ENABLE = ALARM_MAIN_BEGIN,
    ALARM_MAIN_SET_TIME,
    ALARM_MAIN_EXIT,
    ALARM_MAIN_END = ALARM_MAIN_EXIT,

    //Enable
    ALARM_ENABLE_BEGIN = 6,
    ALARM_ENABLE_ON = ALARM_ENABLE_BEGIN,
    ALARM_ENABLE_OFF,
    ALARM_ENABLE_END = ALARM_ENABLE_OFF,
   
} ALARM_ID_LIST;

#define ALARM_MAIN_MENU_START_X                         (MAINMENU_CONTENT_REGION_START_X+60)
#define ALARM_MAIN_MENU_START_Y                         (MAINMENU_CONTENT_REGION_START_Y+40)

//define the maximum visible menu items.
#define ALARM_MAX_VISIBLE_MENU_ITEM_NUM                 5

//define the mode of clock
#define ALARM_MODE_MENU                                 0
#define ALARM_MODE_SET_TIME                             1

//////////////////////////////////////////////////////////////////////////////////////////
//Export APIs
void ALARM_Entry(void);
void ALARM_Exit(BYTE bClearBackground);
BYTE ALARM_ProcessKey(void);
BYTE ALARM_Recover(BYTE bRecoverRegion);
void ALARM_SetTime(BYTE bHour, BYTE bMinute, BYTE bSecond);
void ALARM_CancelSetTime(void);

//Internal APIs
void _ALARM_ConfigOSDRegion(void);
void _ALARM_ShowMenu(void);
void _ALARM_ProcessMenuItem(BYTE bID);
void _ALARM_StopPlayMode(void);
void _ALARM_ShowNotifyUserDlg(void);

//////////////////////////////////////////////////////////////////////////////////////////
#ifdef ALARM_MAIN_FILE
#include "OSDString\\strextrn.h"

MENU_ITEM _MENU_ITEM_ALARM_Enable[] = {
    {aMENUOn, NULL, MENU_ITEM_STATE_ENABLE, ALARM_ENABLE_ON},
    {aMENUOff, NULL, MENU_ITEM_STATE_ENABLE, ALARM_ENABLE_OFF},
};

MENU _MENU_ALARM_Enable = {MENU_TYPE_GENERAL, (ALARM_ENABLE_END-ALARM_ENABLE_BEGIN+1), MENU_START_X_OPTIMIZED, MENU_START_Y_OPTIMIZED, MENU_WIDTH_OPTIMIZED, MENU_ITEM_ALIGNMENT_LEFT, _MENU_ITEM_ALARM_Enable, 0, 1, 1};

MENU_ITEM _MENU_ITEM_ALARM[] = {
    {aALARMEnable, (PMENU)&_MENU_ALARM_Enable, MENU_ITEM_STATE_ENABLE, ALARM_MAIN_ENABLE},
    {aCLOCKSetTime, NULL, MENU_ITEM_STATE_ENABLE, ALARM_MAIN_SET_TIME},
    {aCLOCKExit, NULL, MENU_ITEM_STATE_ENABLE, ALARM_MAIN_EXIT},
};

MENU _MENU_ALARM = {MENU_TYPE_GENERAL, (ALARM_MAIN_END-ALARM_MAIN_BEGIN+1), ALARM_MAIN_MENU_START_X, ALARM_MAIN_MENU_START_Y, MENU_WIDTH_OPTIMIZED, MENU_ITEM_ALIGNMENT_LEFT, _MENU_ITEM_ALARM, 0, 0, MENU_ITEM_NO_CHECKED_ITEM};

#ifdef NL_SOLUTION
#define ALARM_SETTIME_TITLE_TIME_DISTANCE_V     40
#else
#define ALARM_SETTIME_TITLE_TIME_DISTANCE_V     20
#endif //NL_SOLUTION

SETTIME_TIME _ALARM_SET_TIME = {SETTIME_DISPLAY_MODE_HOUR_MINUTE, 0, 0, 0, ((SET_TIME_DIALOG_WIDTH-SETTIME_DISPLAY_MODE_HOUR_MINUTE_WIEDH)>>1), ALARM_SETTIME_TITLE_TIME_DISTANCE_V};
SETTIME_DLG_ACTION _ALARM_SET_TIME_Action = {ALARM_SetTime, ALARM_CancelSetTime};

//Notify user dialog box
#define ALARM_DIALOG_WIDTH                      360
#define ALARM_DIALOG_HEIGHT                     200
#define ALARM_DIALOG_BUTTON_NUM                 0

#define ALARM_DIALOG_CONTENT_DISTANCE_V         40

DIALOG _ALARMDlg = {
    (MAINMENU_CONTENT_REGION_START_X+((MAINMENU_CONTENT_REGION_WIDTH-ALARM_DIALOG_WIDTH)>>1)),
    (MAINMENU_CONTENT_REGION_START_Y+((MAINMENU_CONTENT_REGION_HEIGHT-ALARM_DIALOG_HEIGHT)>>1)),
    ALARM_DIALOG_WIDTH,
    ALARM_DIALOG_HEIGHT,
    aALARMDlgTitle,
    DIALOG_TITLE_STRING_ALIGNMENT_CENTER,
    ALARM_DIALOG_BUTTON_NUM,
    0,
    0,
    0,
    NULL
};

#endif //ALARM_MAIN_FILE
//////////////////////////////////////////////////////////////////////////////////////////



#ifdef __cplusplus        }#endif#endif  // __ALARM_H__

⌨️ 快捷键说明

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