diff --git a/app/main.c b/app/main.c index fdf9af1..916e811 100644 --- a/app/main.c +++ b/app/main.c @@ -130,19 +130,12 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep) break; case KEY_2: - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_A) - gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_CHAN_B; - else - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_B) - gEeprom.CROSS_BAND_RX_TX = CROSS_BAND_CHAN_A; - else - if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_A) - gEeprom.DUAL_WATCH = DUAL_WATCH_CHAN_B; - else - if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_B) - gEeprom.DUAL_WATCH = DUAL_WATCH_CHAN_A; - else - gEeprom.TX_VFO = (Vfo + 1) & 1u; + gEeprom.TX_VFO ^= 1; + + if (gEeprom.CROSS_BAND_RX_TX != CROSS_BAND_OFF) + gEeprom.CROSS_BAND_RX_TX = gEeprom.TX_VFO + 1; + if (gEeprom.DUAL_WATCH != DUAL_WATCH_OFF) + gEeprom.DUAL_WATCH = gEeprom.TX_VFO + 1; gRequestSaveSettings = 1; gFlagReconfigureVfos = true; @@ -586,7 +579,7 @@ static void MAIN_Key_MENU(const bool bKeyPressed, const bool bKeyHeld) } } - const unsigned int vfo = get_rx_VFO(); + const uint8_t vfo = gEeprom.TX_VFO; if (IS_MR_CHANNEL(gEeprom.ScreenChannel[vfo])) { // copy channel to VFO, then swap to the VFO diff --git a/misc.c b/misc.c index bb3a5f9..3fef79d 100644 --- a/misc.c +++ b/misc.c @@ -258,40 +258,6 @@ int16_t gCurrentRSSI[2] = {0, 0}; // now one per VFO uint8_t gIsLocked = 0xFF; -unsigned int get_rx_VFO(void) -{ - unsigned int rx_vfo = gEeprom.TX_VFO; - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_B) - rx_vfo = 0; - else - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_A) - rx_vfo = 1; - else - if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_B) - rx_vfo = 1; - else - if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_A) - rx_vfo = 0; - return rx_vfo; -} - -unsigned int get_tx_VFO(void) -{ - unsigned int tx_vfo = gEeprom.TX_VFO; - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_B) - tx_vfo = 1; - else - if (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_CHAN_A) - tx_vfo = 0; - else - if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_B) - tx_vfo = 1; - else - if (gEeprom.DUAL_WATCH == DUAL_WATCH_CHAN_A) - tx_vfo = 0; - return tx_vfo; -} - void NUMBER_Get(char *pDigits, uint32_t *pInteger) { unsigned int i; diff --git a/misc.h b/misc.h index 92c296b..ae5e1f9 100644 --- a/misc.h +++ b/misc.h @@ -324,9 +324,6 @@ extern int16_t gCurrentRSSI[2]; // now one per VFO extern uint8_t gIsLocked; extern volatile uint8_t boot_counter_10ms; -unsigned int get_tx_VFO(void); -unsigned int get_rx_VFO(void); - void NUMBER_Get(char *pDigits, uint32_t *pInteger); void NUMBER_ToDigits(uint32_t Value, char *pDigits); int32_t NUMBER_AddWithWraparound(int32_t Base, int32_t Add, int32_t LowerLimit, int32_t UpperLimit); diff --git a/radio.c b/radio.c index f627dfb..56ea1a1 100644 --- a/radio.c +++ b/radio.c @@ -560,8 +560,7 @@ static void RADIO_SelectCurrentVfo(void) void RADIO_SelectVfos(void) { - gEeprom.TX_VFO = get_tx_VFO(); - gEeprom.RX_VFO = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.TX_VFO : (gEeprom.TX_VFO + 1) & 1u; + gEeprom.RX_VFO = (gEeprom.CROSS_BAND_RX_TX == CROSS_BAND_OFF) ? gEeprom.TX_VFO : !gEeprom.TX_VFO; gTxVfo = &gEeprom.VfoInfo[gEeprom.TX_VFO]; gRxVfo = &gEeprom.VfoInfo[gEeprom.RX_VFO];