From a8910e1ba27a1ae08e2d16bf874106ae7fc1d292 Mon Sep 17 00:00:00 2001 From: Reed Nightingale Date: Sat, 25 Jan 2020 11:57:04 -0800 Subject: [PATCH] Auto-update sideband mode based on keyed-in frequency --- ubitx_ui.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/ubitx_ui.cpp b/ubitx_ui.cpp index 6f11eb7..0832138 100644 --- a/ubitx_ui.cpp +++ b/ubitx_ui.cpp @@ -415,16 +415,29 @@ void enterFreq(){ switch(button.id){ case KEYS_OK: { - long freq = atol(c); - if((LOWEST_FREQ/1000 <= freq) && (freq <= HIGHEST_FREQ/1000)){ - freq *= 1000L; - setFrequency(freq); + long new_freq = atol(c); + if((LOWEST_FREQ/1000 <= new_freq) && (new_freq <= HIGHEST_FREQ/1000)){ + new_freq *= 1000L; + + long prev_freq = GetActiveVfoFreq(); + //Transition from below to above the traditional threshold for USB + if(prev_freq < THRESHOLD_USB_LSB && new_freq >= THRESHOLD_USB_LSB){ + SetActiveVfoMode(VfoMode_e::VFO_MODE_USB); + } + + //Transition from aboveo to below the traditional threshold for USB + if(prev_freq >= THRESHOLD_USB_LSB && new_freq < THRESHOLD_USB_LSB){ + SetActiveVfoMode(VfoMode_e::VFO_MODE_LSB); + } + if (VFO_A == globalSettings.activeVfo){ - globalSettings.vfoA.frequency = freq; + globalSettings.vfoA.frequency = new_freq; } else{ - globalSettings.vfoB.frequency = freq; + globalSettings.vfoB.frequency = new_freq; } + + setFrequency(new_freq); saveVFOs(); } guiUpdate();