Skip to content

Commit 62a935b

Browse files
philmozphilmoz
and
philmoz
authored
chore(bw): cleanup and consolidate navigation code (#5896)
Co-authored-by: philmoz <phil.a.mitchell@gmail.com>
1 parent 6973f07 commit 62a935b

19 files changed

+132
-208
lines changed

radio/src/edgetx.h

-14
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,6 @@ enum RotaryEncoderMode {
103103
#include "myeeprom.h"
104104
#include "curves.h"
105105

106-
// Define navigation type based on available keys
107-
#if LCD_W == 212
108-
#define NAVIGATION_X9D
109-
#elif defined(KEYS_GPIO_REG_SHIFT)
110-
#define NAVIGATION_XLITE
111-
#elif defined(KEYS_GPIO_REG_LEFT)
112-
#define NAVIGATION_9X
113-
#elif defined(KEYS_GPIO_REG_PAGEUP) && defined(KEYS_GPIO_REG_TELE)
114-
#define NAVIGATION_X7
115-
#define NAVIGATION_X7_TX12
116-
#else
117-
#define NAVIGATION_X7
118-
#endif
119-
120106
void memswap(void * a, void * b, uint8_t size);
121107

122108
// TODO: move these config check macros somewhere else

radio/src/gui/128x64/gui.h

-8
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@
3030

3131
#define MENUS_SCROLLBAR_WIDTH 0
3232

33-
#if defined(NAVIGATION_X7)
34-
#define HEADER_LINE 0
35-
#define HEADER_LINE_COLUMNS
36-
#else
37-
#define HEADER_LINE 1
38-
#define HEADER_LINE_COLUMNS 0,
39-
#endif
40-
4133
#define NUM_BODY_LINES (LCD_LINES-1)
4234
#define TEXT_VIEWER_LINES NUM_BODY_LINES
4335
#define MENU_HEADER_HEIGHT FH

radio/src/gui/128x64/model_curve_edit.cpp

+6-20
Original file line numberDiff line numberDiff line change
@@ -147,26 +147,12 @@ void menuModelCurveOne(event_t event)
147147
drawCheckBox(7 * FW, 7 * FH + 1, crv.smooth, menuVerticalPosition == 3 ? INVERS : 0);
148148
if (menuVerticalPosition==3) crv.smooth = checkIncDecModel(event, crv.smooth, 0, 1);
149149

150-
switch (event) {
151-
case EVT_ENTRY:
152-
break;
153-
154-
case EVT_KEY_LONG(KEY_ENTER):
155-
if (menuVerticalPosition > 1) {
156-
POPUP_MENU_START(onCurveOneMenu, 3, STR_CURVE_PRESET, STR_MIRROR, STR_CLEAR);
157-
}
158-
break;
159-
160-
#if defined(NAVIGATION_XLITE)
161-
case EVT_KEY_FIRST(KEY_ENTER):
162-
if (!keysGetState(KEY_SHIFT))
163-
break;
164-
#else
165-
case EVT_KEY_BREAK(KEY_MODEL):
166-
case EVT_KEY_BREAK(KEY_MENU):
167-
#endif
168-
pushMenu(menuChannelsView);
169-
break;
150+
if (event == EVT_KEY_LONG(KEY_ENTER)) {
151+
if (menuVerticalPosition > 1) {
152+
POPUP_MENU_START(onCurveOneMenu, 3, STR_CURVE_PRESET, STR_MIRROR, STR_CLEAR);
153+
}
154+
} else if (EVT_KEY_OPEN_CHAN_VIEW(event)) {
155+
pushMenu(menuChannelsView);
170156
}
171157

172158
drawCurve();

radio/src/gui/128x64/model_input_edit.cpp

+2-7
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,10 @@ uint8_t FM_ROW(uint8_t value)
5757

5858
void menuModelExpoOne(event_t event)
5959
{
60-
#if defined(NAVIGATION_XLITE)
61-
if (event == EVT_KEY_FIRST(KEY_ENTER) && keysGetState(KEY_SHIFT)) {
60+
if (EVT_KEY_OPEN_CHAN_VIEW(event)) {
6261
pushMenu(menuChannelsView);
6362
}
64-
#else
65-
if (event == EVT_KEY_BREAK(KEY_MODEL) || event == EVT_KEY_BREAK(KEY_MENU)) {
66-
pushMenu(menuChannelsView);
67-
}
68-
#endif
63+
6964
ExpoData * ed = expoAddress(s_currIdx);
7065
drawSource(PSIZE(TR_MENUINPUTS)*FW+FW, 0, MIXSRC_FIRST_INPUT+ed->chn, 0);
7166

radio/src/gui/128x64/model_mix_edit.cpp

+2-7
Original file line numberDiff line numberDiff line change
@@ -93,15 +93,10 @@ void drawOffsetBar(uint8_t x, uint8_t y, MixData * md)
9393

9494
void menuModelMixOne(event_t event)
9595
{
96-
#if defined(NAVIGATION_XLITE)
97-
if (event == EVT_KEY_FIRST(KEY_ENTER) && keysGetState(KEY_SHIFT)) {
96+
if (EVT_KEY_OPEN_CHAN_VIEW(event)) {
9897
pushMenu(menuChannelsView);
9998
}
100-
#else
101-
if (event == EVT_KEY_BREAK(KEY_MODEL) || event == EVT_KEY_BREAK(KEY_MENU)) {
102-
pushMenu(menuChannelsView);
103-
}
104-
#endif
99+
105100
MixData * md2 = mixAddress(s_currIdx) ;
106101
putsChn(PSIZE(TR_MIXES)*FW+FW, 0, md2->destCh+1,0);
107102

radio/src/gui/128x64/view_channels.cpp

-27
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,6 @@ constexpr coord_t CHANNEL_NAME_OFFSET = 0;
2525
constexpr coord_t CHANNEL_VALUE_OFFSET = CHANNEL_NAME_OFFSET + 41;
2626
constexpr coord_t CHANNEL_BAR_WIDTH = 70;
2727

28-
#if defined(RADIO_T8) || defined(RADIO_COMMANDO8)
29-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
30-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
31-
#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_PLUS)
32-
#define EVT_KEY_PREVIOUS_PAGE EVT_KEY_BREAK(KEY_MINUS)
33-
#elif defined(NAVIGATION_X7_TX12)
34-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
35-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
36-
#define EVT_KEY_NEXT_PAGE EVT_ROTARY_RIGHT
37-
#define EVT_KEY_PREVIOUS_PAGE EVT_ROTARY_LEFT
38-
#elif defined(NAVIGATION_X7)
39-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
40-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
41-
#define EVT_KEY_NEXT_PAGE EVT_ROTARY_RIGHT
42-
#define EVT_KEY_PREVIOUS_PAGE EVT_ROTARY_LEFT
43-
#elif defined(NAVIGATION_XLITE)
44-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_UP)
45-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_DOWN)
46-
#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_RIGHT)
47-
#define EVT_KEY_PREVIOUS_PAGE EVT_KEY_BREAK(KEY_LEFT)
48-
#else
49-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_UP)
50-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_DOWN)
51-
#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_RIGHT)
52-
#define EVT_KEY_PREVIOUS_PAGE EVT_KEY_BREAK(KEY_LEFT)
53-
#endif
54-
5528
static bool mixersView = false;
5629

5730
void menuChannelsViewCommon(event_t event)

radio/src/gui/128x64/view_main.cpp

-47
Original file line numberDiff line numberDiff line change
@@ -301,42 +301,6 @@ void displayBattVoltage()
301301

302302
#define displayVoltageOrAlarm() displayBattVoltage()
303303

304-
#define EVT_KEY_CONTEXT_MENU EVT_KEY_LONG(KEY_ENTER)
305-
306-
#if defined(RADIO_T8) || defined(RADIO_COMMANDO8)
307-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
308-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
309-
#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_PLUS)
310-
#define EVT_KEY_PREVIOUS_PAGE EVT_KEY_BREAK(KEY_MINUS)
311-
#define EVT_KEY_MODEL_MENU EVT_KEY_BREAK(KEY_MODEL)
312-
#define EVT_KEY_GENERAL_MENU EVT_KEY_BREAK(KEY_SYS)
313-
#define EVT_KEY_TELEMETRY EVT_KEY_LONG(KEY_PAGEUP)
314-
#elif defined(NAVIGATION_X7_TX12)
315-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_PAGEUP)
316-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
317-
#define EVT_KEY_NEXT_PAGE EVT_ROTARY_RIGHT
318-
#define EVT_KEY_PREVIOUS_PAGE EVT_ROTARY_LEFT
319-
#define EVT_KEY_MODEL_MENU EVT_KEY_BREAK(KEY_MODEL)
320-
#define EVT_KEY_GENERAL_MENU EVT_KEY_BREAK(KEY_SYS)
321-
#define EVT_KEY_TELEMETRY EVT_KEY_BREAK(KEY_TELE)
322-
#elif defined(NAVIGATION_X7) || defined(NAVIGATION_TBS)
323-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGEDN)
324-
#define EVT_KEY_NEXT_PAGE EVT_ROTARY_RIGHT
325-
#define EVT_KEY_PREVIOUS_PAGE EVT_ROTARY_LEFT
326-
#define EVT_KEY_MODEL_MENU EVT_KEY_BREAK(KEY_MENU)
327-
#define EVT_KEY_GENERAL_MENU EVT_KEY_LONG(KEY_MENU)
328-
#define EVT_KEY_TELEMETRY EVT_KEY_BREAK(KEY_PAGEUP)
329-
#else
330-
#define EVT_KEY_PREVIOUS_VIEW EVT_KEY_BREAK(KEY_UP)
331-
#define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_DOWN)
332-
#define EVT_KEY_NEXT_PAGE EVT_KEY_BREAK(KEY_RIGHT)
333-
#define EVT_KEY_PREVIOUS_PAGE EVT_KEY_BREAK(KEY_LEFT)
334-
#define EVT_KEY_MODEL_MENU EVT_KEY_LONG(KEY_RIGHT)
335-
#define EVT_KEY_GENERAL_MENU EVT_KEY_LONG(KEY_LEFT)
336-
#define EVT_KEY_TELEMETRY EVT_KEY_LONG(KEY_DOWN)
337-
#define EVT_KEY_STATISTICS EVT_KEY_LONG(KEY_UP)
338-
#endif
339-
340304
void onMainViewMenu(const char * result)
341305
{
342306
if (result == STR_RESET_TIMER1) {
@@ -668,14 +632,3 @@ void menuMainView(event_t event)
668632
#endif
669633
#endif
670634
}
671-
672-
#undef EVT_KEY_CONTEXT_MENU
673-
#undef EVT_KEY_PREVIOUS_VIEW
674-
#undef EVT_KEY_NEXT_VIEW
675-
#undef EVT_KEY_NEXT_PAGE
676-
#undef EVT_KEY_PREVIOUS_PAGE
677-
#undef EVT_KEY_MODEL_MENU
678-
#undef EVT_KEY_GENERAL_MENU
679-
#undef EVT_KEY_LAST_MENU
680-
#undef EVT_KEY_TELEMETRY
681-
#undef EVT_KEY_STATISTICS

radio/src/gui/212x64/gui.h

-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@
2929
#include "navigation/navigation.h"
3030
#include "common/stdlcd/draw_functions.h"
3131

32-
#define HEADER_LINE 0
33-
#define HEADER_LINE_COLUMNS
34-
3532
#define NUM_BODY_LINES (LCD_LINES-1)
3633
#define TEXT_VIEWER_LINES NUM_BODY_LINES
3734
#define MENU_HEADER_HEIGHT FH

radio/src/gui/212x64/view_main.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -471,22 +471,22 @@ void menuMainView(event_t event)
471471
LOAD_MODEL_BITMAP();
472472
break;
473473

474-
case EVT_KEY_LONG(KEY_ENTER):
474+
case EVT_KEY_CONTEXT_MENU:
475475
if (modelHasNotes()) {
476476
POPUP_MENU_ADD_ITEM(STR_VIEW_NOTES);
477477
}
478478
POPUP_MENU_START(onMainViewMenu, 3, STR_RESET_SUBMENU, STR_STATISTICS, STR_ABOUT_US);
479479
break;
480480

481-
case EVT_KEY_BREAK(KEY_MENU):
481+
case EVT_KEY_MODEL_MENU:
482482
pushMenu(menuModelSelect);
483483
break;
484484

485-
case EVT_KEY_LONG(KEY_MENU):
485+
case EVT_KEY_GENERAL_MENU:
486486
pushMenu(menuTabGeneral[0].menuFunc);
487487
break;
488488

489-
case EVT_KEY_BREAK(KEY_PAGEDN):
489+
case EVT_KEY_NEXT_VIEW:
490490
storageDirty(EE_MODEL);
491491
g_model.view += 1;
492492
if (g_model.view >= VIEW_COUNT) {
@@ -495,7 +495,7 @@ void menuMainView(event_t event)
495495
}
496496
break;
497497

498-
case EVT_KEY_BREAK(KEY_PAGEUP):
498+
case EVT_KEY_TELEMETRY:
499499
chainMenu(menuViewTelemetry);
500500
break;
501501

radio/src/gui/common/stdlcd/draw_functions.cpp

+6-18
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ void editName(coord_t x, coord_t y, char* name, uint8_t size, event_t event,
211211
s_editMode = 0;
212212
break;
213213

214-
#if defined(NAVIGATION_XLITE) || defined(NAVIGATION_9X)
214+
#if defined(HAS_LEFT_RIGHT_NAV_KEYS)
215215
case EVT_KEY_BREAK(KEY_LEFT):
216216
if (cur > 0)
217217
cur--;
@@ -223,33 +223,21 @@ void editName(coord_t x, coord_t y, char* name, uint8_t size, event_t event,
223223
break;
224224
#endif
225225

226-
#if defined(NAVIGATION_XLITE)
227226
case EVT_KEY_BREAK(KEY_SHIFT):
228-
#elif defined(NAVIGATION_9X)
229227
case EVT_KEY_LONG(KEY_LEFT):
230228
case EVT_KEY_LONG(KEY_RIGHT):
231-
#else
232229
case EVT_KEY_LONG(KEY_ENTER):
233-
#endif
234230
killEvents(event);
235231

236-
#if !defined(NAVIGATION_XLITE)
237-
if (v == ' ') {
232+
if ((event != EVT_KEY_BREAK(KEY_SHIFT)) && v == ' ') {
238233
s_editMode = 0;
239234
break;
240-
}
241-
else
242-
#endif
243-
if (v >= 'A' && v <= 'Z') {
244-
v = 'a' + v - 'A'; // toggle case
245-
}
246-
else if (v >= 'a' && v <= 'z') {
247-
v = 'A' + v - 'a'; // toggle case
235+
} else if (isupper(v)) {
236+
v = tolower(v); // toggle case
237+
} else if (islower(v)) {
238+
v = toupper(v); // toggle case
248239
}
249240

250-
#if defined(NAVIGATION_9X)
251-
if (event==EVT_KEY_LONG(KEY_LEFT))
252-
#endif
253241
break;
254242
}
255243

radio/src/gui/common/stdlcd/model_usbjoystick.cpp

+2-7
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,10 @@ enum USBJFields {
5050

5151
void menuModelUSBJoystickOne(event_t event)
5252
{
53-
#if defined(NAVIGATION_XLITE)
54-
if (event == EVT_KEY_FIRST(KEY_ENTER) && keysGetState(KEY_SHIFT)) {
53+
if (EVT_KEY_OPEN_CHAN_VIEW(event)) {
5554
pushMenu(menuChannelsView);
5655
}
57-
#else
58-
if (event == EVT_KEY_BREAK(KEY_MODEL) || event == EVT_KEY_BREAK(KEY_MENU)) {
59-
pushMenu(menuChannelsView);
60-
}
61-
#endif
56+
6257
USBJoystickChData * cch = usbJChAddress(s_currIdx);
6358
putsChn(12*FW, 0, s_currIdx+1, 0);
6459
lcdDrawNumber(20*FW, 0, channelOutputs[s_currIdx], RIGHT);

radio/src/gui/common/stdlcd/radio_sdmanager.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -273,13 +273,13 @@ void onUpdateReceiverSelection(const char * result)
273273

274274
void menuRadioSdManager(event_t _event)
275275
{
276-
#if defined(NAVIGATION_X9D)
276+
#if LCD_DEPTH > 1
277277
int lastPos = menuVerticalPosition;
278278
#endif
279279

280280
if (_event == EVT_ENTRY) {
281281
f_chdir(ROOT_PATH);
282-
#if defined(NAVIGATION_X9D)
282+
#if LCD_DEPTH > 1
283283
lastPos = -1;
284284
#endif
285285
}

radio/src/gui/common/stdlcd/view_telemetry.cpp

+2-22
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,6 @@ enum NavigationDirection {
3232
#define decrTelemetryScreen() direction = NAVIGATION_DIRECTION_UP
3333
#define incrTelemetryScreen() direction = NAVIGATION_DIRECTION_DOWN
3434

35-
#if defined(NAVIGATION_XLITE)
36-
#define EVT_KEY_PREVIOUS_VIEW(evt) (evt == EVT_KEY_LONG(KEY_LEFT) && keysGetState(KEY_SHIFT))
37-
#define EVT_KEY_NEXT_VIEW(evt) (evt == EVT_KEY_LONG(KEY_RIGHT) && keysGetState(KEY_SHIFT))
38-
#elif defined(KEYS_GPIO_REG_PAGEDN)
39-
#define EVT_KEY_PREVIOUS_VIEW(evt) (evt == EVT_KEY_FIRST(KEY_PAGEUP))
40-
#define EVT_KEY_NEXT_VIEW(evt) (evt == EVT_KEY_FIRST(KEY_PAGEDN))
41-
#elif defined(NAVIGATION_X7) || defined(NAVIGATION_X9D)
42-
#define EVT_KEY_PREVIOUS_VIEW(evt) (evt == EVT_KEY_BREAK(KEY_PAGEUP))
43-
#define EVT_KEY_NEXT_VIEW(evt) (evt == EVT_KEY_BREAK(KEY_PAGEDN))
44-
#elif defined(NAVIGATION_9X)
45-
#define EVT_KEY_PREVIOUS_VIEW(evt) (evt == EVT_KEY_LONG(KEY_UP))
46-
#define EVT_KEY_NEXT_VIEW(evt) (evt == EVT_KEY_LONG(KEY_DOWN))
47-
#else
48-
#define EVT_KEY_PREVIOUS_VIEW(evt) (evt == EVT_KEY_FIRST(KEY_UP))
49-
#define EVT_KEY_NEXT_VIEW(evt) (evt == EVT_KEY_FIRST(KEY_DOWN))
50-
#endif
51-
5235
void menuViewTelemetry(event_t event)
5336
{
5437
enum NavigationDirection direction = NAVIGATION_DIRECTION_NONE;
@@ -61,11 +44,11 @@ void menuViewTelemetry(event_t event)
6144
chainMenu(menuMainView);
6245
}
6346
#endif
64-
else if (EVT_KEY_PREVIOUS_VIEW(event)) {
47+
else if (EVT_KEY_PREVIOUS_TELEM_VIEW(event)) {
6548
killEvents(event);
6649
decrTelemetryScreen();
6750
}
68-
else if (EVT_KEY_NEXT_VIEW(event)) {
51+
else if (EVT_KEY_NEXT_TELEM_VIEW(event)) {
6952
killEvents(event);
7053
incrTelemetryScreen();
7154
}
@@ -109,6 +92,3 @@ void showTelemScreen(uint8_t index)
10992
}
11093
}
11194
}
112-
113-
#undef EVT_KEY_PREVIOUS_VIEW
114-
#undef EVT_KEY_NEXT_VIEW

radio/src/gui/gui_common.cpp

-15
Original file line numberDiff line numberDiff line change
@@ -1359,21 +1359,6 @@ void setPotType(int index, int value)
13591359
g_eeGeneral.potsConfig = bfSet<potconfig_t>(g_eeGeneral.potsConfig, value, (POT_CFG_BITS * index), POT_CFG_TYPE_BITS);
13601360
}
13611361

1362-
#if defined(NAVIGATION_X7) || defined(NAVIGATION_X9D)
1363-
uint8_t MENU_FIRST_LINE_EDIT(const uint8_t * horTab, uint8_t horTabMax)
1364-
{
1365-
if (horTab) {
1366-
uint8_t result = 0;
1367-
while (result < horTabMax && horTab[result] >= HIDDEN_ROW)
1368-
++result;
1369-
return result;
1370-
}
1371-
else {
1372-
return 0;
1373-
}
1374-
}
1375-
#endif
1376-
13771362
uint8_t MODULE_BIND_ROWS(int moduleIdx)
13781363
{
13791364
if (isModuleELRS(moduleIdx) && CRSF_ELRS_MIN_VER(moduleIdx, 3, 4))

0 commit comments

Comments
 (0)