diff --git a/App/CMakeLists.txt b/App/CMakeLists.txt index ded9d5b0..e978273f 100644 --- a/App/CMakeLists.txt +++ b/App/CMakeLists.txt @@ -166,7 +166,6 @@ enable_feature(ENABLE_REDUCE_LOW_MID_TX_POWER) enable_feature(ENABLE_BYP_RAW_DEMODULATORS) enable_feature(ENABLE_BLMIN_TMP_OFF) enable_feature(ENABLE_SCAN_RANGES) -enable_feature(ENABLE_NAVIG_LEFT_RIGHT) # ---- CONTRIB MODS ---- diff --git a/App/app/aircopy.c b/App/app/aircopy.c index 5cbfe838..a9e7f227 100644 --- a/App/app/aircopy.c +++ b/App/app/aircopy.c @@ -27,6 +27,7 @@ #include "ui/helper.h" #include "ui/inputbox.h" #include "ui/ui.h" +#include "settings.h" #include #ifdef ENABLE_FEAT_F4HWN_SCREENSHOT @@ -464,18 +465,16 @@ void AIRCOPY_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) AIRCOPY_Key_EXIT(bKeyPressed, bKeyHeld); break; case KEY_UP: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) AIRCOPY_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); - #else + else AIRCOPY_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); - #endif break; case KEY_DOWN: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) AIRCOPY_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); - #else + else AIRCOPY_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); - #endif break; default: break; diff --git a/App/app/fm.c b/App/app/fm.c index d6075577..6ae37ebc 100644 --- a/App/app/fm.c +++ b/App/app/fm.c @@ -552,18 +552,16 @@ void FM_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) Key_MENU(state); break; case KEY_UP: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) Key_UP_DOWN(state, -1); - #else + else Key_UP_DOWN(state, 1); - #endif break; case KEY_DOWN: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) Key_UP_DOWN(state, 1); - #else + else Key_UP_DOWN(state, -1); - #endif break; case KEY_EXIT: Key_EXIT(state); diff --git a/App/app/main.c b/App/app/main.c index 08868275..133d8812 100644 --- a/App/app/main.c +++ b/App/app/main.c @@ -987,18 +987,16 @@ void MAIN_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) MAIN_Key_MENU(bKeyPressed, bKeyHeld); break; case KEY_UP: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) MAIN_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); - #else + else MAIN_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); - #endif break; case KEY_DOWN: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) MAIN_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); - #else + else MAIN_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); - #endif break; case KEY_EXIT: MAIN_Key_EXIT(bKeyPressed, bKeyHeld); diff --git a/App/app/menu.c b/App/app/menu.c index 0d44d668..f1854899 100644 --- a/App/app/menu.c +++ b/App/app/menu.c @@ -374,6 +374,11 @@ int MENU_GetLimits(uint8_t menu_id, int32_t *pMin, int32_t *pMax) *pMax = 4; break; + case MENU_SET_NAV: + //*pMin = 0; + *pMax = 1; + break; + case MENU_F1SHRT: case MENU_F1LONG: case MENU_F2SHRT: @@ -893,6 +898,10 @@ void MENU_AcceptSetting(void) gEeprom.BATTERY_TYPE = gSubMenuSelection; break; + case MENU_SET_NAV: + gEeprom.SET_NAV = gSubMenuSelection; + break; + case MENU_F1SHRT: case MENU_F1LONG: case MENU_F2SHRT: @@ -1332,6 +1341,10 @@ void MENU_ShowCurrentSetting(void) gSubMenuSelection = gEeprom.BATTERY_TYPE; break; + case MENU_SET_NAV: + gSubMenuSelection = gEeprom.SET_NAV; + break; + case MENU_F1SHRT: case MENU_F1LONG: case MENU_F2SHRT: @@ -2002,24 +2015,26 @@ void MENU_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) MENU_Key_MENU(bKeyPressed, bKeyHeld); break; case KEY_UP: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) { if(gIsInSubMenu) MENU_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); else MENU_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); - #else + } + else { MENU_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); - #endif + } break; case KEY_DOWN: - #ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) { if(gIsInSubMenu) MENU_Key_UP_DOWN(bKeyPressed, bKeyHeld, 1); else MENU_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); - #else + } + else { MENU_Key_UP_DOWN(bKeyPressed, bKeyHeld, -1); - #endif + } break; case KEY_EXIT: MENU_Key_EXIT(bKeyPressed, bKeyHeld); diff --git a/App/app/spectrum.c b/App/app/spectrum.c index 30983198..bc16f82e 100644 --- a/App/app/spectrum.c +++ b/App/app/spectrum.c @@ -1207,22 +1207,26 @@ static void OnKeyDown(uint8_t key) break; case KEY_UP: #ifdef ENABLE_SCAN_RANGES - if (!gScanRangeStart) + if (!gScanRangeStart) { #endif -#ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) UpdateCurrentFreq(false); -#else + else UpdateCurrentFreq(true); +#ifdef ENABLE_SCAN_RANGES + } #endif break; case KEY_DOWN: #ifdef ENABLE_SCAN_RANGES - if (!gScanRangeStart) + if (!gScanRangeStart) { #endif -#ifdef ENABLE_NAVIG_LEFT_RIGHT + if(gEeprom.SET_NAV == 0) UpdateCurrentFreq(true); -#else + else UpdateCurrentFreq(false); +#ifdef ENABLE_SCAN_RANGES + } #endif break; case KEY_SIDE1: @@ -1339,37 +1343,20 @@ void OnKeyDownStill(KEY_Code_t key) UpdateDBMax(false); break; case KEY_UP: - if (menuState) + if (menuState) { + bool nav = (gEeprom.SET_NAV != 0); -#ifdef ENABLE_NAVIG_LEFT_RIGHT - { - SetRegMenuValue(menuState, false); - break; + SetRegMenuValue(menuState, nav); + UpdateCurrentFreqStill(nav); } - UpdateCurrentFreqStill(false); -#else - { - SetRegMenuValue(menuState, true); - break; - } - UpdateCurrentFreqStill(true); -#endif break; case KEY_DOWN: - if (menuState) -#ifdef ENABLE_NAVIG_LEFT_RIGHT - { - SetRegMenuValue(menuState, true); - break; + if (menuState) { + bool nav = (gEeprom.SET_NAV != 0); + + SetRegMenuValue(menuState, !nav); + UpdateCurrentFreqStill(!nav); } - UpdateCurrentFreqStill(true); -#else - { - SetRegMenuValue(menuState, false); - break; - } - UpdateCurrentFreqStill(false); -#endif break; case KEY_STAR: UpdateRssiTriggerLevel(true); diff --git a/App/settings.c b/App/settings.c index e23377a4..dc0604b0 100644 --- a/App/settings.c +++ b/App/settings.c @@ -45,6 +45,7 @@ void SETTINGS_InitEEPROM(void) gEeprom.KEY_LOCK = (Data[4] & 0x01) != 0; gEeprom.MENU_LOCK = (Data[4] & 0x02) != 0; gEeprom.SET_KEY = ((Data[4] >> 2) & 0x0F) > 4 ? 0 : (Data[4] >> 2) & 0x0F; + gEeprom.SET_NAV = (Data[4] & 0x40) != 0; #else gEeprom.KEY_LOCK = (Data[4] < 2) ? Data[4] : false; #endif @@ -646,7 +647,11 @@ void SETTINGS_SaveSettings(void) #endif #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS - State[4] = (gEeprom.KEY_LOCK ? 0x01 : 0) | (gEeprom.MENU_LOCK ? 0x02 :0) | ((gEeprom.SET_KEY & 0x0F) << 2); + State[4] = + (gEeprom.KEY_LOCK ? 0x01 : 0) | + (gEeprom.MENU_LOCK ? 0x02 : 0) | + ((gEeprom.SET_KEY & 0x0F) << 2) | + (gEeprom.SET_NAV ? 0x40 : 0); #else State[4] = gEeprom.KEY_LOCK; #endif diff --git a/App/settings.h b/App/settings.h index 022691c6..4fc77042 100644 --- a/App/settings.h +++ b/App/settings.h @@ -194,6 +194,7 @@ typedef struct { bool KEY_LOCK; #ifdef ENABLE_FEAT_F4HWN bool KEY_LOCK_PTT; + bool SET_NAV; #endif #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS bool MENU_LOCK; diff --git a/App/ui/menu.c b/App/ui/menu.c index 538a1c41..23bbd8b5 100644 --- a/App/ui/menu.c +++ b/App/ui/menu.c @@ -181,6 +181,7 @@ const t_menu_item MenuList[] = #endif {"BatCal", MENU_BATCAL }, // battery voltage calibration {"BatTyp", MENU_BATTYP }, // battery type 1600/2200mAh + {"SetNav", MENU_SET_NAV }, // set navigation (LEFT / RIGHT or UP / DOWN) {"Reset", MENU_RESET }, // might be better to move this to the hidden menu items ? {"", 0xff } // end of list - DO NOT delete or move this this @@ -347,6 +348,12 @@ const char gSubMenu_BATTYP[][12] = "2500mAh K1" }; +const char gSubMenu_SET_NAV[][17] = +{ + "LEFT\nRIGHT\nUV-K1", + "UP\nDOWN\nUV-K5(8)", +}; + #ifndef ENABLE_FEAT_F4HWN const char gSubMenu_SCRAMBLER[][7] = { @@ -1070,6 +1077,10 @@ void UI_DisplayMenu(void) strcpy(String, gSubMenu_BATTYP[gSubMenuSelection]); break; + case MENU_SET_NAV: + strcpy(String, gSubMenu_SET_NAV[gSubMenuSelection]); + break; + case MENU_F1SHRT: case MENU_F1LONG: case MENU_F2SHRT: diff --git a/App/ui/menu.h b/App/ui/menu.h index 6128c954..199aa04e 100644 --- a/App/ui/menu.h +++ b/App/ui/menu.h @@ -149,6 +149,7 @@ enum #ifdef ENABLE_NOAA MENU_NOAA_S, #endif + MENU_SET_NAV, #endif MENU_BATCAL, // battery voltage calibration MENU_F1SHRT, diff --git a/CMakePresets.json b/CMakePresets.json index 0844b88c..21c38112 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -65,7 +65,6 @@ "ENABLE_FEAT_F4HWN_DEBUG": false, "ENABLE_AGC_SHOW_DATA": false, "ENABLE_UART_RW_BK_REGS": false, - "ENABLE_NAVIG_LEFT_RIGHT": true, "ENABLE_SWD": false, "VERSION_STRING_1": "v0.22", "VERSION_STRING_2": "v5.0.0"