diff --git a/App/app/action.c b/App/app/action.c index 87a7de2c..1792d474 100644 --- a/App/app/action.c +++ b/App/app/action.c @@ -114,6 +114,12 @@ void (*action_opt_table[])(void) = { //#else // [ACTION_OPT_MUTE] = &FUNCTION_NOP, //#endif + #ifdef ENABLE_FEAT_F4HWN_AUDIO + [ACTION_OPT_RXA] = &ACTION_RxA, + #else + [ACTION_OPT_RXA] = &FUNCTION_NOP, + #endif + #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS [ACTION_OPT_POWER_HIGH] = &ACTION_Power_High, [ACTION_OPT_REMOVE_OFFSET] = &ACTION_Remove_Offset, @@ -536,6 +542,14 @@ void ACTION_MainOnly(void) ACTION_Update(); } +#ifdef ENABLE_FEAT_F4HWN_AUDIO +void ACTION_RxA(void) +{ + gSetting_set_audio = (gSetting_set_audio + 1) % 5; + RADIO_SetModulation(gRxVfo->Modulation); +} +#endif + void ACTION_Ptt(void) { gSetting_set_ptt_session = !gSetting_set_ptt_session; @@ -633,38 +647,36 @@ void ACTION_BackLightOnDemand(void) BACKLIGHT_TurnOn(); } - //#if !defined(ENABLE_SPECTRUM) || !defined(ENABLE_FMRADIO) - void ACTION_Mute(void) - { - // Toggle mute state - gMute = !gMute; +void ACTION_Mute(void) +{ + // Toggle mute state + gMute = !gMute; - // Update the registers - #ifdef ENABLE_FMRADIO - BK1080_WriteRegister(BK1080_REG_05_SYSTEM_CONFIGURATION2, gMute ? 0x0A10 : 0x0A1F); - #endif - gEeprom.VOLUME_GAIN = gMute ? 0 : gEeprom.VOLUME_GAIN_BACKUP; - BK4819_WriteRegister(BK4819_REG_48, - (11u << 12) | // ??? .. 0 ~ 15, doesn't seem to make any difference - (0u << 10) | // AF Rx Gain-1 - (gEeprom.VOLUME_GAIN << 4) | // AF Rx Gain-2 - (gEeprom.DAC_GAIN << 0)); // AF DAC Gain (after Gain-1 and Gain-2) - - gUpdateStatus = true; - } - //#endif - - #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS - void ACTION_Power_High(void) - { - gPowerHigh = !gPowerHigh; - gVfoConfigureMode = VFO_CONFIGURE_RELOAD; - } - - void ACTION_Remove_Offset(void) - { - gRemoveOffset = !gRemoveOffset; - gVfoConfigureMode = VFO_CONFIGURE_RELOAD; - } + // Update the registers + #ifdef ENABLE_FMRADIO + BK1080_WriteRegister(BK1080_REG_05_SYSTEM_CONFIGURATION2, gMute ? 0x0A10 : 0x0A1F); #endif + gEeprom.VOLUME_GAIN = gMute ? 0 : gEeprom.VOLUME_GAIN_BACKUP; + BK4819_WriteRegister(BK4819_REG_48, + (11u << 12) | // ??? .. 0 ~ 15, doesn't seem to make any difference + (0u << 10) | // AF Rx Gain-1 + (gEeprom.VOLUME_GAIN << 4) | // AF Rx Gain-2 + (gEeprom.DAC_GAIN << 0)); // AF DAC Gain (after Gain-1 and Gain-2) + + gUpdateStatus = true; +} + +#ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS +void ACTION_Power_High(void) +{ + gPowerHigh = !gPowerHigh; + gVfoConfigureMode = VFO_CONFIGURE_RELOAD; +} + +void ACTION_Remove_Offset(void) +{ + gRemoveOffset = !gRemoveOffset; + gVfoConfigureMode = VFO_CONFIGURE_RELOAD; +} +#endif #endif \ No newline at end of file diff --git a/App/app/action.h b/App/app/action.h index 53281f5c..6ce81ca8 100644 --- a/App/app/action.h +++ b/App/app/action.h @@ -42,9 +42,10 @@ void ACTION_SwitchDemodul(void); void ACTION_Wn(void); void ACTION_BackLightOnDemand(void); void ACTION_BackLight(void); - //#if !defined(ENABLE_SPECTRUM) || !defined(ENABLE_FMRADIO) void ACTION_Mute(void); - //#endif + #ifdef ENABLE_FEAT_F4HWN_AUDIO + void ACTION_RxA(void); + #endif #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS void ACTION_Power_High(void); void ACTION_Remove_Offset(void); diff --git a/App/settings.h b/App/settings.h index 037bdc38..59696a22 100644 --- a/App/settings.h +++ b/App/settings.h @@ -118,6 +118,9 @@ enum ACTION_OPT_t { ACTION_OPT_WN, ACTION_OPT_BACKLIGHT, ACTION_OPT_MUTE, + #ifdef ENABLE_FEAT_F4HWN_AUDIO + ACTION_OPT_RXA, + #endif #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS ACTION_OPT_POWER_HIGH, ACTION_OPT_REMOVE_OFFSET, diff --git a/App/ui/main.c b/App/ui/main.c index 51173b7e..1b1226ea 100644 --- a/App/ui/main.c +++ b/App/ui/main.c @@ -37,6 +37,7 @@ #include "ui/main.h" #include "ui/ui.h" #include "audio.h" +#include "menu.h" #ifdef ENABLE_FEAT_F4HWN #include "driver/system.h" @@ -760,7 +761,9 @@ void UI_DisplayMain(void) if (activeTxVFO == vfo_num) { // show the TX symbol mode = VFO_MODE_TX; - UI_PrintStringSmallBold("TX", 8, 0, line); + //UI_PrintStringSmallBold("TX", 8, 0, line); + GUI_DisplaySmallest("TX", 10, line == 0 ? 1 : 33, false, true); + } } } @@ -784,7 +787,14 @@ void UI_DisplayMain(void) } if (RxBlink == 0 || RxBlink == 1) { - UI_PrintStringSmallBold("RX", 8, 0, RxLine); + if(gRxVfo->Modulation == MODULATION_AM) + GUI_DisplaySmallest("AIR", 10, RxLine == 0 ? 1 : 33, false, true); + else { + strcpy(String, gSubMenu_SET_AUD[gSetting_set_audio]); + GUI_DisplaySmallest(String, 10, RxLine == 0 ? 1 : 33, false, true); + } + + //UI_PrintStringSmallBold("RX", 8, 0, RxLine); } #else UI_PrintStringSmallBold("RX", 8, 0, line); diff --git a/App/ui/menu.c b/App/ui/menu.c index 85035a7a..a3682be4 100644 --- a/App/ui/menu.c +++ b/App/ui/menu.c @@ -480,9 +480,10 @@ const t_sidefunction gSubMenu_SIDEFUNCTIONS[] = {"MAIN ONLY", ACTION_OPT_MAINONLY}, {"PTT", ACTION_OPT_PTT}, {"WIDE\nNARROW", ACTION_OPT_WN}, - //#if !defined(ENABLE_SPECTRUM) || !defined(ENABLE_FMRADIO) {"MUTE", ACTION_OPT_MUTE}, - //#endif + #ifdef ENABLE_FEAT_F4HWN_AUDIO + {"RxA", ACTION_OPT_RXA}, + #endif #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS {"POWER\nHIGH", ACTION_OPT_POWER_HIGH}, {"REMOVE\nOFFSET", ACTION_OPT_REMOVE_OFFSET},