Mercurial > public > ostc4
comparison Discovery/Src/tMenuEditSystem.c @ 807:9e2ebfc72e8c
Zusammenf?hren
author | heinrichsweikamp |
---|---|
date | Sat, 26 Aug 2023 13:37:06 +0200 |
parents | dd7ce655db26 |
children | e04d7dd199fb |
comparison
equal
deleted
inserted
replaced
806:ee3c0029ed34 | 807:9e2ebfc72e8c |
---|---|
99 uint8_t OnAction_TestCLog (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | 99 uint8_t OnAction_TestCLog (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
100 */ | 100 */ |
101 | 101 |
102 /* Exported functions --------------------------------------------------------*/ | 102 /* Exported functions --------------------------------------------------------*/ |
103 | 103 |
104 static uint8_t OnAction_Timer(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
105 { | |
106 SSettings *settings = settingsGetPointer(); | |
107 uint8_t digitContentNew; | |
108 switch (action) { | |
109 case ACTION_BUTTON_ENTER: | |
110 | |
111 return digitContent; | |
112 case ACTION_BUTTON_ENTER_FINAL: | |
113 { | |
114 uint32_t timerM; | |
115 uint32_t timerS; | |
116 evaluateNewString(editId, &timerM, &timerS, 0, 0); | |
117 if (timerM > 9) { | |
118 timerM = 9; | |
119 } | |
120 if (timerS > 59) { | |
121 timerS = 59; | |
122 } | |
123 | |
124 uint16_t timerDurationS = 60 * timerM + timerS; | |
125 | |
126 if (timerDurationS < 1) { | |
127 timerDurationS = 1; | |
128 } | |
129 | |
130 if (timerDurationS != settings->timerDurationS) { | |
131 settings->timerDurationS = timerDurationS; | |
132 | |
133 disableTimer(); | |
134 | |
135 tMenuEdit_newInput(editId, settings->timerDurationS / 60, settings->timerDurationS % 60, 0, 0); | |
136 } | |
137 | |
138 return EXIT_TO_MENU; | |
139 } | |
140 case ACTION_BUTTON_NEXT: | |
141 digitContentNew = digitContent + 1; | |
142 if ((blockNumber == 1 && digitNumber == 0 && digitContentNew > '5') || digitContentNew > '9') { | |
143 digitContentNew = '0'; | |
144 } | |
145 | |
146 return digitContentNew; | |
147 case ACTION_BUTTON_BACK: | |
148 digitContentNew = digitContent - 1; | |
149 if (digitContentNew < '0') { | |
150 if (blockNumber == 1 && digitNumber == 0) { | |
151 digitContentNew = '5'; | |
152 } else { | |
153 digitContentNew = '9'; | |
154 } | |
155 } | |
156 | |
157 return digitContentNew; | |
158 } | |
159 | |
160 return EXIT_TO_MENU; | |
161 } | |
162 | |
163 | |
164 static void openEdit_Timer(void) | |
165 { | |
166 SSettings *settings = settingsGetPointer(); | |
167 | |
168 char text[32]; | |
169 snprintf(text, 32, "\001%c%c", TXT_2BYTE, TXT2BYTE_Timer); | |
170 write_topline(text); | |
171 | |
172 uint16_t yPos = ME_Y_LINE_BASE + get_globalState_Menu_Line() * ME_Y_LINE_STEP; | |
173 snprintf(text, 32, "%c%c", TXT_2BYTE, TXT2BYTE_Timer); | |
174 write_label_var(30, 299, yPos, &FontT48, text); | |
175 write_field_udigit(StMSYS_Timer, 300, 392, yPos, &FontT48, "#:##", settings->timerDurationS / 60, settings->timerDurationS % 60, 0, 0); | |
176 write_label_var(393, 800, yPos, &FontT48, "\016\016 [m:ss]\017"); | |
177 | |
178 write_buttonTextline(TXT2BYTE_ButtonMinus, TXT2BYTE_ButtonEnter, TXT2BYTE_ButtonPlus); | |
179 | |
180 setEvent(StMSYS_Timer, (uint32_t)OnAction_Timer); | |
181 startEdit(); | |
182 } | |
183 | |
184 | |
104 void openEdit_System(uint8_t line) | 185 void openEdit_System(uint8_t line) |
105 { | 186 { |
106 set_globalState_Menu_Line(line); | 187 set_globalState_Menu_Line(line); |
107 resetMenuEdit(CLUT_MenuPageSystem); | 188 resetMenuEdit(CLUT_MenuPageSystem); |
108 | 189 |
113 case 1: | 194 case 1: |
114 default: | 195 default: |
115 openEdit_DateTime(); | 196 openEdit_DateTime(); |
116 break; | 197 break; |
117 case 2: | 198 case 2: |
199 openEdit_Timer(); | |
200 break; | |
201 case 3: | |
118 openEdit_Language(); | 202 openEdit_Language(); |
119 break; | 203 break; |
120 case 3: | 204 case 4: |
121 openEdit_Design(); | 205 openEdit_Design(); |
122 break; | 206 break; |
123 case 4: | 207 case 5: |
124 openEdit_Information(); | 208 openEdit_Information(); |
125 break; | 209 break; |
126 case 5: | 210 case 6: |
127 openEdit_Reset(); | 211 openEdit_Reset(); |
128 break; | 212 break; |
129 /* | 213 /* |
130 case 3: | 214 case 3: |
131 openEdit_DecoFutureTTS(); | 215 openEdit_DecoFutureTTS(); |