From 1d79b9e01cae5a474d73b568cd1b2cc6f5222851 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Fri, 23 Apr 2021 17:43:54 -0500 Subject: [PATCH] Fix icom \get_mode in non-vfo mode to stay on VFOB/Sub https://github.com/Hamlib/Hamlib/issues/676 --- rigs/icom/icom.c | 4 ++-- src/rig.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 3654039b9..85f3a7dbc 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -2108,8 +2108,8 @@ int icom_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) if (vfo & (RIG_VFO_A | RIG_VFO_MAIN | RIG_VFO_SUB_A | RIG_VFO_MAIN_A | RIG_VFO_CURR)) { - // then we get our current vfo..i.e. VFOA - if (rig->state.current_vfo != RIG_VFO_A) + // then we get what was asked for + if (vfo == RIG_VFO_NONE) { rig_debug(RIG_DEBUG_TRACE, "%s(%d): forcing default VFO_A\n", __func__, __LINE__); diff --git a/src/rig.c b/src/rig.c index 82e7d1e62..924ab4a3f 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1895,6 +1895,8 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) vfo = vfo_fixup(rig, vfo); + if (vfo == RIG_VFO_CURR) vfo = curr_vfo; + // we ignore get_freq for the uplink VFO for gpredict to behave better if ((rig->state.uplink == 1 && vfo == RIG_VFO_SUB) || (rig->state.uplink == 2 && vfo == RIG_VFO_MAIN))