NuMaker emWin HMI

Committer:
csyang2
Date:
Mon Mar 04 15:47:41 2024 +0800
Revision:
10:c8165817d92a
Parent:
1:c0f972361605
Support NuMaker-IoT-M467

Who changed what in which revision?

UserRevisionLine numberNew contents of line
csyang2 1:c0f972361605 1 /*********************************************************************
csyang2 1:c0f972361605 2 * SEGGER Software GmbH *
csyang2 1:c0f972361605 3 * Solutions for real time microcontroller applications *
csyang2 1:c0f972361605 4 **********************************************************************
csyang2 1:c0f972361605 5 * *
csyang2 1:c0f972361605 6 * (c) 1996 - 2018 SEGGER Microcontroller GmbH *
csyang2 1:c0f972361605 7 * *
csyang2 1:c0f972361605 8 * Internet: www.segger.com Support: support@segger.com *
csyang2 1:c0f972361605 9 * *
csyang2 1:c0f972361605 10 **********************************************************************
csyang2 1:c0f972361605 11
csyang2 1:c0f972361605 12 ** emWin V5.48 - Graphical user interface for embedded applications **
csyang2 1:c0f972361605 13 All Intellectual Property rights in the Software belongs to SEGGER.
csyang2 1:c0f972361605 14 emWin is protected by international copyright laws. Knowledge of the
csyang2 1:c0f972361605 15 source code may not be used to write a similar product. This file may
csyang2 1:c0f972361605 16 only be used in accordance with the following terms:
csyang2 1:c0f972361605 17
csyang2 1:c0f972361605 18 The software has been licensed by SEGGER Software GmbH to Nuvoton Technology Corporationat the address: No. 4, Creation Rd. III, Hsinchu Science Park, Taiwan
csyang2 1:c0f972361605 19 for the purposes of creating libraries for its
csyang2 1:c0f972361605 20 Arm Cortex-M and Arm9 32-bit microcontrollers, commercialized and distributed by Nuvoton Technology Corporation
csyang2 1:c0f972361605 21 under the terms and conditions of an End User
csyang2 1:c0f972361605 22 License Agreement supplied with the libraries.
csyang2 1:c0f972361605 23 Full source code is available at: www.segger.com
csyang2 1:c0f972361605 24
csyang2 1:c0f972361605 25 We appreciate your understanding and fairness.
csyang2 1:c0f972361605 26 ----------------------------------------------------------------------
csyang2 1:c0f972361605 27 Licensing information
csyang2 1:c0f972361605 28 Licensor: SEGGER Software GmbH
csyang2 1:c0f972361605 29 Licensed to: Nuvoton Technology Corporation, No. 4, Creation Rd. III, Hsinchu Science Park, 30077 Hsinchu City, Taiwan
csyang2 1:c0f972361605 30 Licensed SEGGER software: emWin
csyang2 1:c0f972361605 31 License number: GUI-00735
csyang2 1:c0f972361605 32 License model: emWin License Agreement, signed February 27, 2018
csyang2 1:c0f972361605 33 Licensed platform: Cortex-M and ARM9 32-bit series microcontroller designed and manufactured by or for Nuvoton Technology Corporation
csyang2 1:c0f972361605 34 ----------------------------------------------------------------------
csyang2 1:c0f972361605 35 Support and Update Agreement (SUA)
csyang2 1:c0f972361605 36 SUA period: 2018-03-26 - 2019-03-27
csyang2 1:c0f972361605 37 Contact to extend SUA: sales@segger.com
csyang2 1:c0f972361605 38 ----------------------------------------------------------------------
csyang2 1:c0f972361605 39 File : LCD_SIM.h
csyang2 1:c0f972361605 40 Purpose : Declares LCD interface functions
csyang2 1:c0f972361605 41 ----------------------------------------------------------------------
csyang2 1:c0f972361605 42 */
csyang2 1:c0f972361605 43
csyang2 1:c0f972361605 44 #ifndef LCDSIM_H
csyang2 1:c0f972361605 45 #define LCDSIM_H
csyang2 1:c0f972361605 46
csyang2 1:c0f972361605 47 #include "LCD.h"
csyang2 1:c0f972361605 48
csyang2 1:c0f972361605 49 /************************************************************
csyang2 1:c0f972361605 50 *
csyang2 1:c0f972361605 51 * Defines
csyang2 1:c0f972361605 52 *
csyang2 1:c0f972361605 53 *************************************************************
csyang2 1:c0f972361605 54 */
csyang2 1:c0f972361605 55 #define LCDSIM_MAX_DISPLAYS GUI_NUM_LAYERS
csyang2 1:c0f972361605 56
csyang2 1:c0f972361605 57 #define GUI_TRANSMODE_PIXELALPHA 0
csyang2 1:c0f972361605 58 #define GUI_TRANSMODE_CHROMA 1
csyang2 1:c0f972361605 59 #define GUI_TRANSMODE_ZERO 2
csyang2 1:c0f972361605 60
csyang2 1:c0f972361605 61 /************************************************************
csyang2 1:c0f972361605 62 *
csyang2 1:c0f972361605 63 * LCDSIM_ General declarations
csyang2 1:c0f972361605 64 *
csyang2 1:c0f972361605 65 *************************************************************
csyang2 1:c0f972361605 66 */
csyang2 1:c0f972361605 67 void LCDSIM_PreInit(void);
csyang2 1:c0f972361605 68 char* LCDSIM_Init(void);
csyang2 1:c0f972361605 69 void LCDSIM_Exit(void);
csyang2 1:c0f972361605 70 int LCDSIM_GetMouseState(LCD_tMouseState *pState);
csyang2 1:c0f972361605 71 void LCDSIM_SetMouseState(int x, int y, int KeyStat, int LayerIndex);
csyang2 1:c0f972361605 72 void LCDSIM_CheckMouseState(int LayerIndex);
csyang2 1:c0f972361605 73 int LCDSIM_SaveSBMP (const char * sFileName);
csyang2 1:c0f972361605 74 int LCDSIM_SaveSBMPEx(const char * sFileName, int x0, int y0, int xSize, int ySize);
csyang2 1:c0f972361605 75 void LCDSIM_SetRGBOrder(unsigned RGBOrder);
csyang2 1:c0f972361605 76
csyang2 1:c0f972361605 77 /************************************************************
csyang2 1:c0f972361605 78 *
csyang2 1:c0f972361605 79 * LCDSIM_ Functions for each display
csyang2 1:c0f972361605 80 *
csyang2 1:c0f972361605 81 *************************************************************
csyang2 1:c0f972361605 82 */
csyang2 1:c0f972361605 83 void LCDSIM_FillRect(int x0, int y0, int x1, int y1, int Index, int LayerIndex);
csyang2 1:c0f972361605 84 int LCDSIM_GetModifyCnt(int LayerIndex);
csyang2 1:c0f972361605 85 int LCDSIM_GetModifyCntInfo(int LayerIndex);
csyang2 1:c0f972361605 86 int LCDSIM_GetPixelColor(int x, int y, int LayerIndex);
csyang2 1:c0f972361605 87 int LCDSIM_GetPixelIndex(int x, int y, int LayerIndex);
csyang2 1:c0f972361605 88 int LCDSIM_Index2Color(int Index, int LayerIndex);
csyang2 1:c0f972361605 89 int LCDSIM_RLUT_GetPixelIndex(int x, int y, int LayerIndex);
csyang2 1:c0f972361605 90 void LCDSIM_RLUT_SetPixelIndex(int x, int y, int Index, int LayerIndex);
csyang2 1:c0f972361605 91 void LCDSIM_SetLUTEntry(U8 Pos, LCD_COLOR color, int LayerIndex);
csyang2 1:c0f972361605 92 void LCDSIM_SetPixelIndex(int x, int y, int Index, int LayerIndex);
csyang2 1:c0f972361605 93 void LCDSIM_SetPixelColor(int x, int y, LCD_COLOR PixelColor, int LayerIndex);
csyang2 1:c0f972361605 94 void LCDSIM_SetSubPixel(int x, int y, U8 Value, int LayerIndex);
csyang2 1:c0f972361605 95 void LCDSIM_SetPixelPhys(int x, int y, int Index, int LayerIndex);
csyang2 1:c0f972361605 96 int LCDSIM_GetPixelPhys(int xPhys, int yPhys, int LayerIndex);
csyang2 1:c0f972361605 97 void LCDSIM_FillRectPhys(int x0Phys, int y0Phys, int x1Phys, int y1Phys, int Index, int LayerIndex);
csyang2 1:c0f972361605 98 void LCDSIM_SetOrg(int x, int y, int LayerIndex);
csyang2 1:c0f972361605 99 void LCDSIM_SetAlpha(int Alpha, int LayerIndex);
csyang2 1:c0f972361605 100 int LCDSIM_GetAlpha(int LayerIndex);
csyang2 1:c0f972361605 101 void LCDSIM_SetLayerPos(int xPos, int yPos, int LayerIndex);
csyang2 1:c0f972361605 102 void LCDSIM_SetLayerVis(int OnOff, int LayerIndex);
csyang2 1:c0f972361605 103 void LCDSIM_SetSize(int LayerIndex, int xSize, int ySize);
csyang2 1:c0f972361605 104 void LCDSIM_SetTransMode(int LayerIndex, int TransMode);
csyang2 1:c0f972361605 105 void LCDSIM_SetChroma(int LayerIndex, LCD_COLOR ChromaMin, LCD_COLOR ChromaMax);
csyang2 1:c0f972361605 106 void LCDSIM_SetCompositeColor(U32 Color);
csyang2 1:c0f972361605 107 void LCDSIM_SetCompositeSize(int xSize, int ySize);
csyang2 1:c0f972361605 108 void LCDSIM_CopyBuffer(int LayerIndex, int IndexSrc, int IndexDst);
csyang2 1:c0f972361605 109 void LCDSIM_Invalidate(int LayerIndex);
csyang2 1:c0f972361605 110
csyang2 1:c0f972361605 111 /********************************************************************
csyang2 1:c0f972361605 112 *
csyang2 1:c0f972361605 113 * Publics for LCD
csyang2 1:c0f972361605 114 *
csyang2 1:c0f972361605 115 *********************************************************************
csyang2 1:c0f972361605 116 */
csyang2 1:c0f972361605 117 void SIM_GUI_SetCompositeSize(int xSize, int ySize);
csyang2 1:c0f972361605 118 void SIM_GUI_SetCompositeColor(U32 Color);
csyang2 1:c0f972361605 119 U32 SIM_GUI_GetCompositeColor(void);
csyang2 1:c0f972361605 120 void SIM_GUI_SetLCDPos(int xPos, int yPos);
csyang2 1:c0f972361605 121 int SIM_GUI_SaveBMP(const char * sFileName);
csyang2 1:c0f972361605 122 int SIM_GUI_SaveBMPEx(const char * sFileName, int x0, int y0, int xSize, int ySize);
csyang2 1:c0f972361605 123 int SIM_GUI_SaveCompositeBMP(const char * sFileName);
csyang2 1:c0f972361605 124 int SIM_GUI_SetTransColor(int Color);
csyang2 1:c0f972361605 125 int SIM_GUI_SetLCDColorBlack (unsigned int Index, int Color);
csyang2 1:c0f972361605 126 int SIM_GUI_SetLCDColorWhite (unsigned int Index, int Color);
csyang2 1:c0f972361605 127 void SIM_GUI_SetMag(int MagX, int MagY);
csyang2 1:c0f972361605 128 int SIM_GUI_GetMagX(void);
csyang2 1:c0f972361605 129 int SIM_GUI_GetMagY(void);
csyang2 1:c0f972361605 130 int SIM_GUI_GetForwardRButton(void);
csyang2 1:c0f972361605 131 void SIM_GUI_SetForwardRButton(int OnOff);
csyang2 1:c0f972361605 132 void SIM_GUI_SetTransMode(int LayerIndex, int TransMode);
csyang2 1:c0f972361605 133 void SIM_GUI_SetChroma(int LayerIndex, unsigned long ChromaMin, unsigned long ChromaMax);
csyang2 1:c0f972361605 134 void SIM_GUI_UseCustomBitmaps(void);
csyang2 1:c0f972361605 135 void SIM_GUI_SetAccellerator(int Accellerator);
csyang2 1:c0f972361605 136 void SIM_GUI_SetMainScreenOffset(int x, int y);
csyang2 1:c0f972361605 137 void SIM_GUI_SetCompositeTouch(int LayerIndex);
csyang2 1:c0f972361605 138 int SIM_GUI_GetCompositeTouch(void);
csyang2 1:c0f972361605 139
csyang2 1:c0f972361605 140 /********************************************************************
csyang2 1:c0f972361605 141 *
csyang2 1:c0f972361605 142 * Routine(s) in user application
csyang2 1:c0f972361605 143 *
csyang2 1:c0f972361605 144 *********************************************************************
csyang2 1:c0f972361605 145 */
csyang2 1:c0f972361605 146 void SIM_X_Config(void); /* Allow init before application starts ... Use it to set LCD offset etc */
csyang2 1:c0f972361605 147
csyang2 1:c0f972361605 148 /********************************************************************
csyang2 1:c0f972361605 149 *
csyang2 1:c0f972361605 150 * Publics used by GUI_X module
csyang2 1:c0f972361605 151 *
csyang2 1:c0f972361605 152 *********************************************************************
csyang2 1:c0f972361605 153 */
csyang2 1:c0f972361605 154 void SIM_GUI_Delay (int ms);
csyang2 1:c0f972361605 155 void SIM_GUI_ExecIdle(void);
csyang2 1:c0f972361605 156 int SIM_GUI_GetTime(void);
csyang2 1:c0f972361605 157 int SIM_GUI_GetKey(void);
csyang2 1:c0f972361605 158 int SIM_GUI_WaitKey(void);
csyang2 1:c0f972361605 159 void SIM_GUI_StoreKey(int);
csyang2 1:c0f972361605 160
csyang2 1:c0f972361605 161 /********************************************************************
csyang2 1:c0f972361605 162 *
csyang2 1:c0f972361605 163 * Publics for logging, warning, errorout
csyang2 1:c0f972361605 164 *
csyang2 1:c0f972361605 165 *********************************************************************
csyang2 1:c0f972361605 166 */
csyang2 1:c0f972361605 167 void SIM_GUI_Log(const char *s);
csyang2 1:c0f972361605 168 void SIM_GUI_Log1(const char *s, int p0);
csyang2 1:c0f972361605 169 void SIM_GUI_Log2(const char *s, int p0, int p1);
csyang2 1:c0f972361605 170 void SIM_GUI_Log3(const char *s, int p0, int p1, int p2);
csyang2 1:c0f972361605 171 void SIM_GUI_Log4(const char *s, int p0, int p1, int p2,int p3);
csyang2 1:c0f972361605 172 void SIM_GUI_Warn(const char *s);
csyang2 1:c0f972361605 173 void SIM_GUI_Warn1(const char *s, int p0);
csyang2 1:c0f972361605 174 void SIM_GUI_Warn2(const char *s, int p0, int p1);
csyang2 1:c0f972361605 175 void SIM_GUI_Warn3(const char *s, int p0, int p1, int p2);
csyang2 1:c0f972361605 176 void SIM_GUI_Warn4(const char *s, int p0, int p1, int p2, int p3);
csyang2 1:c0f972361605 177 void SIM_GUI_ErrorOut(const char *s);
csyang2 1:c0f972361605 178 void SIM_GUI_ErrorOut1(const char *s, int p0);
csyang2 1:c0f972361605 179 void SIM_GUI_ErrorOut2(const char *s, int p0, int p1);
csyang2 1:c0f972361605 180 void SIM_GUI_ErrorOut3(const char *s, int p0, int p1, int p2);
csyang2 1:c0f972361605 181 void SIM_GUI_ErrorOut4(const char *s, int p0, int p1, int p2, int p3);
csyang2 1:c0f972361605 182 void SIM_GUI_EnableMessageBoxOnError(int Status);
csyang2 1:c0f972361605 183
csyang2 1:c0f972361605 184 /********************************************************************
csyang2 1:c0f972361605 185 *
csyang2 1:c0f972361605 186 * Commandline support
csyang2 1:c0f972361605 187 *
csyang2 1:c0f972361605 188 *********************************************************************
csyang2 1:c0f972361605 189 */
csyang2 1:c0f972361605 190 const char *SIM_GUI_GetCmdLine(void);
csyang2 1:c0f972361605 191
csyang2 1:c0f972361605 192 /********************************************************************
csyang2 1:c0f972361605 193 *
csyang2 1:c0f972361605 194 * Multitasking support
csyang2 1:c0f972361605 195 *
csyang2 1:c0f972361605 196 *********************************************************************
csyang2 1:c0f972361605 197 */
csyang2 1:c0f972361605 198 void SIM_GUI_CreateTask(char * pName, void * pFunc);
csyang2 1:c0f972361605 199 void SIM_GUI_Start(void);
csyang2 1:c0f972361605 200 unsigned long SIM_GUI_GetTaskID(void);
csyang2 1:c0f972361605 201 void SIM_GUI_Lock(void);
csyang2 1:c0f972361605 202 void SIM_GUI_Unlock(void);
csyang2 1:c0f972361605 203 void SIM_GUI_InitOS(void);
csyang2 1:c0f972361605 204
csyang2 1:c0f972361605 205 #endif /* LCD_H */
csyang2 1:c0f972361605 206
csyang2 1:c0f972361605 207
csyang2 1:c0f972361605 208
csyang2 1:c0f972361605 209