Wakeup Light with touch user interface, anti-aliased Font, SD card access and RTC usage on STM32F746NG-DISCO board

Dependencies:   BSP_DISCO_F746NG_patch_fixed LCD_DISCO_F746NG TS_DISCO_F746NG FATFileSystem TinyJpgDec_interwork mbed-src

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers UI.h Source File

UI.h

00001 #ifndef __UI_h
00002 #define __UI_h
00003 
00004 #define UI_FLAG_TYPE_BOX_LIST           (0x01 | UI_FLAG_NEEDS_CHROME)
00005 #define UI_FLAG_TYPE_CLOCK              0x02
00006 #define UI_FLAG_TYPE_CLOCK_IN_WORDS     (0x04 | UI_FLAG_NEEDS_CHROME)
00007 #define UI_FLAG_TYPE_VALUE_ADJUST       (0x08 | UI_FLAG_NEEDS_CHROME | UI_FLAG_HAS_BACK_BUTTON)
00008 #define UI_FLAG_NEEDS_CHROME            0x10
00009 #define UI_FLAG_HAS_BACK_BUTTON         0x20
00010 #define UI_FLAG_TYPE_SLIDESHOW          0x40
00011 
00012 typedef enum
00013 {
00014     UR_CLICK,
00015     UR_TIMER,
00016     UR_SHOW,
00017 
00018 } UI_REASON_ENUM;
00019 
00020 struct UI_STRUCT_;
00021 typedef void (*UI_HANDLER_CALLBACK)(UI_REASON_ENUM reason,int32_t index,UI_STRUCT_ *ui);
00022 
00023 typedef struct
00024 {
00025     char                                *name;
00026     uint8_t                             *image;
00027 
00028 } UI_BOX_LIST_ITEM_STRUCT;
00029     
00030 typedef struct UI_STRUCT_
00031 {
00032     int8_t                              flags;      // UI_FLAG_...
00033     UI_HANDLER_CALLBACK                 handler;
00034 
00035     union
00036     {
00037         struct
00038         {
00039             UI_BOX_LIST_ITEM_STRUCT     *items;
00040             uint8_t                     count;
00041 
00042         } boxList;
00043 
00044         struct
00045         {
00046             uint8_t                     count;
00047             bool                        isTime;
00048             int32_t                     values[10];
00049 
00050         } valueAdjust;
00051 
00052     } data;
00053 
00054 } UI_STRUCT;
00055 
00056 extern UI_STRUCT                        uiClock;
00057 extern UI_STRUCT                        uiClockInWords;
00058 extern UI_STRUCT                        uiColorTest;
00059 extern UI_STRUCT                        uiWakeup;
00060 extern UI_STRUCT                        uiSlideshow;
00061 extern UI_STRUCT                        uiMain;
00062 
00063 void UI_Init(void);
00064 void UI_Poll(void);
00065 void UI_Show(UI_STRUCT *ui);
00066 
00067 void UI_MainHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui);
00068 
00069 void UI_WakeupHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui);
00070 void UI_WakeupShow(void);
00071 
00072 void UI_TimeShow(void);
00073 
00074 void UI_ColorTestHandler(UI_REASON_ENUM reason,int32_t index,UI_STRUCT *ui);
00075 
00076 extern LCD_DISCO_F746NG                 uiLcd;
00077 
00078 #endif