annotate Discovery/Src/tMenu.c @ 811:4c41d9a18c7f

Added function to skip lines which are not needed for operation: It was not possible in the previous version to skip lines in the top level menu view which were not used for operation. In the past context sensitive menus as well as layout changes have been introduced which cause the cursor to be placed on lines without function. To avoid this it is not possible to mark a line as not in use by enabling / disabling it by the individual meni Id.
author Ideenmodellierer
date Sun, 27 Aug 2023 20:59:12 +0200
parents 4abfb8a2a435
children ce8f71217f45
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"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 #include "tMenuGas.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 #include "tMenuHardware.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 #include "tMenuPlanner.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 #include "tMenuSetpoint.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 #include "tMenuSystem.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 #include "tMenuXtra.h"
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
51 #include "tMenuCustom.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 /* Private types -------------------------------------------------------------*/
521
e221cf762f45 Move Bigfont and motion Ctrl selection menu out of custom view submenu:
Ideenmodellierer
parents: 507
diff changeset
54 #define MAXPAGES 11
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
55 #define CURSOR_HIGH 25
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
56 #define TAB_HEADER_HIGH 25
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
57 #define TAB_BAR_HIGH 5
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
58 #define MENU_WDW_HIGH 390
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
59 #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
60
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
61 #define SLOW_UPDATE_CNT 10 /* Some content shall not be update in short intervals => add prescalar */
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
62 #define MAXLINES 6
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
63
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 uint32_t StartAddressForPage[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 uint8_t lineMemoryForNavigationForPage[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 uint8_t pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 uint8_t linesAvailableForPage[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 uint8_t pagesAvailable;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 uint8_t pageCountNumber[MAXPAGES+1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 uint8_t pageCountTotal;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 uint8_t modeFlipPages;
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
74 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
75 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
76 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
77 } SMenuMemory;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 /* Exported variables --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 /* Announced Private variables -----------------------------------------------*/
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
82 static GFX_DrawCfgScreen tMdesignSolo;
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
83 static GFX_DrawCfgScreen tMdesignCursor;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 /* Private variables ---------------------------------------------------------*/
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
86 static GFX_DrawCfgWindow tMwindow;
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
87 static GFX_DrawCfgScreen tMscreen;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
89 static SMenuMemory menu;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91 uint8_t actual_menu_content = MENU_UNDEFINED;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
93
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
94
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
95
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 /* Private function prototypes -----------------------------------------------*/
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
97 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
98 static void draw_tMcursorDesign(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
100 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
101 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
102 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
103 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
104 static void nextLine(void);
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
105 static void clean_line_actual_page(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 void tM_build_pages(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
108 static void gotoMenuEdit(void);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 /* Exported functions --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 GFX_DrawCfgScreen * get_PointerMenuCursorScreen(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 return &tMdesignCursor;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 GFX_DrawCfgScreen * get_PointerMenuCursorDesignSoloScreen(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 return &tMdesignSolo;
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
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 void nextline(char * text, uint8_t *textPointer)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 text[(*textPointer)++] = '\n';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 text[(*textPointer)++] = '\r';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 text[*textPointer] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 void tM_init(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 uint8_t i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
136 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
137 pSettings = settingsGetPointer();
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
138
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 tMdesignCursor.FBStartAdress = getFrame(3);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 tMdesignCursor.ImageHeight = 390;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141 tMdesignCursor.ImageWidth = 800;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 tMdesignCursor.LayerIndex = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 tMdesignSolo.FBStartAdress = getFrame(4);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 tMdesignSolo.ImageHeight = 390;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 tMdesignSolo.ImageWidth = 800;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 tMdesignSolo.LayerIndex = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149 menu.pagesAvailable = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 menu.pageMemoryForNavigation = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151 for(i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153 menu.lineMemoryForNavigationForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 menu.StartAddressForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 menu.linesAvailableForPage[i] = 0;
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
156 menu.shadowPage[i] = 0;
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
157 menu.disableLineMask[i] = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
158 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 tMscreen.FBStartAdress = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161 tMscreen.ImageHeight = 480;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 tMscreen.ImageWidth = 800;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163 tMscreen.LayerIndex = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 draw_tMcursorDesign();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167 tMwindow.Image = &tMscreen;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 tMwindow.WindowNumberOfTextLines = 6;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
169 tMwindow.WindowLineSpacing = 65;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171 tMwindow.WindowX0 = 20;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
172 tMwindow.WindowX1 = 779;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
173
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
174 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
175 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
176 tMwindow.WindowY0 = 4 + KEY_LABEL_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
177 tMwindow.WindowY1 = 390 + KEY_LABEL_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
178 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
179 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
180 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
181 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
182 tMwindow.WindowY1 = 480 - TAB_HEADER_HIGH - TAB_BAR_HIGH;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
183 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
184 actual_menu_content = MENU_UNDEFINED;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
185 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
186
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
187 void tM_refresh(char *text, uint8_t *textPointer, uint8_t line, const char content[6])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
188 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
189 for(uint8_t i=0; i<6; i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
190 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
191 if(((line == 0) || (line == i)) && content[i])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
192 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
193 text[(*textPointer)++] = content[i];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
194 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
195 text[(*textPointer)++] = '\n';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
196 text[(*textPointer)++] = '\r';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
197 text[*textPointer] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
198 }
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
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
202 void tM_rebuild_pages(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
203 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
204 menu.pagesAvailable = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
205 // menu.pageMemoryForNavigation = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
206 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
207 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
208 menu.lineMemoryForNavigationForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
209 menu.linesAvailableForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
210 menu.StartAddressForPage[i] = 0; // only with GFX_forceReleaseFramesWithId(5); !!!!!
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
211 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 GFX_forceReleaseFramesWithId(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 tM_build_pages();
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
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
217 void tM_rebuild_menu_after_tComm(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
218 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
219 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
220 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
221
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
222 void tM_check_content(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
223 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 uint8_t mode = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226 if(stateUsed->mode == MODE_DIVE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228 if(stateUsed == stateRealGetPointer())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229 mode = MENU_DIVE_REAL;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 mode = MENU_DIVE_SIM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 mode = MENU_SURFACE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
236 if(actual_menu_content != mode)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
238 actual_menu_content = mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
239 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
240 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
241 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
242
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
243 void disableLine(uint32_t lineId)
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
244 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
245 SStateList idList;
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
246
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
247 get_idSpecificStateList(lineId, &idList);
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
248
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
249 if((idList.page < MAXPAGES) && (idList.line < MAXLINES))
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
250 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
251 menu.disableLineMask[idList.page] |= (1 << idList.line);
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
252 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
253 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
254
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
255 void enableLine(uint32_t lineId)
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
256 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
257 SStateList idList;
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 get_idSpecificStateList(lineId, &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 if((idList.page < MAXPAGES) && (idList.line < MAXLINES))
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 menu.disableLineMask[idList.page] &= ~(1 << idList.line);
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 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
266
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
267 static void clean_line_actual_page(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
268 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
269 uint8_t line, page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
270
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
271 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
272 line = menu.lineMemoryForNavigationForPage[page];
122
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
273 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
274 {
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
275 line = 6 - line + 1;
871baf20776b Take care for display orientation if deleting lines
Ideenmodellierer
parents: 110
diff changeset
276 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
277 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
278 GFX_clean_line(&tMwindow, line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
279 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
280
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
281
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
282 static void update_content_actual_page(char *text, uint16_t tab, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
283 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
284 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
285
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
286 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
287
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
288 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
289 if(tab == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
290 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
291 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
292 tMwindow.WindowTab = tab;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
293
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
294 tMenu_write(page, text, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
295 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
296
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
297
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
298 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
299 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
300 char localtext[32];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
301
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
302 uint32_t rememberPage = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
303 menu.StartAddressForPage[page] = getFrame(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
304 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
305
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
306 if(tab == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
307 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
308 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
309 tMwindow.WindowTab = tab;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
310
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
311 draw_tMheader(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
312 tMenu_write(page, text, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
313
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
314 localtext[0] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
315 localtext[1] = TXT2BYTE_ButtonBack;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
316 localtext[2] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
317 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
318
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
319 localtext[0] = '\001';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
320 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
321 localtext[2] = TXT2BYTE_ButtonEnter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
322 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
323 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
324
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
325 localtext[0] = '\002';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
326 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
327 localtext[2] = TXT2BYTE_ButtonNext;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
328 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
329 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
330
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
331 // gfx_write_page_number(&tMscreen ,menu.pageCountNumber[page],menu.pageCountTotal,0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
332
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
333 if(page == menu.pageMemoryForNavigation)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
334 GFX_SetFrameTop(tMscreen.FBStartAdress);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
335 releaseFrame(5,rememberPage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
336 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
337
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
338
169
842f57bbaaad Bugfix: highlight the menu underline correctly on selected state
Jan Mulder <jlmulder@xs4all.nl>
parents: 167
diff changeset
339 static void tM_create_pagenumbering(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
340 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
341 menu.pageCountTotal = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
342
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
343 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
344 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
345 if(menu.pageCountNumber[i])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
346 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
347 menu.pageCountTotal++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
348 menu.pageCountNumber[i] = menu.pageCountTotal;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
349 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
350 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
351 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
352
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
353
379
0dbf550dc743 Added missing customerview selection
ideenmodellierer
parents: 225
diff changeset
354 void tM_build_page(uint32_t id, char *text, uint16_t tab, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
355 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
356 uint8_t linesFound;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
357 uint16_t i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
358 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
359 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
360
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
361 char localtext[32];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
362
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
363 if(menu.pagesAvailable > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
364 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
365
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
366 get_idSpecificStateList(id, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
367
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
368 if(idList.base != BaseMenu)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
369 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
370
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
371 if(idList.page == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
372 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
373
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
374 if(idList.page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
375 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
376
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
377 page = idList.page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
378
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
379 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
380 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
381 return;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
382 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
383
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
384 if(menu.pagesAvailable == 0)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
385 tM_create_pagenumbering();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
386
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
387 if(*text == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
388 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
389
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
390 linesFound = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
391
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
392 if(menu.StartAddressForPage[page])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
393 releaseFrame(5,menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
394
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
395 menu.StartAddressForPage[page] = getFrame(5);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
396
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
397 if(menu.StartAddressForPage[page] == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
398 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
399
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
400 i = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
401 while((i < MAX_PAGE_TEXTSIZE) && text[i])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
402 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
403 if((text[i] == '\n') && ((i + 2) < MAX_PAGE_TEXTSIZE) && text[i+1] && text[i+2])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
404 linesFound += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
405 i++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
406 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
407
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
408 menu.linesAvailableForPage[page] = linesFound;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
409 menu.pagesAvailable++; /* even if it was used before */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
410
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
411 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
412 if(tab == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
413 tMwindow.WindowTab = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
414 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
415 tMwindow.WindowTab = tab;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
416
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
417 draw_tMheader(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
418
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
419 tMenu_write(page, text, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
420
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
421 localtext[0] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
422 localtext[1] = TXT2BYTE_ButtonBack;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
423 localtext[2] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
424 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
425
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
426 localtext[0] = '\001';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
427 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
428 localtext[2] = TXT2BYTE_ButtonEnter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
429 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
430 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
431
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
432 localtext[0] = '\002';
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
433 localtext[1] = TXT_2BYTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
434 localtext[2] = TXT2BYTE_ButtonNext;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
435 localtext[3] = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
436 write_content_simple(&tMscreen, 0, 800, 480-KEY_LABEL_HIGH, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
437 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
438
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
439 static void findValidPosition(uint8_t *pageOuput, uint8_t *lineOutput)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
440 {
51
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
441 uint8_t page = 0;
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
442 uint8_t line = 0;
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
443 uint8_t first = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
444
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
445 *pageOuput = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
446 *lineOutput = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
447
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
448 /* test */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
449 if(menu.pagesAvailable == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
450 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
451
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
452 for(int i=1;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
453 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
454 if((menu.pageCountNumber[i] != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
455 && (menu.linesAvailableForPage[i] != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
456 && (menu.StartAddressForPage[i] != 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
457 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
458 first = i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
459 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
460 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
461 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
462
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
463 /* select */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
464 if(menu.pageMemoryForNavigation > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
465 menu.pageMemoryForNavigation = first;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
466
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
467 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
468
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
469 if(page == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
470 page = first;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
471
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
472 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
473 page += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
474
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
475 if(page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
476 page = first;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
477
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
478 line = menu.lineMemoryForNavigationForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
479
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
480 if(line == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
481 line = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
482
811
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
483 if(menu.disableLineMask[page] & ( 1 << line))
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
484 {
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
485 line++;
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
486 }
4c41d9a18c7f Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents: 788
diff changeset
487
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
488 if(line > menu.linesAvailableForPage[page])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
489 line = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
490
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
491 *pageOuput = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
492 *lineOutput = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
493 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
494
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
495
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
496 static void tM_add(uint32_t id)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
497 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
498 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
499 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
500
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
501 get_idSpecificStateList(id, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
502
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
503 page = idList.page;
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 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
507
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
508 menu.pageCountNumber[page] = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
509 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
510
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
511 static void tM_addShadow(uint32_t id)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
512 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
513 SStateList idList;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
514 uint8_t page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
515
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
516 get_idSpecificStateList(id, &idList);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
517
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
518 page = idList.page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
519
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
520 if(page > MAXPAGES)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
521 return;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
522
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
523 menu.shadowPage[page] = 1;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
524 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
525
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
526
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
527 void tM_build_pages(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
528 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
529 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
530 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
531 uint32_t id;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
532 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
533 SSettings *pSettings = settingsGetPointer();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
534
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
535 menu.pagesAvailable = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
536 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
537 menu.pageCountNumber[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
538
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
539 tabPosition = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
540 *text = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
541 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
542
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
543 /* 2015 Feb 02, hw
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
544 * max 8 Menu Pages
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
545 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
546
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
547
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
548 tM_add(StMSYS); //now in both modes
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
549 if(actual_menu_content == MENU_SURFACE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
550 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
551 tM_add(StMDECO);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
552 tM_add(StMHARD);
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
553 tM_add(StMCustom);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
554 // tM_add(StMSYS); now in both modes
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
555 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
556 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
557 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
558 tM_add(StMXTRA);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
559 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
560 if(actual_menu_content == MENU_SURFACE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
561 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
562 tM_add(StMPLAN);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
563 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
564 // if((pSettings->dive_mode != DIVEMODE_Gauge) && (pSettings->dive_mode != DIVEMODE_Apnea))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
565 // {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
566 tM_add(StMDECOP);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
567 // }
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
568
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
569 if((isLoopMode(pSettings->dive_mode)) || (stateUsed->diveSettings.ccrOption == 1))
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
570 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
571 tM_add(StMCG);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
572 tM_add(StMSP);
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
573 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
574 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
575 tM_add(StMXTRA);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
576 tM_addShadow(StMOG);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
577 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
578 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
579 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
580 tM_add(StMOG);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
581 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
582 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
583 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
584 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
585 tM_add(StMOG);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
586 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
587
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
588 id = tMOG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
589 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
590
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
591 id = tMCG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
592 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
593
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
594 id = tMSP_refresh(text, &tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
595 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
596
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
597 id = tMXtra_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
598 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
599
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
600 id = tMPlanner_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
601 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
602
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
603 id = tMDeco_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
604 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
605
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
606 id = tMDecoParameters_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
607 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
608
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
609 id = tMPlanner_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
610 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
611
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
612 id = tMHardware_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
613 tM_build_page(id, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
614
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
615 id = tMSystem_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
616 tM_build_page(id, text, tabPosition, subtext);
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
617
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
618 id = tMCustom_refresh(0, text, &tabPosition, subtext);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
619 tM_build_page(id, text, tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
620 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
621
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
622
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
623 void tM_refresh_live_content(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
624 {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
625 static uint8_t slowUpdate = SLOW_UPDATE_CNT;
51
8f8ea3a32e82 Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents: 38
diff changeset
626 uint8_t page = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
627 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
628 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
629 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
630
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
631 uint32_t globalState = get_globalState();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
632
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
633 slowUpdate--;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
634 page = menu.pageMemoryForNavigation;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
635 switch(globalState)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
636 {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
637 case StMSYS: if(actual_menu_content == MENU_SURFACE)
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
638 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
639 tMSystem_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
640 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
641 }
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
642 break;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
643 case StMHARD: tMHardware_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
644 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
645 break;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
646 case StMOG: if((actual_menu_content != MENU_SURFACE) && (slowUpdate == 0))
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
647 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
648 tMOG_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
649 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
650 }
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
651 break;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
652 case StMCG: if((actual_menu_content != MENU_SURFACE) && (slowUpdate == 0))
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
653 {
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
654 tMCG_refresh(0, text, &tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
655 update_content_with_new_frame(page, text, tabPosition, subtext);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
656 }
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
657 break;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
658 default:
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
659 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
660 }
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
661 if(slowUpdate == 0)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
662 {
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 658
diff changeset
663 slowUpdate = SLOW_UPDATE_CNT;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
664 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
665
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
666 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
667 tHome_show_lost_connection_count(&tMscreen);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
668 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
669 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
670 if(actual_menu_content == MENU_SURFACE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
671 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
672 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
673 get_idSpecificStateList(StMSYS, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
674 if(page == idList.page)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
675 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
676 tMSystem_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
677 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
678 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
679 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
680 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
681 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
682
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
683
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
684 /* new frame only! */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
685 void updateSpecificMenu(uint32_t id)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
686 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
687 uint8_t page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
688 SStateList idList;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
689
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
690 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
691 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
692 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
693
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
694 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
695 *text = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
696 tabPosition = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
697
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
698 get_idSpecificStateList(id, &idList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
699 page = idList.page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
700
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
701 switch(id)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
702 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
703 case StMOG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
704 tMOG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
705 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
706 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
707 case StMCG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
708 tMCG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
709 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
710 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
711 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
712 tMSP_refresh(text, &tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
713 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
714 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
715 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
716 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
717 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
718 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
719
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
720
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
721 void updateMenu(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
722 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
723 uint8_t page, line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
724
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
725 char text[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
726 char subtext[MAX_PAGE_TEXTSIZE];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
727 uint16_t tabPosition;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
728
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
729 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
730 *text = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
731 tabPosition = 400;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
732
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
733 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
734 line = menu.lineMemoryForNavigationForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
735
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
736 switch(get_globalState())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
737 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
738 case StMOG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
739 tMOG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
740 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
741 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
742 case StMCG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
743 tMCG_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
744 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
745 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
746 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
747 tMSP_refresh(text, &tabPosition, subtext);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
748 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
749 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
750 case StMXTRA:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
751 tMXtra_refresh(0, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
752 update_content_with_new_frame(page, text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
753 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
754 case StMDECO:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
755 if((line == 1) || (line == 3)) // dive mode or ppO2 limits (the later for correct MOD in gaslists)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
756 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
757 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
758 menu.lineMemoryForNavigationForPage[page] = line; // fix 160623
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
759 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
760 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
761 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
762 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
763 tMDeco_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
764 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
765 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
766 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
767 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
768 case StMDECOP:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
769 tMDecoParameters_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
770 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
771 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
772 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
773 case StMPLAN:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
774 tMPlanner_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
775 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
776 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
777 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
778 case StMHARD:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
779 tMHardware_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
780 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
781 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
782 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
783 case StMSYS:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
784 if((line == 2) || (line == 3) || (line == 6))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
785 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
786 tM_rebuild_pages();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
787 menu.lineMemoryForNavigationForPage[page] = line; // fix 160623
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
788 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
789 menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
790 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
791 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
792 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
793 tMSystem_refresh(line, text, &tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
794 clean_line_actual_page();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
795 update_content_actual_page(text, tabPosition, subtext);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
796 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
797 break;
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
798 case StMCustom:
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
799 tMCustom_refresh(line, text, &tabPosition, subtext);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
800 clean_line_actual_page();
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
801 update_content_actual_page(text, tabPosition, subtext);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
802 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
803 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
804 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
805 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
806 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
807
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
808 void openMenu_first_page_with_OC_gas_update(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
809 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
810 menu.pageMemoryForNavigation = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
811 for(int i=0;i<=MAXPAGES;i++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
812 menu.lineMemoryForNavigationForPage[i] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
813
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
814 set_globalState(StMOG);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
815 updateMenu();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
816 openMenu(1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
817 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
818
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
819
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
820 void openMenu(uint8_t freshWithFlipPages)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
821 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
822 uint8_t page, line;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
823 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
824 pSettings = settingsGetPointer();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
825
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
826 findValidPosition(&page, &line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
827 if((page == 0) || (line == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
828 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
829
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
830 menu.pageMemoryForNavigation = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
831 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
832 if(freshWithFlipPages)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
833 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
834 menu.lineMemoryForNavigationForPage[page] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
835 menu.modeFlipPages = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
836 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
837 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
838 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
839 menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
840 menu.modeFlipPages = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
841 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
842
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
843 set_globalState_Menu_Page(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
844
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
845
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
846 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
847 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
848
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
849
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
850 if(((page == 6) || (page == 8)) && (menu.pageCountNumber[page-1] == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
851 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
852 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 2));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
853 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 2));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
854
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
855 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
856
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
857 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
858 /* new test for 3button design */
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
859
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
860 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
861 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
862 if(freshWithFlipPages)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
863 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
864 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
865 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
866 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
867 else
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
868 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
869 if(freshWithFlipPages)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
870 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
871 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
872 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
873 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
874 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
875 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
876
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
877 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
878
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
879 static void block_diluent_handler(_Bool Unblock)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
880 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
881 SStateList list;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
882 static uint8_t linesAvailableForPageDiluent = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
883 get_idSpecificStateList(StMCG, &list);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
884
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
885 if(Unblock && linesAvailableForPageDiluent)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
886 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
887 menu.linesAvailableForPage[list.page] = linesAvailableForPageDiluent;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
888 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
889 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
890 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
891 linesAvailableForPageDiluent = menu.linesAvailableForPage[list.page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
892 menu.linesAvailableForPage[list.page] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
893 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
894 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
895
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
896 void block_diluent_page(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
897 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
898 block_diluent_handler(0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
899 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
900
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
901
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
902 void unblock_diluent_page(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
903 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
904 block_diluent_handler(1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
905 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
906
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
907
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
908 static void nextPage(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
909 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
910 uint8_t page, line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
911
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
912 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
913 pSettings = settingsGetPointer();
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
914
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
915 menu.pageMemoryForNavigation += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
916
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
917 findValidPosition(&page, &line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
918 menu.pageMemoryForNavigation = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
919 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
920 //menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
921 menu.lineMemoryForNavigationForPage[page] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
922 menu.modeFlipPages = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
923
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
924 set_globalState_Menu_Page(page);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
925
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
926 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
927 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
928
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
929 GFX_SetFrameTop(menu.StartAddressForPage[page]);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
930 /* new test for 3button design */
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
931 //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
932 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
933 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
934 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
935 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
936 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
937 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
938 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 65, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
939 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
940 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
941
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
942 void selectPage(uint32_t selection)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
943 {
650
5f0d3dce5ef4 Automatik setpoint change:
Ideenmodellierer
parents: 647
diff changeset
944 uint8_t page;
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
945 SStateList idList;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
946
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
947 SSettings* pSettings;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
948 pSettings = settingsGetPointer();
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
949
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
950 // menu.pageMemoryForNavigation = selection;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
951
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
952 // findValidPosition(&page, &line);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
953 if(selection > MAXPAGES) /* selection via structure */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
954 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
955 get_idSpecificStateList(selection, &idList);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
956 page = idList.page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
957 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
958 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
959 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
960 page = selection;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
961 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
962
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
963 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
964 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
965 menu.activeShadow = menu.pageMemoryForNavigation;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
966 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
967
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
968 menu.pageMemoryForNavigation = page;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
969 /* new test for 3button design */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
970 //menu.lineMemoryForNavigationForPage[page] = line;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
971 menu.lineMemoryForNavigationForPage[page] = 0;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
972 menu.modeFlipPages = 1;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
973
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
974 set_globalState_Menu_Page(page);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
975
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
976 change_CLUT_entry(CLUT_MenuLineSelectedSides, (CLUT_MenuPageGasOC + page - 1));
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
977 change_CLUT_entry(CLUT_MenuLineSelectedSeperator, (CLUT_MenuPageGasOC + page - 1));
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
978
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
979 GFX_SetFrameTop(menu.StartAddressForPage[page]);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
980 /* new test for 3button design */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
981 //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
982 if(!pSettings->FlipDisplay)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
983 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
984 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
985 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
986 else
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
987 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
988 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 65, 800, 390);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
989 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
990 nextLine();
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
991 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
992
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
993
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
994 static void nextLine(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
995 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
996 uint8_t page, line;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
997 SSettings* pSettings;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
998 pSettings = settingsGetPointer();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
999
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1000 page = menu.pageMemoryForNavigation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1001 menu.lineMemoryForNavigationForPage[page] += 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1002
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1003 findValidPosition(&page, &line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1004 menu.lineMemoryForNavigationForPage[page] = line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1005
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1006 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1007 menu.modeFlipPages = 0;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1008 if(!pSettings->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1009 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1010 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
1011 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1012 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1013 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1014 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
1015 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1016 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1017
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1018
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1019 static void stepBackMenu(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1020 {
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1021 if(menu.activeShadow) /* restore base page */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1022 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1023 selectPage(menu.activeShadow);
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1024 menu.activeShadow = 0;
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1025 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1026 if(menu.modeFlipPages == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1027 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1028 menu.lineMemoryForNavigationForPage[menu.pageMemoryForNavigation] = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1029 menu.modeFlipPages = 1;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1030 if(!settingsGetPointer()->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1031 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1032 GFX_SetFrameBottom(tMdesignSolo.FBStartAdress, 0, 25, 800, 390);
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1033 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1034 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1035 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1036 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
1037 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1038 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1039 else
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1040 {
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1041 exitMenu();
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1042 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1043 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1044
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1045
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1046 void exitMenu(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1047 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1048 set_globalState_tHome();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1049 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1050
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1051
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1052 static void stepForwardMenu(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1053 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1054 if(menu.modeFlipPages == 1)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1055 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1056 nextLine();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1057 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1058 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1059 gotoMenuEdit();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1060 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1061
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1062 static void gotoMenuEdit(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1063 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1064 uint8_t line;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1065
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1066 line = menu.lineMemoryForNavigationForPage[menu.pageMemoryForNavigation];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1067
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1068 switch(get_globalState())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1069 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1070 case StMOG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1071 openEdit_GasOC(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1072 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1073 case StMCG:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1074 openEdit_GasCC(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1075 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1076 case StMSP:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1077 openEdit_Setpoint(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1078 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1079 case StMXTRA:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1080 openEdit_Xtra(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1081 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1082 case StMDECO:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1083 openEdit_Deco(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1084 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1085 case StMDECOP:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1086 openEdit_DecoParameter(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1087 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1088 case StMPLAN:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1089 openEdit_Planner(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1090 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1091 case StMHARD:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1092 openEdit_Hardware(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1093 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1094 case StMSYS:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1095 openEdit_System(line);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1096 break;
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1097 case StMCustom:
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1098 openEdit_Custom(line);
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1099 break;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1100 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1101 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1102 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1103 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1104
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1105
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1106 void sendActionToMenu(uint8_t sendAction)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1107 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1108 switch(sendAction)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1109 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1110 case ACTION_BUTTON_ENTER:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1111 stepForwardMenu();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1112 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1113 case ACTION_BUTTON_NEXT:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1114 if(menu.modeFlipPages)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1115 nextPage();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1116 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1117 nextLine();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1118 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1119 case ACTION_TIMEOUT:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1120 case ACTION_MODE_CHANGE:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1121 case ACTION_BUTTON_BACK:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1122 /* new test for 3button design */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1123 stepBackMenu();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1124 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1125 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1126 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1127 case ACTION_IDLE_TICK:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1128 case ACTION_IDLE_SECOND:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1129 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1130 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1131 /* tMC_OC_Gas(StMOG1, pSettings); */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1132 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1133
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1134 static void tMenu_write(uint8_t page, char *text, char *subtext)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1135 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1136 if(page > MAXPAGES)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1137 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1138 if(menu.linesAvailableForPage[page] == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1139 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1140
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1141 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1142 GFX_write_string(&FontT48, &tMwindow, text,1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1143 if((*subtext) && (menu.linesAvailableForPage[page] < 6))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1144 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1145 GFX_write_string(&FontT42, &tMwindow, subtext, (menu.linesAvailableForPage[page] + 1));
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1146 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1147 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1148
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1149
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1150 /* Private functions ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1151
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1152 static void draw_tMdesignSubUnselected(uint32_t *ppDestination)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1153 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1154 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1155 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1156 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1157 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1158 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1159
130
b7689d9e888a Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents: 122
diff changeset
1160 uint16_t* prunning = (uint16_t*)*ppDestination;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1161
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1162 union al88_u color_seperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1163 union al88_u color_unselected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1164 int i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1165
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1166 color_seperator.al8[0] = CLUT_MenuLineUnselectedSeperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1167 color_unselected.al8[0] = CLUT_MenuLineUnselected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1168
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1169 color_seperator.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1170 color_unselected.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1171
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1172 *(__IO uint16_t*)prunning++ = color_seperator.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1173 *(__IO uint16_t*)prunning++ = color_seperator.al88;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1174
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1175 for(i = 61; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1176 {
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1177 *(__IO uint16_t*)prunning++ = color_unselected.al88;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1178 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1179
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1180 *(__IO uint16_t*)prunning++ = color_seperator.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1181 *(__IO uint16_t*)prunning++ = color_seperator.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1182
130
b7689d9e888a Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents: 122
diff changeset
1183 *ppDestination = (uint32_t)prunning;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1184 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1185
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1186
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1187 static void draw_tMdesignSubSelected(uint32_t *ppDestination)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1188 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1189 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1190 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1191 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1192 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1193 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1194
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1195 union al88_u color_selected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1196 union al88_u color_seperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1197 int i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1198
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1199 color_selected.al8[0] = CLUT_MenuLineSelected;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1200 color_selected.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1201
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1202 color_seperator.al8[0] = CLUT_MenuLineSelectedSeperator;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1203 color_seperator.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1204
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1205 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1206 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1207 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1208 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1209
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1210 for(i = 61; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1211 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1212 *(__IO uint16_t*)*ppDestination = color_selected.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1213 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1214 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1215
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1216 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1217 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1218 *(__IO uint16_t*)*ppDestination = color_seperator.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1219 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1220 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1221
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1222
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1223 static void draw_tMdesignSubSelectedBorder(uint32_t *ppDestination)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1224 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1225 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1226 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1227 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1228 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1229 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1230
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1231 union al88_u color_selected_sides;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1232
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1233 int i;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1234
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1235 color_selected_sides.al8[0] = CLUT_MenuLineSelectedSides;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1236 color_selected_sides.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1237
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1238 for(i = 65; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1239 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1240 *(__IO uint16_t*)*ppDestination = color_selected_sides.al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1241 *ppDestination += 2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1242 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1243 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1244
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1245
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1246 static void draw_tMcursorDesign(void)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1247 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1248 int i,j;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1249 uint32_t pDestination;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1250
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1251 pDestination = tMdesignCursor.FBStartAdress;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1252
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1253 for(j = 801; j > 0; j--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1254 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1255 for(i = 5; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1256 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1257 draw_tMdesignSubUnselected(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1258 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1259 if((j > 787) || (j < 17))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1260 draw_tMdesignSubSelectedBorder(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1261 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1262 draw_tMdesignSubSelected(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1263 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1264
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1265 /* Draw menu background boxes which are visible if nothing is selected */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1266 pDestination = tMdesignSolo.FBStartAdress;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1267
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1268 for(j = 801; j > 0; j--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1269 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1270 for(i = 6; i > 0; i--)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1271 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1272 draw_tMdesignSubUnselected(&pDestination);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1273 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1274 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1275 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1276
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1277
167
5e41365ff0d8 cleanup: local data and functions can be static (tMenu)
Jan Mulder <jlmulder@xs4all.nl>
parents: 130
diff changeset
1278 static void draw_tMheader(uint8_t page)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1279 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1280 union al88_u
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1281 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1282 uint8_t al8[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1283 uint16_t al88;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1284 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1285 union al88_u color_top;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1286 int i,j, k, k4text;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1287 uint32_t pBackup;
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1288 uint16_t* pDestination;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1289 uint8_t colorText;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1290 uint16_t positionText;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1291 uint8_t pageText;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1292
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1293 char text8max[MAXPAGES+1][8] =
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1294 { "",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1295 "OC",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1296 "CC",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1297 "SP",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1298 "DATA",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1299 "DECO",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1300 "",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1301 "SYS",
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1302 "",
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1303 "",
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1304 "SIM"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1305 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1306
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1307 _Bool spacing[MAXPAGES+1] =
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1308 { 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1309 0, // behind OC
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1310 0, // behind CC
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1311 1, // behind SP
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1312 1, // behind DATA
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1313 0, // behind DECO1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1314 1, // behind DECO2
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1315 0, // behind SYS1
507
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1316 0, // behind SYS2
5e3b830b955f Added new menu tab into call structure
Ideenmodellierer
parents: 379
diff changeset
1317 1, // behind SYS3
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1318 1, // behind SIM
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1319 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1320 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1321
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1322 if(actual_menu_content == MENU_SURFACE)
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1323 {
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1324 spacing[3] = 0; /* Display extra menu directly after setpoint */
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1325 sprintf(text8max[4],"OP");
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1326 }
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1327
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1328 pBackup = tMscreen.FBStartAdress;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1329 tMscreen.FBStartAdress = menu.StartAddressForPage[page];
130
b7689d9e888a Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents: 122
diff changeset
1330 pDestination = (uint16_t*) menu.StartAddressForPage[page];
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1331 positionText = 10;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1332 pageText = page;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1333
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1334 gfx_write_page_number(&tMscreen ,menu.pageCountNumber[page],menu.pageCountTotal,0);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1335
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1336 while((text8max[pageText][0] == 0) && (pageText > 1))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1337 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1338 pageText--;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1339 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1340
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1341 for(k = 1; k <= MAXPAGES; k++)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1342 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1343 if(menu.pageCountNumber[k] != 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1344 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1345 k4text = k; // new hw 170522
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1346 if((text8max[k][0] == 0) && (menu.pageCountNumber[k-1] == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1347 k4text = k-1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1348
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1349 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
1350 if (k == page)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1351 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1352 color_top.al8[1] = 0xFF;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1353 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1354 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1355 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1356 color_top.al8[1] = 0x50;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1357 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1358
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1359 if(k4text == pageText)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1360 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1361 colorText = CLUT_Font020;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1362 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1363 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1364 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1365 colorText = CLUT_Font021;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1366 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1367
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1368 write_content_simple(&tMscreen,positionText,775,0,&FontT42,text8max[k4text],colorText);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1369 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1370 write_content_simple(&tMscreen,positionText,775,0,&FontT42,text8max[k],colorText);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1371 if((text8max[k][0] == 0) && (menu.pageCountNumber[k-1] == 0))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1372 write_content_simple(&tMscreen,positionText,775,0,&FontT42,text8max[k-1],colorText);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1373 */
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1374 /* Draw color bars */
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1375 if(!settingsGetPointer()->FlipDisplay)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1376 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1377 pDestination += 5 * 480;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1378
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1379 for(j = 60; j > 0; j--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1380 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1381 pDestination += (390 + 26);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1382
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1383 for(i = 16; i > 0; i--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1384 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1385 *(__IO uint16_t*)pDestination++ = color_top.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1386 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1387 pDestination += 48;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1388 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1389
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1390 pDestination += 5 * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1391 positionText += 70;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1392
647
15f6f0b5786c Integrated selection of bailout in the diluent selection page:
Ideenmodellierer
parents: 521
diff changeset
1393 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
1394 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1395 pDestination += 70 * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1396 positionText += 70;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1397 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1398
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1399 if(spacing[k])
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1400 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1401 pDestination += 35 * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1402 positionText += 35;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1403 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1404 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1405 else
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1406 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1407 pDestination += (800 - 5)* 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1408
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1409 for(j = 60; j > 0; j--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1410 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1411 pDestination -= (390 + 26);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1412
110
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1413 for(i = 16; i > 0; i--)
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1414 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1415 *(__IO uint16_t*)pDestination-- = color_top.al88;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1416 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1417 pDestination -= 48;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1418 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1419
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1420 pDestination -= (800) * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1421 positionText += 70;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1422
658
4df22790dc0c Bugfix handling of new menu tab in flipped mode:
Ideenmodellierer
parents: 650
diff changeset
1423 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
1424 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1425 pDestination -= 70 * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1426 positionText += 70;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1427 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1428
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1429 if(spacing[k])
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1430 {
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1431 pDestination -= 35 * 480;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1432 positionText += 35;
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1433 }
cc8e24374b83 Added option to handled mirrored display to existing functions
Ideenmodellierer
parents: 51
diff changeset
1434 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1435 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1436 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1437 tMscreen.FBStartAdress = pBackup;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1438 }
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
1439
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
1440
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
1441 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
1442 {
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
1443 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
1444 }