From af9fe7fb63c7fb59a307f96a36b89ce4f7f4687f Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 4 Jun 2019 08:49:39 +0200 Subject: [PATCH] T12 to use 9x navigation + navigation refactoring (#6474) * Move T12 to more suited 9x navigation * Navigation refactoring * Navigation refactoring continued * Channels count in ACCESS mode fix (24 channels max) --- radio/src/gui/128x64/view_telemetry.cpp | 2 +- radio/src/gui/common/stdlcd/widgets.cpp | 14 ++-- radio/src/gui/gui_common.cpp | 7 +- radio/src/gui/navigation/common.cpp | 71 +++++++++++++++++++ radio/src/gui/navigation/navigation_9x.cpp | 21 +----- radio/src/gui/navigation/navigation_horus.cpp | 64 ++--------------- radio/src/gui/navigation/navigation_x7.cpp | 63 +--------------- radio/src/gui/navigation/navigation_x9d.cpp | 64 ++--------------- radio/src/gui/navigation/navigation_xlite.cpp | 59 +-------------- radio/src/targets/taranis/CMakeLists.txt | 2 +- radio/src/targets/taranis/board.h | 4 ++ 11 files changed, 101 insertions(+), 270 deletions(-) diff --git a/radio/src/gui/128x64/view_telemetry.cpp b/radio/src/gui/128x64/view_telemetry.cpp index 3f5c51067..6671cbe81 100644 --- a/radio/src/gui/128x64/view_telemetry.cpp +++ b/radio/src/gui/128x64/view_telemetry.cpp @@ -219,7 +219,7 @@ enum NavigationDirection { #if defined(NAVIGATION_XLITE) #define EVT_KEY_PREVIOUS_VIEW EVT_KEY_LONG(KEY_LEFT) #define EVT_KEY_NEXT_VIEW EVT_KEY_LONG(KEY_RIGHT) -#elif defined(PCBX7) +#elif defined(RADIO_X7) #define EVT_KEY_PREVIOUS_VIEW EVT_KEY_LONG(KEY_PAGE) #define EVT_KEY_NEXT_VIEW EVT_KEY_BREAK(KEY_PAGE) #else diff --git a/radio/src/gui/common/stdlcd/widgets.cpp b/radio/src/gui/common/stdlcd/widgets.cpp index 1f8178e07..b87a1a995 100644 --- a/radio/src/gui/common/stdlcd/widgets.cpp +++ b/radio/src/gui/common/stdlcd/widgets.cpp @@ -102,7 +102,7 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui s_editMode = 0; break; -#if defined(PCBXLITE) || !defined(PCBTARANIS) +#if defined(NAVIGATION_XLITE) || defined(NAVIGATION_9X) case EVT_KEY_BREAK(KEY_LEFT): if (cur>0) cur--; break; @@ -112,13 +112,13 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui break; #endif -#if defined(PCBXLITE) +#if defined(NAVIGATION_XLITE) case EVT_KEY_BREAK(KEY_SHIFT): -#elif defined(PCBTARANIS) - case EVT_KEY_LONG(KEY_ENTER): -#else +#elif defined(NAVIGATION_9X) case EVT_KEY_LONG(KEY_LEFT): case EVT_KEY_LONG(KEY_RIGHT): +#else + case EVT_KEY_LONG(KEY_ENTER): #endif if (attr & ZCHAR) { @@ -133,7 +133,7 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui } } else { -#if !defined(PCBXLITE) +#if !defined(NAVIGATION_XLITE) if (v == ' ') { s_editMode = 0; killEvents(event); @@ -148,7 +148,7 @@ void editName(coord_t x, coord_t y, char * name, uint8_t size, event_t event, ui v = 'A' + v - 'a'; // toggle case } } -#if !defined(PCBTARANIS) +#if defined(NAVIGATION_9X) if (event==EVT_KEY_LONG(KEY_LEFT)) killEvents(KEY_LEFT); #endif diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 2bf2c135c..e36c706d5 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -535,10 +535,9 @@ bool isR9MModeAvailable(int mode) #if defined(PXX2) bool isPxx2IsrmChannelsCountAllowed(int channels) { - if (g_model.moduleData[INTERNAL_MODULE].rfProtocol == MODULE_SUBTYPE_PXX1_ACCST_D16) - return (channels <= 8); - else - return (channels % 8 == 0); + if (g_model.moduleData[INTERNAL_MODULE].subType == MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16 && channels > 8) + return false; + return (channels % 8 == 0); } #else bool isPxx2IsrmChannelsCountAllowed(int channels) diff --git a/radio/src/gui/navigation/common.cpp b/radio/src/gui/navigation/common.cpp index 1ed99264f..ceea990d6 100644 --- a/radio/src/gui/navigation/common.cpp +++ b/radio/src/gui/navigation/common.cpp @@ -49,3 +49,74 @@ swsrc_t checkIncDecMovedSwitch(swsrc_t val) return val; } #endif + +int checkIncDecSelection = 0; + +void repeatLastCursorMove(event_t event) +{ + if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { + putEvent(event); + } + else { + menuHorizontalPosition = 0; + } +} + +void onSourceLongEnterPress(const char * result) +{ + if (result == STR_MENU_INPUTS) + checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1; +#if defined(LUA_MODEL_SCRIPTS) + else if (result == STR_MENU_LUA) + checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable); +#endif + else if (result == STR_MENU_STICKS) + checkIncDecSelection = MIXSRC_FIRST_STICK; + else if (result == STR_MENU_POTS) + checkIncDecSelection = MIXSRC_FIRST_POT; + else if (result == STR_MENU_MAX) + checkIncDecSelection = MIXSRC_MAX; + else if (result == STR_MENU_HELI) + checkIncDecSelection = MIXSRC_FIRST_HELI; + else if (result == STR_MENU_TRIMS) + checkIncDecSelection = MIXSRC_FIRST_TRIM; + else if (result == STR_MENU_SWITCHES) + checkIncDecSelection = MIXSRC_FIRST_SWITCH; + else if (result == STR_MENU_TRAINER) + checkIncDecSelection = MIXSRC_FIRST_TRAINER; + else if (result == STR_MENU_CHANNELS) + checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable); + else if (result == STR_MENU_GVARS) + checkIncDecSelection = MIXSRC_FIRST_GVAR; + else if (result == STR_MENU_TELEMETRY) { + for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) { + TelemetrySensor * sensor = & g_model.telemetrySensors[i]; + if (sensor->isAvailable()) { + checkIncDecSelection = MIXSRC_FIRST_TELEM + 3*i; + break; + } + } + } +} + +#if defined(NAVIGATION_HORUS) +bool check_simple(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t menuTabSize, int rowcount) +{ + return check(event, curr, menuTab, menuTabSize, NULL, 0, rowcount); +} + +bool check_submenu_simple(event_t event, uint8_t rowcount) +{ + return check_simple(event, 0, NULL, 0, rowcount); +} +#else +void check_submenu_simple(event_t event, uint8_t rowcount) +{ + check_simple(event, 0, nullptr, 0, rowcount); +} + +void check_simple(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t menuTabSize, vertpos_t rowcount) +{ + check(event, curr, menuTab, menuTabSize, 0, 0, rowcount); +} +#endif \ No newline at end of file diff --git a/radio/src/gui/navigation/navigation_9x.cpp b/radio/src/gui/navigation/navigation_9x.cpp index f4336e194..9e2eb5f6b 100644 --- a/radio/src/gui/navigation/navigation_9x.cpp +++ b/radio/src/gui/navigation/navigation_9x.cpp @@ -38,6 +38,8 @@ INIT_STOPS(stops100, 3, -100, 0, 100) INIT_STOPS(stops1000, 3, -1000, 0, 1000) INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST) +extern int checkIncDecSelection; + int checkIncDec(event_t event, int val, int i_min, int i_max, unsigned int i_flags, IsValueAvailable isValueAvailable, const CheckIncDecStops &stops) { int newval = val; @@ -465,22 +467,3 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t } } -void check_simple(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t menuTabSize, vertpos_t maxrow) -{ - check(event, curr, menuTab, menuTabSize, 0, 0, maxrow); -} - -void check_submenu_simple(event_t event, uint8_t maxrow) -{ - check_simple(event, 0, 0, 0, maxrow); -} - -void repeatLastCursorMove(event_t event) -{ - if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { - putEvent(event); - } - else { - menuHorizontalPosition = 0; - } -} diff --git a/radio/src/gui/navigation/navigation_horus.cpp b/radio/src/gui/navigation/navigation_horus.cpp index 774faea69..494f1ee49 100644 --- a/radio/src/gui/navigation/navigation_horus.cpp +++ b/radio/src/gui/navigation/navigation_horus.cpp @@ -26,50 +26,14 @@ int menuHorizontalPosition; int8_t s_editMode; uint8_t noHighlightCounter; uint8_t menuCalibrationState; // TODO rename this variable -int checkIncDecSelection = 0; + int8_t checkIncDec_Ret; +extern int checkIncDecSelection; INIT_STOPS(stops100, 3, -100, 0, 100) INIT_STOPS(stops1000, 3, -1000, 0, 1000) INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST) -void onSourceLongEnterPress(const char * result) -{ - if (result == STR_MENU_INPUTS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1; -#if defined(LUA_MODEL_SCRIPTS) - else if (result == STR_MENU_LUA) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable); -#endif - else if (result == STR_MENU_STICKS) - checkIncDecSelection = MIXSRC_FIRST_STICK; - else if (result == STR_MENU_POTS) - checkIncDecSelection = MIXSRC_FIRST_POT; - else if (result == STR_MENU_MAX) - checkIncDecSelection = MIXSRC_MAX; - else if (result == STR_MENU_HELI) - checkIncDecSelection = MIXSRC_FIRST_HELI; - else if (result == STR_MENU_TRIMS) - checkIncDecSelection = MIXSRC_FIRST_TRIM; - else if (result == STR_MENU_SWITCHES) - checkIncDecSelection = MIXSRC_FIRST_SWITCH; - else if (result == STR_MENU_TRAINER) - checkIncDecSelection = MIXSRC_FIRST_TRAINER; - else if (result == STR_MENU_CHANNELS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable); - else if (result == STR_MENU_GVARS) - checkIncDecSelection = MIXSRC_FIRST_GVAR; - else if (result == STR_MENU_TELEMETRY) { - for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) { - TelemetrySensor * sensor = & g_model.telemetrySensors[i]; - if (sensor->isAvailable()) { - checkIncDecSelection = MIXSRC_FIRST_TELEM + 3*i; - break; - } - } - } -} - void onSwitchLongEnterPress(const char *result) { if (result == STR_MENU_SWITCHES) @@ -359,7 +323,7 @@ bool check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t #endif if (s_editMode>0) break; - + if (++cc == menuTabSize) cc = 0; break; @@ -370,7 +334,7 @@ bool check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t #endif if (s_editMode>0) break; - + if (cc-- == 0) cc = menuTabSize-1; killEvents(event); @@ -558,23 +522,3 @@ bool check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t return true; } - -bool check_simple(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t menuTabSize, int rowcount) -{ - return check(event, curr, menuTab, menuTabSize, NULL, 0, rowcount); -} - -bool check_submenu_simple(event_t event, uint8_t rowcount) -{ - return check_simple(event, 0, NULL, 0, rowcount); -} - -void repeatLastCursorMove(event_t event) -{ - if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { - putEvent(event); - } - else { - menuHorizontalPosition = 0; - } -} diff --git a/radio/src/gui/navigation/navigation_x7.cpp b/radio/src/gui/navigation/navigation_x7.cpp index f5553267b..09e460d0c 100644 --- a/radio/src/gui/navigation/navigation_x7.cpp +++ b/radio/src/gui/navigation/navigation_x7.cpp @@ -37,44 +37,7 @@ INIT_STOPS(stops100, 3, -100, 0, 100) INIT_STOPS(stops1000, 3, -1000, 0, 1000) INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST) -int checkIncDecSelection = 0; - -void onSourceLongEnterPress(const char * result) -{ - if (result == STR_MENU_INPUTS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1; -#if defined(LUA_MODEL_SCRIPTS) - else if (result == STR_MENU_LUA) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable); -#endif - else if (result == STR_MENU_STICKS) - checkIncDecSelection = MIXSRC_FIRST_STICK; - else if (result == STR_MENU_POTS) - checkIncDecSelection = MIXSRC_FIRST_POT; - else if (result == STR_MENU_MAX) - checkIncDecSelection = MIXSRC_MAX; - else if (result == STR_MENU_HELI) - checkIncDecSelection = MIXSRC_FIRST_HELI; - else if (result == STR_MENU_TRIMS) - checkIncDecSelection = MIXSRC_FIRST_TRIM; - else if (result == STR_MENU_SWITCHES) - checkIncDecSelection = MIXSRC_FIRST_SWITCH; - else if (result == STR_MENU_TRAINER) - checkIncDecSelection = MIXSRC_FIRST_TRAINER; - else if (result == STR_MENU_CHANNELS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable); - else if (result == STR_MENU_GVARS) - checkIncDecSelection = MIXSRC_FIRST_GVAR; - else if (result == STR_MENU_TELEMETRY) { - for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) { - TelemetrySensor * sensor = & g_model.telemetrySensors[i]; - if (sensor->isAvailable()) { - checkIncDecSelection = MIXSRC_FIRST_TELEM + 3*i; - break; - } - } - } -} +extern int checkIncDecSelection; void onSwitchLongEnterPress(const char * result) { @@ -258,7 +221,7 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t case EVT_KEY_LONG(KEY_PAGE): if (s_editMode>0) break; - + if (curr > 0) cc = curr - 1; else @@ -269,7 +232,7 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t case EVT_KEY_BREAK(KEY_PAGE): if (s_editMode>0) break; - + if (curr < (menuTabSize-1)) cc = curr + 1; else @@ -465,23 +428,3 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t menuVerticalPosition = l_posVert; menuHorizontalPosition = l_posHorz; } - -void check_simple(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t menuTabSize, vertpos_t maxrow) -{ - check(event, curr, menuTab, menuTabSize, 0, 0, maxrow); -} - -void check_submenu_simple(event_t event, uint8_t maxrow) -{ - check_simple(event, 0, 0, 0, maxrow); -} - -void repeatLastCursorMove(event_t event) -{ - if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { - putEvent(event); - } - else { - menuHorizontalPosition = 0; - } -} diff --git a/radio/src/gui/navigation/navigation_x9d.cpp b/radio/src/gui/navigation/navigation_x9d.cpp index b6d171afd..405e4a26d 100644 --- a/radio/src/gui/navigation/navigation_x9d.cpp +++ b/radio/src/gui/navigation/navigation_x9d.cpp @@ -26,50 +26,13 @@ horzpos_t menuHorizontalPosition; int8_t s_editMode; uint8_t noHighlightCounter; uint8_t menuCalibrationState; -int checkIncDecSelection = 0; +extern int checkIncDecSelection; int8_t checkIncDec_Ret; INIT_STOPS(stops100, 3, -100, 0, 100) INIT_STOPS(stops1000, 3, -1000, 0, 1000) INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST) -void onSourceLongEnterPress(const char * result) -{ - if (result == STR_MENU_INPUTS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1; -#if defined(LUA_MODEL_SCRIPTS) - else if (result == STR_MENU_LUA) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable); -#endif - else if (result == STR_MENU_STICKS) - checkIncDecSelection = MIXSRC_FIRST_STICK; - else if (result == STR_MENU_POTS) - checkIncDecSelection = MIXSRC_FIRST_POT; - else if (result == STR_MENU_MAX) - checkIncDecSelection = MIXSRC_MAX; - else if (result == STR_MENU_HELI) - checkIncDecSelection = MIXSRC_FIRST_HELI; - else if (result == STR_MENU_TRIMS) - checkIncDecSelection = MIXSRC_FIRST_TRIM; - else if (result == STR_MENU_SWITCHES) - checkIncDecSelection = MIXSRC_FIRST_SWITCH; - else if (result == STR_MENU_TRAINER) - checkIncDecSelection = MIXSRC_FIRST_TRAINER; - else if (result == STR_MENU_CHANNELS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable); - else if (result == STR_MENU_GVARS) - checkIncDecSelection = MIXSRC_FIRST_GVAR; - else if (result == STR_MENU_TELEMETRY) { - for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) { - TelemetrySensor * sensor = & g_model.telemetrySensors[i]; - if (sensor->isAvailable()) { - checkIncDecSelection = MIXSRC_FIRST_TELEM + 3*i; - break; - } - } - } -} - void onSwitchLongEnterPress(const char * result) { if (result == STR_MENU_SWITCHES) @@ -363,7 +326,7 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t case EVT_KEY_LONG(KEY_PAGE): if (s_editMode>0) break; - + if (curr > 0) cc = curr - 1; else @@ -374,7 +337,7 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t case EVT_KEY_BREAK(KEY_PAGE): if (s_editMode>0) break; - + if (curr < (menuTabSize-1)) cc = curr + 1; else @@ -481,7 +444,7 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t l_posHorz = POS_HORZ_INIT(l_posVert); break; - + CASE_EVT_ROTARY_LEFT case EVT_KEY_FIRST(KEY_LEFT): AUDIO_KEY_PRESS(); @@ -582,22 +545,3 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t } -void check_simple(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t menuTabSize, vertpos_t rowcount) -{ - check(event, curr, menuTab, menuTabSize, 0, 0, rowcount); -} - -void check_submenu_simple(event_t event, uint8_t rowcount) -{ - check_simple(event, 0, nullptr, 0, rowcount); -} - -void repeatLastCursorMove(event_t event) -{ - if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { - putEvent(event); - } - else { - menuHorizontalPosition = 0; - } -} diff --git a/radio/src/gui/navigation/navigation_xlite.cpp b/radio/src/gui/navigation/navigation_xlite.cpp index dabdbd437..6513b35bb 100644 --- a/radio/src/gui/navigation/navigation_xlite.cpp +++ b/radio/src/gui/navigation/navigation_xlite.cpp @@ -52,44 +52,7 @@ INIT_STOPS(stops100, 3, -100, 0, 100) INIT_STOPS(stops1000, 3, -1000, 0, 1000) INIT_STOPS(stopsSwitch, 15, SWSRC_FIRST, CATEGORY_END(-SWSRC_FIRST_LOGICAL_SWITCH), CATEGORY_END(-SWSRC_FIRST_TRIM), CATEGORY_END(-SWSRC_LAST_SWITCH+1), 0, CATEGORY_END(SWSRC_LAST_SWITCH), CATEGORY_END(SWSRC_FIRST_TRIM-1), CATEGORY_END(SWSRC_FIRST_LOGICAL_SWITCH-1), SWSRC_LAST) -int checkIncDecSelection = 0; - -void onSourceLongEnterPress(const char * result) -{ - if (result == STR_MENU_INPUTS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isInputAvailable)+1; -#if defined(LUA_MODEL_SCRIPTS) - else if (result == STR_MENU_LUA) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isSourceAvailable); -#endif - else if (result == STR_MENU_STICKS) - checkIncDecSelection = MIXSRC_FIRST_STICK; - else if (result == STR_MENU_POTS) - checkIncDecSelection = MIXSRC_FIRST_POT; - else if (result == STR_MENU_MAX) - checkIncDecSelection = MIXSRC_MAX; - else if (result == STR_MENU_HELI) - checkIncDecSelection = MIXSRC_FIRST_HELI; - else if (result == STR_MENU_TRIMS) - checkIncDecSelection = MIXSRC_FIRST_TRIM; - else if (result == STR_MENU_SWITCHES) - checkIncDecSelection = MIXSRC_FIRST_SWITCH; - else if (result == STR_MENU_TRAINER) - checkIncDecSelection = MIXSRC_FIRST_TRAINER; - else if (result == STR_MENU_CHANNELS) - checkIncDecSelection = getFirstAvailable(MIXSRC_FIRST_CH, MIXSRC_LAST_CH, isSourceAvailable); - else if (result == STR_MENU_GVARS) - checkIncDecSelection = MIXSRC_FIRST_GVAR; - else if (result == STR_MENU_TELEMETRY) { - for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) { - TelemetrySensor * sensor = & g_model.telemetrySensors[i]; - if (sensor->isAvailable()) { - checkIncDecSelection = MIXSRC_FIRST_TELEM + 3*i; - break; - } - } - } -} +extern int checkIncDecSelection; void onSwitchLongEnterPress(const char * result) { @@ -503,23 +466,3 @@ void check(event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t } } } - -void check_simple(event_t event, uint8_t curr, const MenuHandlerFunc * menuTab, uint8_t menuTabSize, vertpos_t maxrow) -{ - check(event, curr, menuTab, menuTabSize, 0, 0, maxrow); -} - -void check_submenu_simple(event_t event, uint8_t maxrow) -{ - check_simple(event, 0, 0, 0, maxrow); -} - -void repeatLastCursorMove(event_t event) -{ - if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { - putEvent(event); - } - else { - menuHorizontalPosition = 0; - } -} diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 636e5f562..c56b3463b 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -77,7 +77,7 @@ elseif(PCB STREQUAL X7) if(PCBREV STREQUAL T12) set(LUA_EXPORT lua_export_t12) set(FLAVOUR t12) - set(NAVIGATION_TYPE xlite) + set(NAVIGATION_TYPE 9x) set(MULTIMODULE ON) add_definitions(-DRADIO_T12) else() diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 9c1074c8b..2fd72e1a9 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -334,6 +334,10 @@ enum EnumKeys #elif defined(NAVIGATION_XLITE) #define KEY_PLUS KEY_RIGHT #define KEY_MINUS KEY_LEFT +#elif defined(NAVIGATION_9X) + #define KEY_MENU KEY_ENTER + #define KEY_MINUS KEY_DOWN + #define KEY_PLUS KEY_UP #else #define KEY_UP KEY_PLUS #define KEY_DOWN KEY_MINUS