diff --git a/app/action.c b/app/action.c index 0d5af21..11c32ee 100644 --- a/app/action.c +++ b/app/action.c @@ -112,6 +112,7 @@ void (*action_opt_table[])(void) = { [ACTION_OPT_WN] = &ACTION_Wn, #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS [ACTION_OPT_POWER_HIGH] = &ACTION_Power_High, + [ACTION_OPT_REMOVE_SHIFT] = &ACTION_Remove_Shift, #endif [ACTION_OPT_BACKLIGHT] = &ACTION_BackLight, #else @@ -625,5 +626,20 @@ void ACTION_BackLightOnDemand(void) else if(gTxVfo->OUTPUT_POWER == OUTPUT_POWER_HIGH) gTxVfo->OUTPUT_POWER = gInitialPower; } + + void ACTION_Remove_Shift(void) + { + if(gTxVfo->TX_OFFSET_FREQUENCY_DIRECTION != 0) + { + if(gTxVfo->pTX == &gTxVfo->freq_config_TX) + { + gTxVfo->pTX = &gTxVfo->freq_config_RX; + } + else + { + gTxVfo->pTX = &gTxVfo->freq_config_TX; + } + } + } #endif #endif \ No newline at end of file diff --git a/app/action.h b/app/action.h index 2d3689d..1d7685b 100644 --- a/app/action.h +++ b/app/action.h @@ -44,6 +44,7 @@ void ACTION_SwitchDemodul(void); void ACTION_BackLight(void); #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS void ACTION_Power_High(void); + void ACTION_Remove_Shift(void); #endif #endif diff --git a/settings.h b/settings.h index 9681429..62f5a24 100644 --- a/settings.h +++ b/settings.h @@ -119,6 +119,7 @@ enum ACTION_OPT_t { ACTION_OPT_BACKLIGHT, #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS ACTION_OPT_POWER_HIGH, + ACTION_OPT_REMOVE_SHIFT, #endif #endif ACTION_OPT_LEN diff --git a/ui/main.c b/ui/main.c index f56ea74..a6f13ca 100644 --- a/ui/main.c +++ b/ui/main.c @@ -1243,8 +1243,19 @@ void UI_DisplayMain(void) if (vfoInfo->freq_config_RX.Frequency != vfoInfo->freq_config_TX.Frequency) { // show the TX offset symbol - const char dir_list[][2] = {"", "+", "-"}; int i = vfoInfo->TX_OFFSET_FREQUENCY_DIRECTION % 3; + + #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS + const char dir_list[][2] = {"", "+", "-", "D"}; + + if(gTxVfo->TX_OFFSET_FREQUENCY_DIRECTION != 0 && gTxVfo->pTX == &gTxVfo->freq_config_RX && !vfoInfo->FrequencyReverse) + { + i = 3; + } + #else + const char dir_list[][2] = {"", "+", "-"}; + #endif + #if ENABLE_FEAT_F4HWN if (gSetting_set_gui) { @@ -1252,7 +1263,18 @@ void UI_DisplayMain(void) } else { - UI_PrintStringSmallNormal(dir_list[i], LCD_WIDTH + 41, 0, line + 1); + #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS + if(i == 3) + { + GUI_DisplaySmallest(dir_list[i], 43, line == 0 ? 17 : 49, false, true); + } + else + { + #endif + UI_PrintStringSmallNormal(dir_list[i], LCD_WIDTH + 41, 0, line + 1); + #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS + } + #endif } #else UI_PrintStringSmallNormal(dir_list[i], LCD_WIDTH + 54, 0, line + 1); diff --git a/ui/menu.c b/ui/menu.c index 276c28f..09e336c 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -448,6 +448,7 @@ const t_sidefunction gSubMenu_SIDEFUNCTIONS[] = {"WIDE\nNARROW", ACTION_OPT_WN}, #ifdef ENABLE_FEAT_F4HWN_RESCUE_OPS {"POWER\nHIGH", ACTION_OPT_POWER_HIGH}, + {"REMOVE\nSHIFT", ACTION_OPT_REMOVE_SHIFT}, #endif #endif };