annotate Discovery/Src/tMenu.c @ 1071:b4a79464caf7 Icon_Integration

Dynamic menu creation for CV views: Because of the increasing features of the OSTC the maintenance of the the menus becomes difficult. Some are not available because of HW version or connected sensors. To keep the "legacy" menus stable the functionality of the cv options page has been increased. Based on enabled cv views and connected sensors the page will be filled dynamically. The page items allow quick acces to the view related options. For the first implementation the views: compass, timer, sensor O2 and sensor CO2 are supported.
author Ideenmodellierer
date Thu, 19 Feb 2026 13:28:37 +0100
parents 36fa1c44e597
children 734f84b72b30
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 /// \file Discovery/Src/tMenu.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief Major menu with extra page 0 for edit functionality since V0.0.2
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 /// \date 30-April-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 /// \details
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 /// $Id$
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 /// This program is free software: you can redistribute it and/or modify
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 /// it under the terms of the GNU General Public License as published by
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 /// the Free Software Foundation, either version 3 of the License, or
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 /// (at your option) any later version.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /// This program is distributed in the hope that it will be useful,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 /// GNU General Public License for more details.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 /// You should have received a copy of the GNU General Public License
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 #include "tMenu.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 #include "gfx_fonts.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #include "tHome.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 #include "tMenuDeco.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 #include "tMenuDecoParameter.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 #include "tMenuEditDeco.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 #include "tMenuEditDecoParameter.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 #include "tMenuEditGasOC.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 #include "tMenuEditHardware.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 #include "tMenuEditPlanner.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 #include "tMenuEditSetpoint.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 #include "tMenuEditSystem.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 #include "tMenuEditXtra.h"
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
44 #include "tMenuEditCustom.h"
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
45 #include "tMenuCvOptionText.h"
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
46 #include "tMenuEditCvOption.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 #include "tMenuGas.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 #include "tMenuHardware.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 #include "tMenuPlanner.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 #include "tMenuSetpoint.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 #include "tMenuSystem.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 #include "tMenuXtra.h"
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
53 #include "tMenuCustom.h"
1053
36fa1c44e597 Added upload command for icon:
Ideenmodellierer
parents: 1041
diff changeset
54 #include "tStructure.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 /* Private types -------------------------------------------------------------*/
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
57 #define MAXPAGES 12
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
58 #define CURSOR_HIGH 25
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
59 #define TAB_HEADER_HIGH 25
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
60 #define TAB_BAR_HIGH 5
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
61 #define MENU_WDW_HIGH 390
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
62 #define KEY_LABEL_HIGH 25 /* Height of the label used for the the user keys */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
64 #define TAB_BAR_WIDTH 50
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
65 #define TAB_BAR_SPACING 5
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
66
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
67 #define SLOW_UPDATE_CNT 10 /* Some content shall not be update in short intervals => add prescalar */
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
68
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 uint32_t StartAddressForPage[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 uint8_t lineMemoryForNavigationForPage[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 uint8_t pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 uint8_t linesAvailableForPage[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 uint8_t pagesAvailable;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 uint8_t pageCountNumber[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 uint8_t pageCountTotal;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 uint8_t modeFlipPages;
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
79 uint8_t shadowPage[MAXPAGES+1]; /* the page is switched in the context of another page */
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
80 uint8_t activeShadow; /* Base page which is used for the shadow */
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
81 uint8_t disableLineMask[MAXPAGES+1]; /* Bitfield used to disable a line. The line is visible but will not be selected by cursor) */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82 } SMenuMemory;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 /* Exported variables --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 /* Announced Private variables -----------------------------------------------*/
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
87 static GFX_DrawCfgScreen tMdesignSolo;
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
88 static GFX_DrawCfgScreen tMdesignCursor;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 /* Private variables ---------------------------------------------------------*/
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
91 static GFX_DrawCfgWindow tMwindow;
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
92 static GFX_DrawCfgScreen tMscreen;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
94 static SMenuMemory menu;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 uint8_t actual_menu_content = MENU_UNDEFINED;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
98
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
99
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
100
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 /* Private function prototypes -----------------------------------------------*/
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
102 static void draw_tMheader(uint8_t page);
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
103 static void draw_tMcursorDesign(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
105 static void draw_tMdesignSubUnselected(uint32_t *ppDestination);
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
106 static void draw_tMdesignSubSelected(uint32_t *ppDestination);
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
107 static void draw_tMdesignSubSelectedBorder(uint32_t *ppDestination);
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
108 static void tMenu_write(uint8_t page, char *text, char *subtext);
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
109 static void nextLine(void);
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
110 static void clean_line_actual_page(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 void tM_build_pages(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
113 static void gotoMenuEdit(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 /* Exported functions --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 GFX_DrawCfgScreen * get_PointerMenuCursorScreen(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 return &tMdesignCursor;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 GFX_DrawCfgScreen * get_PointerMenuCursorDesignSoloScreen(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 return &tMdesignSolo;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 void nextline(char * text, uint8_t *textPointer)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 text[(*textPointer)++] = '\n';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 text[(*textPointer)++] = '\r';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 text[*textPointer] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
137 void clearDisabledMenuLines(void)
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
138 {
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
139 for(unsigned i = 0; i <= MAXPAGES; i++) {
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
140 menu.disableLineMask[i] = 0;
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
141 }
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
142 }
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
143
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
144
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 void tM_init(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 uint8_t i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
149 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
150 pSettings = settingsGetPointer();
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
151
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 tMdesignCursor.FBStartAdress = getFrame(3);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153 tMdesignCursor.ImageHeight = 390;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 tMdesignCursor.ImageWidth = 800;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 tMdesignCursor.LayerIndex = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
157 tMdesignSolo.FBStartAdress = getFrame(4);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
158 tMdesignSolo.ImageHeight = 390;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159 tMdesignSolo.ImageWidth = 800;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 tMdesignSolo.LayerIndex = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 menu.pagesAvailable = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163 menu.pageMemoryForNavigation = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164 for(i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166 menu.lineMemoryForNavigationForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167 menu.StartAddressForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 menu.linesAvailableForPage[i] = 0;
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
169 menu.shadowPage[i] = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
172 clearDisabledMenuLines();
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 815
diff changeset
173
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
174 tMscreen.FBStartAdress = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
175 tMscreen.ImageHeight = 480;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
176 tMscreen.ImageWidth = 800;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
177 tMscreen.LayerIndex = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
178
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
179 draw_tMcursorDesign();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
180
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
181 tMwindow.Image = &tMscreen;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
182 tMwindow.WindowNumberOfTextLines = 6;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
183 tMwindow.WindowLineSpacing = 65;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
184 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
185 tMwindow.WindowX0 = 20;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
186 tMwindow.WindowX1 = 779;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
187
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
188 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
189 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
190 tMwindow.WindowY0 = 4 + KEY_LABEL_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
191 tMwindow.WindowY1 = 390 + KEY_LABEL_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
192 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
193 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
194 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
195 tMwindow.WindowY0 = 480 - MENU_WDW_HIGH - TAB_HEADER_HIGH;// - TAB_BAR_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
196 tMwindow.WindowY1 = 480 - TAB_HEADER_HIGH - TAB_BAR_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
197 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
198 actual_menu_content = MENU_UNDEFINED;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
199 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
200
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
201 void tM_refresh(char *text, uint8_t *textPointer, uint8_t line, const char content[6])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
202 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
203 for(uint8_t i=0; i<6; i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
204 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
205 if(((line == 0) || (line == i)) && content[i])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
206 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
207 text[(*textPointer)++] = content[i];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
208 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
209 text[(*textPointer)++] = '\n';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
210 text[(*textPointer)++] = '\r';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
211 text[*textPointer] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
214
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
215
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
216 void tM_rebuild_pages(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
217 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
218 menu.pagesAvailable = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
219 // menu.pageMemoryForNavigation = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
220 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
221 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
222 menu.lineMemoryForNavigationForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
223 menu.linesAvailableForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 menu.StartAddressForPage[i] = 0; // only with GFX_forceReleaseFramesWithId(5); !!!!!
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226 GFX_forceReleaseFramesWithId(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 tM_build_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 void tM_rebuild_menu_after_tComm(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
236 void tM_check_content(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
238 uint8_t mode = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
239
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
240 if(stateUsed->mode == MODE_DIVE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
241 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
242 if(stateUsed == stateRealGetPointer())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
243 mode = MENU_DIVE_REAL;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
244 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
245 mode = MENU_DIVE_SIM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
246 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
247 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
248 mode = MENU_SURFACE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
249
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
250 if(actual_menu_content != mode)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
251 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
252 actual_menu_content = mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
253 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
254 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
255 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
256
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
257 void disableLine(uint32_t lineId)
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
258 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
259 SStateList idList;
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
260
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
261 get_idSpecificStateList(lineId, &idList);
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
262
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
263 if((idList.page < MAXPAGES) && (idList.line < MAXLINES))
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
264 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
265 menu.disableLineMask[idList.page] |= (1 << idList.line);
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
266 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
267 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
268
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
269 uint8_t getLineMask(uint32_t lineId)
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
270 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
271 SStateList idList;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
272 get_idSpecificStateList(lineId, &idList);
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
273 return(menu.disableLineMask[idList.page]);
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
274 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
275
815
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
276 void resetLineMask(uint32_t lineId)
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
277 {
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
278 SStateList idList;
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
279 get_idSpecificStateList(lineId, &idList);
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
280 if(idList.page < MAXPAGES)
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
281 {
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
282 menu.disableLineMask[idList.page] = 0;
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
283 }
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
284 }
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
285 void enableLine(uint32_t lineId)
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
286 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
287 SStateList idList;
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
288
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
289 get_idSpecificStateList(lineId, &idList);
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
290
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
291 if((idList.page < MAXPAGES) && (idList.line < MAXLINES))
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
292 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
293 menu.disableLineMask[idList.page] &= ~(1 << idList.line);
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
294 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
295 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
296
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
297 static void clean_line_actual_page(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
298 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
299 uint8_t line, page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
300
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
301 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
302 line = menu.lineMemoryForNavigationForPage[page];
122
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
303 if(settingsGetPointer()->FlipDisplay) /* Reselect line to be deleted if display is rotated */
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
304 {
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
305 line = 6 - line + 1;
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
306 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
307 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
308 GFX_clean_line(&tMwindow, line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
309 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
310
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
311
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
312 static void update_content_actual_page(char *text, uint16_t tab, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
313 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
314 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
315
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
316 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
317
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
318 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
319 if(tab == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
320 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
321 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
322 tMwindow.WindowTab = tab;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
323
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
324 tMenu_write(page, text, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
325 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
326
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
327
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
328 static void update_content_with_new_frame(uint8_t page, char *text, uint16_t tab, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
329 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
330 char localtext[32];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
331
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
332 uint32_t rememberPage = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
333 menu.StartAddressForPage[page] = getFrame(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
334 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
335
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
336 if(tab == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
337 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
338 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
339 tMwindow.WindowTab = tab;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
340
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
341 draw_tMheader(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
342 tMenu_write(page, text, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
343
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
344 localtext[0] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
345 localtext[1] = TXT2BYTE_ButtonBack;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
346 localtext[2] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
347 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
348
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
349 localtext[0] = '\001';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
350 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
351 localtext[2] = TXT2BYTE_ButtonEnter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
352 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
353 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
354
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
355 localtext[0] = '\002';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
356 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
357 localtext[2] = TXT2BYTE_ButtonNext;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
358 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
359 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
360
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
361 // gfx_write_page_number(&tMscreen ,menu.pageCountNumber[page],menu.pageCountTotal,0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
362
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
363 if(page == menu.pageMemoryForNavigation)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
364 GFX_SetFrameTop(tMscreen.FBStartAdress);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
365 releaseFrame(5,rememberPage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
366 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
367
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
368
169
842f57bbaaad Bugfix: highlight the menu underline correctly on selected state
Jan Mulder <jlmulder@xs4all.nl>
parents: 167
diff changeset
369 static void tM_create_pagenumbering(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
370 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
371 menu.pageCountTotal = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
372
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
373 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
374 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
375 if(menu.pageCountNumber[i])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
376 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
377 menu.pageCountTotal++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
378 menu.pageCountNumber[i] = menu.pageCountTotal;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
379 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
380 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
381 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
382
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
383
379
0dbf550dc743 Added missing customerview selection
ideenmodellierer
parents: 225
diff changeset
384 void tM_build_page(uint32_t id, char *text, uint16_t tab, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
385 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
386 uint8_t linesFound;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
387 uint16_t i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
388 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
389 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
390
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
391 char localtext[32];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
392
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
393 if(menu.pagesAvailable > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
394 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
395
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
396 get_idSpecificStateList(id, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
397
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
398 if(idList.base != BaseMenu)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
399 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
400
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
401 if(idList.page == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
402 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
403
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
404 if(idList.page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
405 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
406
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
407 page = idList.page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
408
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
409 if((!menu.pageCountNumber[page]) && (!menu.shadowPage[page])) /* shadow pages are not visible on top level */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
410 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
411 return;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
412 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
413
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
414 if(menu.pagesAvailable == 0)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
415 tM_create_pagenumbering();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
416
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
417 if(*text == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
418 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
419
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
420 linesFound = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
421
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
422 if(menu.StartAddressForPage[page])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
423 releaseFrame(5,menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
424
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
425 menu.StartAddressForPage[page] = getFrame(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
426
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
427 if(menu.StartAddressForPage[page] == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
428 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
429
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
430 i = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
431 while((i < MAX_PAGE_TEXTSIZE) && text[i])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
432 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
433 if((text[i] == '\n') && ((i + 2) < MAX_PAGE_TEXTSIZE) && text[i+1] && text[i+2])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
434 linesFound += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
435 i++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
436 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
437
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
438 menu.linesAvailableForPage[page] = linesFound;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
439 menu.pagesAvailable++; /* even if it was used before */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
440
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
441 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
442 if(tab == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
443 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
444 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
445 tMwindow.WindowTab = tab;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
446
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
447 draw_tMheader(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
448
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
449 tMenu_write(page, text, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
450
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
451 localtext[0] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
452 localtext[1] = TXT2BYTE_ButtonBack;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
453 localtext[2] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
454 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
455
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
456 localtext[0] = '\001';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
457 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
458 localtext[2] = TXT2BYTE_ButtonEnter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
459 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
460 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
461
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
462 localtext[0] = '\002';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
463 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
464 localtext[2] = TXT2BYTE_ButtonNext;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
465 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
466 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
467 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
468
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
469 static void findValidPosition(uint8_t *pageOuput, uint8_t *lineOutput)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
470 {
51
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
471 uint8_t page = 0;
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
472 uint8_t line = 0;
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
473 uint8_t first = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
474
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
475 *pageOuput = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
476 *lineOutput = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
477
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
478 /* test */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
479 if(menu.pagesAvailable == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
480 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
481
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
482 for(int i=1;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
483 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
484 if((menu.pageCountNumber[i] != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
485 && (menu.linesAvailableForPage[i] != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
486 && (menu.StartAddressForPage[i] != 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
487 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
488 first = i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
489 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
490 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
491 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
492
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
493 /* select */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
494 if(menu.pageMemoryForNavigation > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
495 menu.pageMemoryForNavigation = first;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
496
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
497 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
498
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
499 if(page == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
500 page = first;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
501
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
502 while((page <= MAXPAGES) && ((menu.linesAvailableForPage[page] == 0) || (menu.StartAddressForPage[page] == 0) || ((menu.pageCountNumber[page] == 0) && !((menu.shadowPage[page]) && (menu.pageMemoryForNavigation == page)))))
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
503 page += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
504
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
505 if(page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
506 page = first;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
507
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
508 line = menu.lineMemoryForNavigationForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
509
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
510 if(line == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
511 line = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
512
815
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
513 while(menu.disableLineMask[page] & ( 1 << line))
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
514 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
515 line++;
815
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
516 if(line > menu.linesAvailableForPage[page])
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
517 {
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
518 line = 1;
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
519 }
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
520 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
521
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
522 if(line > menu.linesAvailableForPage[page])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
523 line = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
524
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
525 *pageOuput = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
526 *lineOutput = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
527 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
528
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
529
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
530 static void tM_add(uint32_t id)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
531 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
532 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
533 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
534
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
535 get_idSpecificStateList(id, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
536
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
537 page = idList.page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
538
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
539 if(page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
540 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
541
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
542 menu.pageCountNumber[page] = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
543 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
544
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
545 static void tM_addShadow(uint32_t id)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
546 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
547 SStateList idList;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
548 uint8_t page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
549
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
550 get_idSpecificStateList(id, &idList);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
551
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
552 page = idList.page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
553
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
554 if(page > MAXPAGES)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
555 return;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
556
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
557 menu.shadowPage[page] = 1;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
558 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
559
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
560
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
561 void tM_build_pages(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
562 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
563 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
564 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
565 uint32_t id;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
566 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
567 SSettings *pSettings = settingsGetPointer();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
568
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
569 menu.pagesAvailable = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
570 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
571 menu.pageCountNumber[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
572
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
573 tabPosition = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
574 *text = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
575 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
576
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
577 /* 2015 Feb 02, hw
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
578 * max 8 Menu Pages
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
579 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
580
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
581
1041
93c98a28406c Bugfix missing SYS header in dive menu:
Ideenmodellierer
parents: 1039
diff changeset
582 tM_add(StMSYS); //now in both modes
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
583 if(actual_menu_content == MENU_SURFACE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
584 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
585 tM_add(StMDECO);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
586 tM_add(StMHARD);
1041
93c98a28406c Bugfix missing SYS header in dive menu:
Ideenmodellierer
parents: 1039
diff changeset
587 tM_add(StMCustom);
1039
f8e2895c91e5 Reorder the 'SYS' menus so that they follow 'features / hardware / display' which should be less confusing for users.
heinrichsweikamp
parents: 1037
diff changeset
588 tM_add(StMOption);
1041
93c98a28406c Bugfix missing SYS header in dive menu:
Ideenmodellierer
parents: 1039
diff changeset
589 // tM_add(StMSYS); now in both modes
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
590 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
591 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
592 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
593 tM_add(StMXTRA);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
594 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
595 if(actual_menu_content == MENU_SURFACE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
596 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
597 tM_add(StMPLAN);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
598 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
599 // if((pSettings->dive_mode != DIVEMODE_Gauge) && (pSettings->dive_mode != DIVEMODE_Apnea))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
600 // {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
601 tM_add(StMDECOP);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
602 // }
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
603
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
604 if((isLoopMode(pSettings->dive_mode)) || (stateUsed->diveSettings.ccrOption == 1))
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
605 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
606 tM_add(StMCG);
856
af035b883382 Do not show SP tab if PSCR mode is active:
Ideenmodellierer
parents: 851
diff changeset
607 if((stateUsed->diveSettings.diveMode != DIVEMODE_PSCR) || (actual_menu_content != MENU_SURFACE))
af035b883382 Do not show SP tab if PSCR mode is active:
Ideenmodellierer
parents: 851
diff changeset
608 {
af035b883382 Do not show SP tab if PSCR mode is active:
Ideenmodellierer
parents: 851
diff changeset
609 tM_add(StMSP);
af035b883382 Do not show SP tab if PSCR mode is active:
Ideenmodellierer
parents: 851
diff changeset
610 }
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
611 if (actual_menu_content == MENU_SURFACE) /* StMOG is now accessed using StMCG in CCR mode*/
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
612 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
613 tM_add(StMXTRA);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
614 tM_addShadow(StMOG);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
615 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
616 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
617 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
618 tM_add(StMOG);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
619 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
620 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
621 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
622 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
623 tM_add(StMOG);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
624 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
625
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
626 id = tMOG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
627 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
628
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
629 id = tMCG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
630 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
631
788
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 774
diff changeset
632 id = tMSP_refresh(text, &tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
633 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
634
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
635 id = tMXtra_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
636 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
637
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
638 id = tMPlanner_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
639 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
640
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
641 id = tMDeco_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
642 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
643
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
644 id = tMDecoParameters_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
645 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
646
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
647 id = tMPlanner_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
648 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
649
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
650 id = tMHardware_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
651 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
652
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
653 id = tMSystem_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
654 tM_build_page(id, text, tabPosition, subtext);
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
655
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
656 id = tMCustom_refresh(0, text, &tabPosition, subtext);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
657 tM_build_page(id, text, tabPosition, subtext);
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
658
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
659 tMCvOptText_BuildDynamicContentList();
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
660 id = tMCvOption_refresh(0, text, &tabPosition, subtext);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
661 tM_build_page(id, text, tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
662 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
663
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
664
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
665 void tM_refresh_live_content(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
666 {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
667 static uint8_t slowUpdate = SLOW_UPDATE_CNT;
51
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
668 uint8_t page = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
669 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
670 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
671 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
672
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
673 uint32_t globalState = get_globalState();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
674
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
675 slowUpdate--;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
676 page = menu.pageMemoryForNavigation;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
677 switch(globalState)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
678 {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
679 case StMSYS: if(actual_menu_content == MENU_SURFACE)
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
680 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
681 tMSystem_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
682 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
683 }
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
684 break;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
685 case StMHARD: tMHardware_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
686 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
687 break;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
688 case StMOG: if((actual_menu_content != MENU_SURFACE) && (slowUpdate == 0))
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
689 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
690 tMOG_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
691 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
692 }
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
693 break;
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
694 case StMCG:
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
695 #ifndef ENABLE_ADVANCED_GAS
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
696 if((actual_menu_content != MENU_SURFACE) && (slowUpdate == 0))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
697 #else
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
698 if(slowUpdate == 0)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
699 #endif
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
700 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
701 tMCG_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
702 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
703 }
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
704 break;
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
705 case StMOption: tMCvOption_refresh(0, text, &tabPosition, subtext);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
706 update_content_with_new_frame(page, text, tabPosition, subtext);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents: 1053
diff changeset
707 break;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
708 default:
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
709 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
710 }
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
711 if(slowUpdate == 0)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
712 {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
713 slowUpdate = SLOW_UPDATE_CNT;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
714 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
715
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
716 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
717 tHome_show_lost_connection_count(&tMscreen);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
718 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
719 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
720 if(actual_menu_content == MENU_SURFACE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
721 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
722 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
723 get_idSpecificStateList(StMSYS, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
724 if(page == idList.page)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
725 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
726 tMSystem_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
727 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
728 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
729 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
730 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
731 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
732
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
733
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
734 /* new frame only! */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
735 void updateSpecificMenu(uint32_t id)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
736 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
737 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
738 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
739
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
740 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
741 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
742 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
743
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
744 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
745 *text = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
746 tabPosition = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
747
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
748 get_idSpecificStateList(id, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
749 page = idList.page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
750
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
751 switch(id)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
752 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
753 case StMOG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
754 tMOG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
755 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
756 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
757 case StMCG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
758 tMCG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
759 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
760 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
761 case StMSP:
788
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 774
diff changeset
762 tMSP_refresh(text, &tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
763 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
764 break;
815
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
765 case StMSYS:
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
766 tMSystem_refresh(0, text, &tabPosition, NULL);
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
767 update_content_with_new_frame(page, text, tabPosition, subtext);
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
768 break;
ce8f71217f45 Bugfix CustomView selection during dive mode:
Ideenmodellierer
parents: 811
diff changeset
769
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
770 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
771 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
772 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
773 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
774
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
775
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
776 void updateMenu(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
777 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
778 uint8_t page, line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
779
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
780 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
781 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
782 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
783
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
784 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
785 *text = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
786 tabPosition = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
787
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
788 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
789 line = menu.lineMemoryForNavigationForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
790
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
791 switch(get_globalState())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
792 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
793 case StMOG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
794 tMOG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
795 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
796 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
797 case StMCG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
798 tMCG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
799 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
800 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
801 case StMSP:
788
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 774
diff changeset
802 tMSP_refresh(text, &tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
803 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
804 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
805 case StMXTRA:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
806 tMXtra_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
807 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
808 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
809 case StMDECO:
1028
3d9552e4997c Code improvment: line <=> menu id function:
Ideenmodellierer
parents: 1018
diff changeset
810 if((line == get_lineOfID(StMDECO1_OC)) || (line == get_lineOfID(StMDECO3_PPO2Max))) // dive mode or ppO2 limits (the later for correct MOD in gaslists)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
811 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
812 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
813 menu.lineMemoryForNavigationForPage[page] = line; // fix 160623
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
814 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
815 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
816 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
817 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
818 tMDeco_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
819 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
820 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
821 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
822 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
823 case StMDECOP:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
824 tMDecoParameters_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
825 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
826 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
827 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
828 case StMPLAN:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
829 tMPlanner_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
830 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
831 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
832 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
833 case StMHARD:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
834 tMHardware_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
835 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
836 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
837 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
838 case StMSYS:
1037
2af07aa38531 Merge with external development branches:
Ideenmodellierer
parents: 1028
diff changeset
839 if((line == get_lineOfID(StMSYS1_DateTime)) || (line == get_lineOfID(StMSYS2_English))
2af07aa38531 Merge with external development branches:
Ideenmodellierer
parents: 1028
diff changeset
840 #ifdef ENABLE_SETTING_PROFILES
2af07aa38531 Merge with external development branches:
Ideenmodellierer
parents: 1028
diff changeset
841 || (line == get_lineOfID(StMSYS_Profile)))
2af07aa38531 Merge with external development branches:
Ideenmodellierer
parents: 1028
diff changeset
842 #else
2af07aa38531 Merge with external development branches:
Ideenmodellierer
parents: 1028
diff changeset
843 )
2af07aa38531 Merge with external development branches:
Ideenmodellierer
parents: 1028
diff changeset
844 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
845 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
846 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
847 menu.lineMemoryForNavigationForPage[page] = line; // fix 160623
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
848 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
849 menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
850 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
851 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
852 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
853 tMSystem_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
854 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
855 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
856 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
857 break;
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
858 case StMCustom:
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
859 tMCustom_refresh(line, text, &tabPosition, subtext);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
860 clean_line_actual_page();
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
861 update_content_actual_page(text, tabPosition, subtext);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
862 break;
1001
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
863 case StMOption:
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
864 tMCvOption_refresh(line, text, &tabPosition, subtext);
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
865 clean_line_actual_page();
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
866 update_content_actual_page(text, tabPosition, subtext);
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
867 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
868 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
869 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
870 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
871 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
872
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
873 void openMenu_first_page_with_OC_gas_update(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
874 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
875 menu.pageMemoryForNavigation = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
876 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
877 menu.lineMemoryForNavigationForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
878
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
879 set_globalState(StMOG);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
880 updateMenu();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
881 openMenu(1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
882 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
883
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
884
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
885 void openMenu(uint8_t freshWithFlipPages)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
886 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
887 uint8_t page, line;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
888 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
889 pSettings = settingsGetPointer();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
890
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
891 findValidPosition(&page, &line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
892 if((page == 0) || (line == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
893 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
894
996
8507a87f6401 Improve buzzer opreation:
Ideenmodellierer
parents: 951
diff changeset
895 if( getBuzzerActivationRequest() != REQUEST_BUZZER_ONCE)
8507a87f6401 Improve buzzer opreation:
Ideenmodellierer
parents: 951
diff changeset
896 {
8507a87f6401 Improve buzzer opreation:
Ideenmodellierer
parents: 951
diff changeset
897 requestBuzzerActivation(REQUEST_BUZZER_OFF);
8507a87f6401 Improve buzzer opreation:
Ideenmodellierer
parents: 951
diff changeset
898 }
951
e9c37071933b Added vibration warning:
Ideenmodellierer
parents: 856
diff changeset
899
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
900 menu.pageMemoryForNavigation = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
901 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
902 if(freshWithFlipPages)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
903 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
904 menu.lineMemoryForNavigationForPage[page] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
905 menu.modeFlipPages = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
906 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
907 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
908 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
909 menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
910 menu.modeFlipPages = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
911 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
912
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
913 set_globalState_Menu_Page(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
914
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
915
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
916 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
917 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
918
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
919
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
920 if(((page == 6) || (page == 8)) && (menu.pageCountNumber[page-1] == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
921 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
922 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 2));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
923 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 2));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
924
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
925 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
926
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
927 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
928 /* new test for 3button design */
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
929
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
930 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
931 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
932 if(freshWithFlipPages)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
933 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
934 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
935 GFX_SetFrameBottom((tMdesignCursor.FBStartAdress) + 65*2*(line - 1), 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
936 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
937 else
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
938 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
939 if(freshWithFlipPages)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
940 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
941 GFX_SetFrameBottom((tMdesignSolo.FBStartAdress), 0, 480-390-KEY_LABEL_HIGH, 800, 390); //- (25 * 2 * 800), 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
942 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
943 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
944 GFX_SetFrameBottom((tMdesignCursor.FBStartAdress + (390 - 65 *(line)) *2), 0,480-390-KEY_LABEL_HIGH, 800, 390); //480-390-KEY_LABEL_HIGH + 65*2*(line - 1)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
945 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
946
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
947 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
948
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
949 static void block_diluent_handler(_Bool Unblock)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
950 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
951 SStateList list;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
952 static uint8_t linesAvailableForPageDiluent = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
953 get_idSpecificStateList(StMCG, &list);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
954
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
955 if(Unblock && linesAvailableForPageDiluent)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
956 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
957 menu.linesAvailableForPage[list.page] = linesAvailableForPageDiluent;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
958 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
959 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
960 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
961 linesAvailableForPageDiluent = menu.linesAvailableForPage[list.page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
962 menu.linesAvailableForPage[list.page] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
963 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
964 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
965
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
966 void block_diluent_page(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
967 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
968 block_diluent_handler(0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
969 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
970
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
971
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
972 void unblock_diluent_page(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
973 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
974 block_diluent_handler(1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
975 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
976
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
977 static void checkLineStatus()
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
978 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
979 switch(get_globalState())
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
980 {
1001
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
981 case StMOption: tMCvOption_checkLineStatus();
851
9f487ad38170 Added line checks for System Menu:
Ideenmodellierer
parents: 850
diff changeset
982 break;
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
983 case StMXTRA: tMXtra_checkLineStatus();
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
984 break;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
985 default:
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
986 break;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
987 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
988 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
989
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
990 static void nextPage(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
991 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
992 uint8_t page, line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
993
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
994 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
995 pSettings = settingsGetPointer();
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
996
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
997 menu.pageMemoryForNavigation += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
998
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
999 findValidPosition(&page, &line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1000 menu.pageMemoryForNavigation = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1001 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1002 //menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1003 menu.lineMemoryForNavigationForPage[page] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1004 menu.modeFlipPages = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1005
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1006 set_globalState_Menu_Page(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1007
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
1008 checkLineStatus(); /* some lines may be enabled / disabled depending on condition occuring outside the page scope => check if update is necessary */
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 824
diff changeset
1009
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1010 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1011 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1012
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1013 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1014 /* new test for 3button design */
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1015 //GFX_SetFrameBottom((.FBStartAdress) + 65*2*(line - 1), 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1016 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1017 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1018 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1019 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1020 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1021 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1022 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 65, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1023 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1024 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1025
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1026 void selectPage(uint32_t selection)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1027 {
650
5f0d3dce5ef4 Automatik setpoint change:
Ideenmodellierer
parents: 647
diff changeset
1028 uint8_t page;
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1029 SStateList idList;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1030
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1031 SSettings* pSettings;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1032 pSettings = settingsGetPointer();
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1033
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1034 // menu.pageMemoryForNavigation = selection;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1035
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1036 // findValidPosition(&page, &line);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1037 if(selection > MAXPAGES) /* selection via structure */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1038 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1039 get_idSpecificStateList(selection, &idList);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1040 page = idList.page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1041 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1042 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1043 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1044 page = selection;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1045 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1046
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1047 if(menu.shadowPage[page]) /* backup base page in case a shadow was selected */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1048 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1049 menu.activeShadow = menu.pageMemoryForNavigation;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1050 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1051
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1052 menu.pageMemoryForNavigation = page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1053 /* new test for 3button design */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1054 //menu.lineMemoryForNavigationForPage[page] = line;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1055 menu.lineMemoryForNavigationForPage[page] = 0;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1056 menu.modeFlipPages = 1;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1057
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1058 set_globalState_Menu_Page(page);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1059
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1060 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 1));
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1061 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 1));
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1062
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1063 GFX_SetFrameTop(menu.StartAddressForPage[page]);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1064 /* new test for 3button design */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1065 //GFX_SetFrameBottom((.FBStartAdress) + 65*2*(line - 1), 0, 25, 800, 390);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1066 if(!pSettings->FlipDisplay)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1067 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1068 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1069 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1070 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1071 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1072 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 65, 800, 390);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1073 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1074 nextLine();
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1075 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1076
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1077
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1078 static void nextLine(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1079 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1080 uint8_t page, line;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1081 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1082 pSettings = settingsGetPointer();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1083
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1084 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1085 menu.lineMemoryForNavigationForPage[page] += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1086
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1087 findValidPosition(&page, &line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1088 menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1089
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1090 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1091 menu.modeFlipPages = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1092 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1093 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1094 GFX_SetFrameBottom((tMdesignCursor.FBStartAdress) + 65*2*(line - 1), 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1095 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1096 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1097 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1098 GFX_SetFrameBottom((tMdesignCursor.FBStartAdress)+ (390 - 65 *(line)) *2, 0, 480-390-KEY_LABEL_HIGH, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1099 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1100 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1101
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1102
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1103 static void stepBackMenu(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1104 {
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1105 if(menu.activeShadow) /* restore base page */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1106 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1107 selectPage(menu.activeShadow);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1108 menu.activeShadow = 0;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1109 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1110 if(menu.modeFlipPages == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1111 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1112 menu.lineMemoryForNavigationForPage[menu.pageMemoryForNavigation] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1113 menu.modeFlipPages = 1;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1114 if(!settingsGetPointer()->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1115 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1116 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1117 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1118 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1119 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1120 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 480-390-KEY_LABEL_HIGH, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1121 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1122 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1123 else
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1124 {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1125 exitMenu();
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1126 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1127 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1128
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1129
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1130 void exitMenu(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1131 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1132 set_globalState_tHome();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1133 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1134
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1135
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1136 static void stepForwardMenu(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1137 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1138 if(menu.modeFlipPages == 1)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1139 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1140 nextLine();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1141 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1142 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1143 gotoMenuEdit();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1144 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1145
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1146 static void gotoMenuEdit(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1147 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1148 uint8_t line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1149
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1150 line = menu.lineMemoryForNavigationForPage[menu.pageMemoryForNavigation];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1151
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1152 switch(get_globalState())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1153 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1154 case StMOG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1155 openEdit_GasOC(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1156 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1157 case StMCG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1158 openEdit_GasCC(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1159 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1160 case StMSP:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1161 openEdit_Setpoint(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1162 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1163 case StMXTRA:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1164 openEdit_Xtra(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1165 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1166 case StMDECO:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1167 openEdit_Deco(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1168 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1169 case StMDECOP:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1170 openEdit_DecoParameter(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1171 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1172 case StMPLAN:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1173 openEdit_Planner(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1174 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1175 case StMHARD:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1176 openEdit_Hardware(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1177 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1178 case StMSYS:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1179 openEdit_System(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1180 break;
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1181 case StMCustom:
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1182 openEdit_Custom(line);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1183 break;
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1184 case StMOption:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1185 openEdit_CvOption(line);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1186 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1187 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1188 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1189 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1190 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1191
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1192
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1193 void sendActionToMenu(uint8_t sendAction)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1194 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1195 switch(sendAction)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1196 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1197 case ACTION_BUTTON_ENTER:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1198 stepForwardMenu();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1199 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1200 case ACTION_BUTTON_NEXT:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1201 if(menu.modeFlipPages)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1202 nextPage();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1203 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1204 nextLine();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1205 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1206 case ACTION_TIMEOUT:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1207 case ACTION_MODE_CHANGE:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1208 case ACTION_BUTTON_BACK:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1209 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1210 stepBackMenu();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1211 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1212 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1213 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1214 case ACTION_IDLE_TICK:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1215 case ACTION_IDLE_SECOND:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1216 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1217 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1218 /* tMC_OC_Gas(StMOG1, pSettings); */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1219 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1220
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1221 static void tMenu_write(uint8_t page, char *text, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1222 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1223 if(page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1224 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1225 if(menu.linesAvailableForPage[page] == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1226 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1227
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1228 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1229 GFX_write_string(&FontT48, &tMwindow, text,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1230 if((*subtext) && (menu.linesAvailableForPage[page] < 6))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1231 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1232 GFX_write_string(&FontT42, &tMwindow, subtext, (menu.linesAvailableForPage[page] + 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1233 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1234 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1235
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1236
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1237 /* Private functions ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1238
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1239 static void draw_tMdesignSubUnselected(uint32_t *ppDestination)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1240 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1241 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1242 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1243 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1244 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1245 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1246
130
b7689d9e888a Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents: 122
diff changeset
1247 uint16_t* prunning = (uint16_t*)*ppDestination;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1248
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1249 union al88_u color_seperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1250 union al88_u color_unselected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1251 int i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1252
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1253 color_seperator.al8[0] = CLUT_MenuLineUnselectedSeperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1254 color_unselected.al8[0] = CLUT_MenuLineUnselected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1255
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1256 color_seperator.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1257 color_unselected.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1258
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1259 *(__IO uint16_t*)prunning++ = color_seperator.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1260 *(__IO uint16_t*)prunning++ = color_seperator.al88;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1261
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1262 for(i = 61; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1263 {
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1264 *(__IO uint16_t*)prunning++ = color_unselected.al88;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1265 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1266
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1267 *(__IO uint16_t*)prunning++ = color_seperator.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1268 *(__IO uint16_t*)prunning++ = color_seperator.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1269
130
b7689d9e888a Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents: 122
diff changeset
1270 *ppDestination = (uint32_t)prunning;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1271 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1272
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1273
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1274 static void draw_tMdesignSubSelected(uint32_t *ppDestination)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1275 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1276 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1277 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1278 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1279 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1280 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1281
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1282 union al88_u color_selected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1283 union al88_u color_seperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1284 int i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1285
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1286 color_selected.al8[0] = CLUT_MenuLineSelected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1287 color_selected.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1288
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1289 color_seperator.al8[0] = CLUT_MenuLineSelectedSeperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1290 color_seperator.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1291
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1292 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1293 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1294 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1295 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1296
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1297 for(i = 61; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1298 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1299 *(__IO uint16_t*)*ppDestination = color_selected.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1300 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1301 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1302
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1303 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1304 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1305 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1306 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1307 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1308
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1309
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1310 static void draw_tMdesignSubSelectedBorder(uint32_t *ppDestination)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1311 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1312 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1313 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1314 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1315 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1316 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1317
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1318 union al88_u color_selected_sides;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1319
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1320 int i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1321
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1322 color_selected_sides.al8[0] = CLUT_MenuLineSelectedSides;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1323 color_selected_sides.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1324
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1325 for(i = 65; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1326 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1327 *(__IO uint16_t*)*ppDestination = color_selected_sides.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1328 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1329 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1330 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1331
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1332
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1333 static void draw_tMcursorDesign(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1334 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1335 int i,j;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1336 uint32_t pDestination;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1337
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1338 pDestination = tMdesignCursor.FBStartAdress;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1339
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1340 for(j = 801; j > 0; j--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1341 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1342 for(i = 5; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1343 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1344 draw_tMdesignSubUnselected(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1345 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1346 if((j > 787) || (j < 17))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1347 draw_tMdesignSubSelectedBorder(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1348 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1349 draw_tMdesignSubSelected(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1350 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1351
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1352 /* Draw menu background boxes which are visible if nothing is selected */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1353 pDestination = tMdesignSolo.FBStartAdress;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1354
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1355 for(j = 801; j > 0; j--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1356 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1357 for(i = 6; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1358 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1359 draw_tMdesignSubUnselected(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1360 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1361 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1362 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1363
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1364
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1365 static void draw_tMheader(uint8_t page)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1366 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1367 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1368 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1369 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1370 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1371 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1372 union al88_u color_top;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1373 int i,j, k, k4text;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1374 uint32_t pBackup;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1375 uint16_t* pDestination;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1376 uint8_t colorText;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1377 uint16_t positionText;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1378 uint8_t pageText;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1379
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1380 char text8max[MAXPAGES+1][8] =
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1381 { "",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1382 "OC",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1383 "CC",
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1384 "",
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1385 "DATA",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1386 "DECO",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1387 "",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1388 "SYS",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1389 "",
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1390 "",
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1391 "",
1041
93c98a28406c Bugfix missing SYS header in dive menu:
Ideenmodellierer
parents: 1039
diff changeset
1392 "SIM",
93c98a28406c Bugfix missing SYS header in dive menu:
Ideenmodellierer
parents: 1039
diff changeset
1393 ""
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1394 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1395
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1396 _Bool spacing[MAXPAGES+1] =
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1397 { 0,
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1398 1, // behind OC
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1399 0, // behind CC
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1400 1, // behind SP
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1401 1, // behind DATA
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1402 0, // behind DECO1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1403 1, // behind DECO2
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1404 0, // behind SYS1
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1405 0, // behind SYS2
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1406 0, // behind SYS3
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1407 1, // behind SYS4
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1408 1, // behind SIM
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1409 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1410 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1411
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1412 if(actual_menu_content == MENU_SURFACE)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1413 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1414 spacing[3] = 0; /* Display extra menu directly after setpoint */
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1415 memset(text8max[4],0,8);
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1416 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1417
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1418 pBackup = tMscreen.FBStartAdress;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1419 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
130
b7689d9e888a Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents: 122
diff changeset
1420 pDestination = (uint16_t*) menu.StartAddressForPage[page];
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1421 positionText = 10;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1422 pageText = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1423
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1424 gfx_write_page_number(&tMscreen ,menu.pageCountNumber[page],menu.pageCountTotal,0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1425
1041
93c98a28406c Bugfix missing SYS header in dive menu:
Ideenmodellierer
parents: 1039
diff changeset
1426 /* Find the matching master text if a tab has no direct name e.g. SYS subtabs */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1427 while((text8max[pageText][0] == 0) && (pageText > 1))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1428 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1429 pageText--;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1430 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1431
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1432 for(k = 1; k <= MAXPAGES; k++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1433 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1434 if(menu.pageCountNumber[k] != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1435 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1436 k4text = k; // new hw 170522
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1437 if((text8max[k][0] == 0) && (menu.pageCountNumber[k-1] == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1438 k4text = k-1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1439
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1440 color_top.al8[0] = CLUT_MenuPageGasOC + k - 1;
169
842f57bbaaad Bugfix: highlight the menu underline correctly on selected state
Jan Mulder <jlmulder@xs4all.nl>
parents: 167
diff changeset
1441 if (k == page)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1442 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1443 color_top.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1444 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1445 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1446 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1447 color_top.al8[1] = 0x50;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1448 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1449
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1450 if(k4text == pageText)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1451 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1452 colorText = CLUT_Font020;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1453 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1454 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1455 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1456 colorText = CLUT_Font021;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1457 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1458
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1459 write_content_simple(&tMscreen,positionText,775,0,&FontT42,text8max[k4text],colorText);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1460 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1461 write_content_simple(&tMscreen,positionText,775,0,&FontT42,text8max[k],colorText);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1462 if((text8max[k][0] == 0) && (menu.pageCountNumber[k-1] == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1463 write_content_simple(&tMscreen,positionText,775,0,&FontT42,text8max[k-1],colorText);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1464 */
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1465 /* Draw color bars */
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1466 if(!settingsGetPointer()->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1467 {
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1468 pDestination += TAB_BAR_SPACING * 480;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1469
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1470 for(j = TAB_BAR_WIDTH; j > 0; j--)
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1471 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1472 pDestination += (390 + 26);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1473
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1474 for(i = 16; i > 0; i--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1475 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1476 *(__IO uint16_t*)pDestination++ = color_top.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1477 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1478 pDestination += 48;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1479 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1480
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1481 pDestination += TAB_BAR_SPACING * 480;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1482 positionText += TAB_BAR_WIDTH + 2* TAB_BAR_SPACING;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1483
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1484 if(((k == 4) && (actual_menu_content != MENU_SURFACE)) || ((k == 6) && (menu.pageCountNumber[5] == 0)))
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1485 {
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1486 pDestination += (TAB_BAR_WIDTH + 2* TAB_BAR_SPACING) * 480;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents: 996
diff changeset
1487 positionText += TAB_BAR_WIDTH + 2* TAB_BAR_SPACING;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1488 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1489
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1490 if(spacing[k])
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1491 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1492 pDestination += 35 * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1493 positionText += 35;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1494 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1495 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1496 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1497 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1498 pDestination += (800 - 5)* 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1499
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1500 for(j = 60; j > 0; j--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1501 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1502 pDestination -= (390 + 26);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1503
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1504 for(i = 16; i > 0; i--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1505 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1506 *(__IO uint16_t*)pDestination-- = color_top.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1507 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1508 pDestination -= 48;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1509 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1510
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1511 pDestination -= (800) * 480;
824
2a9a47547b05 Bugfix Flipscreen visualization:
Ideenmodellierer
parents: 816
diff changeset
1512 positionText += 66;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1513
658
4df22790dc0c Bugfix handling of new menu tab in flipped mode:
Ideenmodellierer
parents: 650
diff changeset
1514 if(((k == 4) && (actual_menu_content != MENU_SURFACE)) || ((k == 6) && (menu.pageCountNumber[5] == 0)))
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1515 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1516 pDestination -= 70 * 480;
824
2a9a47547b05 Bugfix Flipscreen visualization:
Ideenmodellierer
parents: 816
diff changeset
1517 positionText += 66;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1518 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1519
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1520 if(spacing[k])
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1521 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1522 pDestination -= 35 * 480;
824
2a9a47547b05 Bugfix Flipscreen visualization:
Ideenmodellierer
parents: 816
diff changeset
1523 positionText += 31;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1524 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1525 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1526 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1527 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1528 tMscreen.FBStartAdress = pBackup;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1529 }
774
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 662
diff changeset
1530
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 662
diff changeset
1531
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 662
diff changeset
1532 char *makeGrey(bool isGrey)
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 662
diff changeset
1533 {
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 662
diff changeset
1534 return isGrey ? "\031" : "";
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 662
diff changeset
1535 }
1018
808153ba3fec Disable the menu items for editing scrubber timer parameters if an
heinrichsweikamp
parents: 1001
diff changeset
1536
808153ba3fec Disable the menu items for editing scrubber timer parameters if an
heinrichsweikamp
parents: 1001
diff changeset
1537
808153ba3fec Disable the menu items for editing scrubber timer parameters if an
heinrichsweikamp
parents: 1001
diff changeset
1538 char printCheckbox(bool isChecked)
808153ba3fec Disable the menu items for editing scrubber timer parameters if an
heinrichsweikamp
parents: 1001
diff changeset
1539 {
808153ba3fec Disable the menu items for editing scrubber timer parameters if an
heinrichsweikamp
parents: 1001
diff changeset
1540 return isChecked ? '\005' : '\006';
808153ba3fec Disable the menu items for editing scrubber timer parameters if an
heinrichsweikamp
parents: 1001
diff changeset
1541 }