[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 8817f121809998ac25700
Library to control radio transceivers and receivers
                
                Brought to you by:
                
                    n0nb
                    
                
            
            
        
        
        
    | 
      
      
      From: Michael B. <mdb...@us...> - 2021-03-16 03:57:03
      
     | 
| This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hamlib -- Ham radio control libraries".
The branch, master has been updated
       via  8817f121809998ac25700a6eff868e119fd0f892 (commit)
      from  3bc39aaec1f09bd461b82a70c4503127f4d1ebca (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8817f121809998ac25700a6eff868e119fd0f892
Author: Michael Black W9MDB <mdb...@ya...>
Date:   Mon Mar 15 22:55:45 2021 -0500
    Fix rig_set_freq and set_cache_freq so if freq=0 cache is expired
    https://github.com/Hamlib/Hamlib/issues/610
diff --git a/src/rig.c b/src/rig.c
index af5f686a..ca519ae7 100644
--- a/src/rig.c
+++ b/src/rig.c
@@ -1392,6 +1392,8 @@ static int set_cache_mode(RIG *rig, vfo_t vfo, mode_t mode, pbwidth_t width)
 
 static int set_cache_freq(RIG *rig, vfo_t vfo, freq_t freq)
 {
+    int flag = HAMLIB_ELAPSED_SET;
+
     ENTERFUNC;
     rig_debug(RIG_DEBUG_TRACE, "%s:  vfo=%s, current_vfo=%s\n", __func__,
               rig_strvfo(vfo), rig_strvfo(rig->state.current_vfo));
@@ -1402,6 +1404,9 @@ static int set_cache_freq(RIG *rig, vfo_t vfo, freq_t freq)
         vfo = rig->state.current_vfo;
     }
 
+    // if freq == 0 then we are asking to invalidate the cache
+    if (freq == 0) flag = HAMLIB_ELAPSED_INVALIDATE;
+
     // pick a sane default
     if (vfo == RIG_VFO_NONE || vfo == RIG_VFO_CURR) { vfo = RIG_VFO_A; }
 
@@ -1433,40 +1438,40 @@ static int set_cache_freq(RIG *rig, vfo_t vfo, freq_t freq)
     case RIG_VFO_MAIN:
     case RIG_VFO_MAIN_A:
         rig->state.cache.freqMainA = freq;
-        elapsed_ms(&rig->state.cache.time_freqMainA, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqMainA, flag);
         break;
 
     case RIG_VFO_B:
     case RIG_VFO_MAIN_B:
     case RIG_VFO_SUB:
         rig->state.cache.freqMainB = freq;
-        elapsed_ms(&rig->state.cache.time_freqMainB, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqMainB, flag);
         break;
 
     case RIG_VFO_C:
     case RIG_VFO_MAIN_C:
         rig->state.cache.freqMainC = freq;
-        elapsed_ms(&rig->state.cache.time_freqMainC, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqMainC, flag);
         break;
 
     case RIG_VFO_SUB_A:
         rig->state.cache.freqSubA = freq;
-        elapsed_ms(&rig->state.cache.time_freqSubA, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqSubA, flag);
         break;
 
     case RIG_VFO_SUB_B:
         rig->state.cache.freqSubB = freq;
-        elapsed_ms(&rig->state.cache.time_freqSubB, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqSubB, flag);
         break;
 
     case RIG_VFO_SUB_C:
         rig->state.cache.freqSubC = freq;
-        elapsed_ms(&rig->state.cache.time_freqSubC, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqSubC, flag);
         break;
 
     case RIG_VFO_MEM:
         rig->state.cache.freqMem = freq;
-        elapsed_ms(&rig->state.cache.time_freqMem, HAMLIB_ELAPSED_SET);
+        elapsed_ms(&rig->state.cache.time_freqMem, flag);
         break;
 
     default:
-----------------------------------------------------------------------
Summary of changes:
 src/rig.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)
hooks/post-receive
-- 
Hamlib -- Ham radio control libraries
 |