diff --git a/app/menu.c b/app/menu.c index 6139add..ec5b4c3 100644 --- a/app/menu.c +++ b/app/menu.c @@ -589,6 +589,10 @@ void MENU_AcceptSetting(void) gDTMF_RecvTimeoutSaved = 0; gDTMF_ReceivedSaved[0] = '\0'; gSetting_live_DTMF_decoder = gSubMenuSelection; + if (!gSetting_live_DTMF_decoder) + BK4819_DisableDTMF(); + gFlagReconfigureVfos = true; + gUpdateStatus = true; break; case MENU_D_LIST: diff --git a/firmware.bin b/firmware.bin index a6f6514..3a86f72 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index 13e2b16..eb59e29 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/functions.c b/functions.c index a7b4572..c9e18f1 100644 --- a/functions.c +++ b/functions.c @@ -185,6 +185,9 @@ void FUNCTION_Select(FUNCTION_Type_t Function) break; } #endif + + // if the DTMF decoder is enabled, it destroys the TX audio !! .. 1of11 + BK4819_DisableDTMF(); if (gCurrentVfo->SCRAMBLING_TYPE > 0 && gSetting_ScrambleEnable) BK4819_EnableScramble(gCurrentVfo->SCRAMBLING_TYPE - 1); diff --git a/radio.c b/radio.c index 8c3a71a..b18bf91 100644 --- a/radio.c +++ b/radio.c @@ -762,10 +762,15 @@ void RADIO_SetupRegisters(bool bSwitchToFunction0) InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; } #else + if (gCurrentFunction != FUNCTION_TRANSMIT && gSetting_live_DTMF_decoder) { BK4819_EnableDTMF(); InterruptMask |= BK4819_REG_3F_DTMF_5TONE_FOUND; } + else + { + BK4819_DisableDTMF(); + } #endif // enable/disable BK4819 selected interrupts