diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 1a4afa0c2..d616fe72b 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -1111,26 +1111,17 @@ int icom_set_freq(RIG *rig, vfo_t vfo, freq_t freq) RETURNFUNC(-RIG_ERJCTED); } - if (vfo == RIG_VFO_MAIN) - { - priv->main_freq = freq; - } - else if (vfo == RIG_VFO_SUB) - { - priv->sub_freq = freq; - } - priv->curr_freq = freq; switch (vfo) { - case RIG_VFO_MAIN_A: - case RIG_VFO_SUB_A: case RIG_VFO_A: priv->vfoa_freq = freq; break; + case RIG_VFO_MAIN_A: priv->maina_freq = freq; break; + case RIG_VFO_SUB_A: priv->suba_freq = freq; break; - case RIG_VFO_MAIN_B: - case RIG_VFO_SUB_B: case RIG_VFO_B: priv->vfob_freq = freq; break; + case RIG_VFO_MAIN_B: priv->mainb_freq = freq; + case RIG_VFO_SUB_B: priv->subb_freq = freq; case RIG_VFO_MAIN: priv->main_freq = freq; break; @@ -1377,13 +1368,13 @@ int icom_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) switch (vfo) { - case RIG_VFO_MAIN_A: - case RIG_VFO_SUB_A: case RIG_VFO_A: priv->vfoa_freq = *freq; break; + case RIG_VFO_MAIN_A: priv->maina_freq = *freq; break; + case RIG_VFO_SUB_A: priv->suba_freq = *freq; break; - case RIG_VFO_MAIN_B: - case RIG_VFO_SUB_B: case RIG_VFO_B: priv->vfob_freq = *freq; break; + case RIG_VFO_MAIN_B: priv->mainb_freq = *freq; break; + case RIG_VFO_SUB_B: priv->subb_freq = *freq; break; case RIG_VFO_MAIN: priv->main_freq = *freq; break; diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 34343a04f..6339beebc 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include #endif -#define BACKEND_VER "20210703" +#define BACKEND_VER "20210705" #define ICOM_IS_SECONDARY_VFO(vfo) ((vfo) & (RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B)) #define ICOM_GET_VFO_NUMBER(vfo) (ICOM_IS_SECONDARY_VFO(vfo) ? 0x01 : 0x00) @@ -251,6 +251,10 @@ struct icom_priv_data freq_t curr_freq; /*!< Our current freq depending on which vfo is selected */ freq_t main_freq; /*!< Track last setting of main -- not being used yet */ freq_t sub_freq; /*!< Track last setting of sub -- not being used yet */ + freq_t maina_freq; + freq_t mainb_freq; + freq_t suba_freq; + freq_t subb_freq; freq_t vfoa_freq; /*!< Track last setting of vfoa -- used to return last freq when ptt is asserted */ freq_t vfob_freq; /*!< Track last setting of vfob -- used to return last freq when ptt is asserted */ int x25cmdfails; /*!< This will get set if the 0x25 command fails so we try just once */