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

📄 clock.h

📁 ct952 source code use for Digital Frame Photo
💻 H
字号:
#ifndef __CLOCK_H__
#define __CLOCK_H__

#include "settime.h"
//////////////////////////////////////////////////////////////////////////////////////////
#define CLOCK_BITMAP_PALETTE_INDEX_START                8

#define CLOCK_BITMAP_NUM                                11

//Change this palette index to change the background color of the bitmap.
#define CLOCK_BITMAP_BACKGROUND_PALETTE_INDEX           15

//define the mode of clock
#define CLOCK_MODE_MENU                                 0
#define CLOCK_MODE_SHOW_CLOCK                           1
#define CLOCK_MODE_SET_TIME                             2

//////////////////////////////////////////////////////////////////////////////////////////
//The following define is for big clock display

#define CLOCK_NUMBER_BITMAP_WIDTH                       80
#define CLOCK_NUMBER_BITMAP_HEIGHT                      124

#define CLOCK_COLON_BITMAP_WIDTH                        32
#define CLOCK_COLON_BITMAP_HEIGHT                       124

#define CLOCK_DISPLAY_WIDTH                             (CLOCK_NUMBER_BITMAP_WIDTH*6+CLOCK_COLON_BITMAP_WIDTH*2)
#define CLOCK_DISPLAY_HEIGNT                            CLOCK_NUMBER_BITMAP_HEIGHT

#define CLOCK_DISPLAY_NUMBER_POS_START_X                ((POWERPNMENU_WIDTH-CLOCK_DISPLAY_WIDTH)>>1)
#define CLOCK_DISPLAY_NUMBER_POS_START_Y                ((POWERPNMENU_HEIGHT-CLOCK_DISPLAY_HEIGNT)>>1)

#define CLOCK_DISPLAY_TIME_DATE_DISTANCE_V              40
#define CLOCK_DISPLAY_DATE_POS_START_Y                  (CLOCK_DISPLAY_NUMBER_POS_START_Y+CLOCK_NUMBER_BITMAP_HEIGHT+CLOCK_DISPLAY_TIME_DATE_DISTANCE_V)

//palette
#define CLOCK_PALETTE_ENTRY_START                       1
#define CLOCK_PALETTE_ENTRY_DATE                        CLOCK_PALETTE_ENTRY_START

#define CLOCK_PALETTE_COLOR_DATE                        0xFFFF00


//////////////////////////////////////////////////////////////////////////////////////////
typedef enum tagCLOCK_ID_LIST
{
    CLOCK_MAIN_BEGIN=0,
    CLOCK_MAIN_DISPLAY = CLOCK_MAIN_BEGIN,
    CLOCK_MAIN_SET_TIME,
    CLOCK_MAIN_EXIT,
    CLOCK_MAIN_END = CLOCK_MAIN_EXIT,

    //Display
    CLOCK_DISPLAY_BEGIN = 6,
    CLOCK_DISPLAY_BIG_CLOCK = CLOCK_DISPLAY_BEGIN,
    CLOCK_DISPLAY_CLOCK_CALENDAR,
    CLOCK_DISPLAY_END = CLOCK_DISPLAY_CLOCK_CALENDAR,
   
} CLOCK_ID_LIST;

#define CLOCK_MAIN_MENU_START_X         (MAINMENU_CONTENT_REGION_START_X+60)
#define CLOCK_MAIN_MENU_START_Y         (MAINMENU_CONTENT_REGION_START_Y+40)

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

//////////////////////////////////////////////////////////////////////////////////////////
//Export functions
void CLOCK_Entry(void);
BYTE CLOCK_ProcessKey(void);
BYTE CLOCK_Recover(BYTE bRecoverRegion);
void CLOCK_Trigger(BYTE bType, WORD wTime);
void CLOCK_Exit(BYTE bClearBackground);
void CLOCK_ShowMenu(void);
void CLOCK_SetTime(BYTE bHour, BYTE bMinute, BYTE bSecond);
void CLOCK_CancelSetTime(void);

//Internal functions
void _CLOCK_PrepareBigClock(void);
void _CLOCK_UpdateTimeNum(BYTE bNumIndex, BYTE bNumer);
void _CLOCK_DisplayBigClock(void);
void _CLOCK_ConfigOSDRegion(BYTE bMode);
void _CLOCK_DisplayBigClockColon(BYTE bIndex);
void _CLOCK_ProcessMenuItem(BYTE bID);
void _CLOCK_DisplayDate(void);

//extern variables
extern BYTE __bCLOCKShowClock;
//////////////////////////////////////////////////////////////////////////////////////////


#ifdef CLOCK_MAIN_FILE
//#include "setupstr.h"
#include "OSDString\\strextrn.h"

MENU_ITEM _MENU_ITEM_CLOCK_Display[] = {
    {aCLOCKBigClock, NULL, MENU_ITEM_STATE_ENABLE, CLOCK_DISPLAY_BIG_CLOCK},
    {aCLOCKClockCalendar, NULL, MENU_ITEM_STATE_ENABLE, CLOCK_DISPLAY_CLOCK_CALENDAR},
};

MENU _MENU_CLOCK_Display = {MENU_TYPE_GENERAL, (CLOCK_DISPLAY_END-CLOCK_DISPLAY_BEGIN+1), MENU_START_X_OPTIMIZED, MENU_START_Y_OPTIMIZED, MENU_WIDTH_OPTIMIZED, MENU_ITEM_ALIGNMENT_LEFT, _MENU_ITEM_CLOCK_Display, 0, 0, MENU_ITEM_NO_CHECKED_ITEM};

MENU_ITEM _MENU_ITEM_CLOCK[] = {
    {aCLOCKDisplay, (PMENU)&_MENU_CLOCK_Display, MENU_ITEM_STATE_ENABLE, CLOCK_MAIN_DISPLAY},
    {aCLOCKSetTime, NULL, MENU_ITEM_STATE_ENABLE, CLOCK_MAIN_SET_TIME},
    {aCLOCKExit, NULL, MENU_ITEM_STATE_ENABLE, CLOCK_MAIN_EXIT},
};

MENU _MENU_CLOCK = {MENU_TYPE_GENERAL, (CLOCK_MAIN_END-CLOCK_MAIN_BEGIN+1), CLOCK_MAIN_MENU_START_X, CLOCK_MAIN_MENU_START_Y, MENU_WIDTH_OPTIMIZED, MENU_ITEM_ALIGNMENT_LEFT, _MENU_ITEM_CLOCK, 0, 0, MENU_ITEM_NO_CHECKED_ITEM};

#define CLOCK_SETTIME_TITLE_TIME_DISTANCE_V     20

SETTIME_TIME _CLOCK_SET_TIME = {SETTIME_DISPLAY_MODE_HOUR_MINUTE_SEC, 0, 0, 0, ((SET_TIME_DIALOG_WIDTH-SETTIME_DISPLAY_MODE_HOUR_MINUTE_SEC_WIDTH)>>1), CLOCK_SETTIME_TITLE_TIME_DISTANCE_V};
SETTIME_DLG_ACTION _CLOCK_SET_TIME_Action = {CLOCK_SetTime, CLOCK_CancelSetTime};

#endif //CLOCK_MAIN_FILE

#endif //#ifndef __CLOCK_H__

⌨️ 快捷键说明

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