comparison BootLoader/Src/tInfoBootloader.c @ 5:e65d01b6a17e

MOVE files for other applications
author JeanDo
date Fri, 15 Dec 2017 01:45:20 +0100
parents
children 97eafbcb81a9
comparison
equal deleted inserted replaced
4:89a87ddc2e47 5:e65d01b6a17e
1 /**
2 ******************************************************************************
3 * @file tInfoBootloader.c
4 * @author heinrichs/weikamp, Christian Weikamp
5 * @version V0.0.1
6 * @date 08-May-2015
7 * @brief Write something on the screen in between steps
8 *
9 @verbatim
10 ==============================================================================
11 ##### How to use #####
12 ==============================================================================
13 * a little bit of text (DMA is not running for fast clean)
14 @endverbatim
15 ******************************************************************************
16 * @attention
17 *
18 * <h2><center>&copy; COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>
19 *
20 ******************************************************************************
21 */
22
23 /* Includes ------------------------------------------------------------------*/
24 #include <string.h>
25 #include "base_bootloader.h"
26 #include "ostc.h"
27 #include "tInfoBootloader.h"
28 #include "gfx_engine.h"
29 #include "gfx_colors.h"
30 /* Exported variables --------------------------------------------------------*/
31
32 /* Private variables ---------------------------------------------------------*/
33
34 GFX_DrawCfgScreen tIBscreen;
35 GFX_DrawCfgWindow tIBwindow;
36 uint8_t line = 1;
37
38 char textButtonLeft[30] = { 0 };
39 char textButtonMid[31] = { 0 };
40 char textButtonRight[31] = { 0 };
41
42 /* Private types -------------------------------------------------------------*/
43
44 /* Private function prototypes -----------------------------------------------*/
45
46 /* Exported functions --------------------------------------------------------*/
47
48 void tInfoBootloader_init(void)
49 {
50 tIBscreen.FBStartAdress = 0;
51 tIBscreen.ImageHeight = 480;
52 tIBscreen.ImageWidth = 800;
53 tIBscreen.LayerIndex = 1;
54
55 tIBwindow.Image = &tIBscreen;
56 tIBwindow.WindowNumberOfTextLines = 6;
57 tIBwindow.WindowLineSpacing = 65;
58 tIBwindow.WindowTab = 400;
59 tIBwindow.WindowX0 = 20;
60 tIBwindow.WindowX1 = 779;
61 tIBwindow.WindowY0 = 0;
62 tIBwindow.WindowY1 = 799;
63
64 line = 1;
65 }
66
67
68 void tInfo_button_text(const char *text_left, const char *text_mid, const char *text_right)
69 {
70 if(text_left)
71 strncpy(textButtonLeft,text_left,30);
72 if(text_mid)
73 {
74 textButtonMid[0] = '\001';
75 strncpy(&textButtonMid[1],text_mid,30);
76 }
77 if(text_right)
78 {
79 textButtonRight[0] = '\002';
80 strncpy(&textButtonRight[1],text_right,30);
81 }
82 }
83
84
85 void tInfo_newpage(const char *text)
86 {
87 uint32_t backup = tIBscreen.FBStartAdress;
88
89 tIBscreen.FBStartAdress = getFrame(18);
90 line = 1;
91 if(text)
92 GFX_write_string(&FontT48, &tIBwindow, text,line);
93 line++;
94
95 if(*textButtonLeft)
96 write_content_simple(&tIBscreen, 0, 800, 480-24, &FontT24,textButtonLeft,CLUT_ButtonSurfaceScreen);
97 if(*textButtonMid)
98 write_content_simple(&tIBscreen, 0, 800, 480-24, &FontT24,textButtonMid,CLUT_ButtonSurfaceScreen);
99 if(*textButtonRight)
100 write_content_simple(&tIBscreen, 0, 800, 480-24, &FontT24,textButtonRight,CLUT_ButtonSurfaceScreen);
101
102 GFX_SetFrameTop(tIBscreen.FBStartAdress);
103 GFX_change_LTDC();
104
105 if(backup != 0)
106 releaseFrame(18,backup);
107 }
108
109
110 void tInfo_write(const char *text)
111 {
112 if((line > 6) || (tIBscreen.FBStartAdress == 0))
113 tInfo_newpage(text);
114 else
115 {
116 if(text)
117 GFX_write_string(&FontT48, &tIBwindow, text,line);
118 line++;
119
120 }
121 }
122
123 /* Private functions ---------------------------------------------------------*/