diff --git a/app/app.c b/app/app.c index abc6545..86f232f 100644 --- a/app/app.c +++ b/app/app.c @@ -1834,7 +1834,11 @@ static void ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) } } +#ifdef ENABLE_FEAT_F4HWN // For F + SIDE1 or F + SIDE2 + if (gWasFKeyPressed && (Key == KEY_PTT || Key == KEY_EXIT)) { +#else if (gWasFKeyPressed && (Key == KEY_PTT || Key == KEY_EXIT || Key == KEY_SIDE1 || Key == KEY_SIDE2)) { +#endif // cancel the F-key gWasFKeyPressed = false; gUpdateStatus = true; @@ -1914,9 +1918,18 @@ static void ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) } #endif } +#ifdef ENABLE_FEAT_F4HWN // For F + SIDE1 or F + SIDE2 + else if (gWasFKeyPressed && (Key == KEY_SIDE1 || Key == KEY_SIDE2)) { + ProcessKeysFunctions[gScreenToDisplay](Key, bKeyPressed, bKeyHeld); + } else if (Key != KEY_SIDE1 && Key != KEY_SIDE2 && gScreenToDisplay != DISPLAY_INVALID) { ProcessKeysFunctions[gScreenToDisplay](Key, bKeyPressed, bKeyHeld); } +#else + else if (Key != KEY_SIDE1 && Key != KEY_SIDE2 && gScreenToDisplay != DISPLAY_INVALID) { + ProcessKeysFunctions[gScreenToDisplay](Key, bKeyPressed, bKeyHeld); + } +#endif else if (!SCANNER_IsScanning() #ifdef ENABLE_AIRCOPY && gScreenToDisplay != DISPLAY_AIRCOPY diff --git a/app/main.c b/app/main.c index fe329f8..6785c17 100644 --- a/app/main.c +++ b/app/main.c @@ -250,7 +250,7 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) gBeepToPlay = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL; break; -#ifdef ENABLE_FEAT_F4HWN // Set Squelch F + UP or Down +#ifdef ENABLE_FEAT_F4HWN // Set Squelch F + UP or Down and Step F + SIDE1 or F + SIDE2 case KEY_UP: gEeprom.SQUELCH_LEVEL = (gEeprom.SQUELCH_LEVEL < 9) ? gEeprom.SQUELCH_LEVEL + 1: 9; gVfoConfigureMode = VFO_CONFIGURE; @@ -263,6 +263,33 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) //gRequestDisplayScreen = DISPLAY_MAIN; gWasFKeyPressed = false; break; + + case KEY_SIDE1: + uint8_t a = FREQUENCY_GetSortedIdxFromStepIdx(gTxVfo->STEP_SETTING); + if (a < STEP_N_ELEM - 1) + { + gTxVfo->STEP_SETTING = FREQUENCY_GetStepIdxFromSortedIdx(a + 1); + } + if (IS_FREQ_CHANNEL(gTxVfo->CHANNEL_SAVE)) + { + gRequestSaveChannel = 1; + } + gVfoConfigureMode = VFO_CONFIGURE; + gWasFKeyPressed = false; + break; + case KEY_SIDE2: + uint8_t b = FREQUENCY_GetSortedIdxFromStepIdx(gTxVfo->STEP_SETTING); + if (b > 0) + { + gTxVfo->STEP_SETTING = FREQUENCY_GetStepIdxFromSortedIdx(b - 1); + } + if (IS_FREQ_CHANNEL(gTxVfo->CHANNEL_SAVE)) + { + gRequestSaveChannel = 1; + } + gVfoConfigureMode = VFO_CONFIGURE; + gWasFKeyPressed = false; + break; #endif default: @@ -742,6 +769,8 @@ void MAIN_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld) // } switch (Key) { + case KEY_SIDE1: + case KEY_SIDE2: case KEY_0...KEY_9: MAIN_Key_DIGITS(Key, bKeyPressed, bKeyHeld); break;