MCPcopy Create free account
hub / github.com/Hamlib/Hamlib / rig_set_cache_mode

Function rig_set_cache_mode

src/cache.c:36–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34 */
35
36int rig_set_cache_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
37{
38 struct rig_cache *cachep = CACHE(rig);
39 struct rig_state *rs = STATE(rig);
40
41 ENTERFUNC;
42
43 rig_cache_show(rig, __func__, __LINE__);
44
45 if (vfo == RIG_VFO_CURR)
46 {
47 // if CURR then update this before we figure out the real VFO
48 vfo = rs->current_vfo;
49 }
50 else if (vfo == RIG_VFO_TX)
51 {
52 vfo = rs->tx_vfo;
53 rig_debug(RIG_DEBUG_VERBOSE, "%s: TX VFO = %s\n", __func__, rig_strvfo(vfo));
54 }
55 else if (vfo == RIG_VFO_RX)
56 {
57 vfo = rs->rx_vfo;
58 rig_debug(RIG_DEBUG_VERBOSE, "%s: RX VFO = %s\n", __func__, rig_strvfo(vfo));
59 }
60
61 // pick a sane default
62 if (vfo == RIG_VFO_NONE || vfo == RIG_VFO_CURR) { vfo = RIG_VFO_A; }
63
64 if (vfo == RIG_VFO_SUB && cachep->satmode) { vfo = RIG_VFO_SUB_A; };
65
66 if (vfo == RIG_VFO_OTHER) { vfo = vfo_fixup(rig, vfo, cachep->split); }
67
68 if (vfo == rs->current_vfo)
69 {
70 cachep->modeCurr = mode;
71
72 if (width > 0)
73 {
74 cachep->widthCurr = width;
75 }
76
77 elapsed_ms(&cachep->time_modeCurr, HAMLIB_ELAPSED_SET);
78 }
79
80 switch (vfo)
81 {
82 case RIG_VFO_ALL: // we'll use NONE to reset all VFO caches
83 elapsed_ms(&cachep->time_modeMainA, HAMLIB_ELAPSED_INVALIDATE);
84 elapsed_ms(&cachep->time_modeMainB, HAMLIB_ELAPSED_INVALIDATE);
85 elapsed_ms(&cachep->time_modeMainC, HAMLIB_ELAPSED_INVALIDATE);
86 elapsed_ms(&cachep->time_modeSubA, HAMLIB_ELAPSED_INVALIDATE);
87 elapsed_ms(&cachep->time_modeSubB, HAMLIB_ELAPSED_INVALIDATE);
88 elapsed_ms(&cachep->time_modeSubC, HAMLIB_ELAPSED_INVALIDATE);
89 elapsed_ms(&cachep->time_widthMainA, HAMLIB_ELAPSED_INVALIDATE);
90 elapsed_ms(&cachep->time_widthMainB, HAMLIB_ELAPSED_INVALIDATE);
91 elapsed_ms(&cachep->time_widthMainC, HAMLIB_ELAPSED_INVALIDATE);
92 elapsed_ms(&cachep->time_widthSubA, HAMLIB_ELAPSED_INVALIDATE);
93 elapsed_ms(&cachep->time_widthSubB, HAMLIB_ELAPSED_INVALIDATE);

Callers 8

smartsdr_parse_SFunction · 0.85
rig_fire_mode_eventFunction · 0.85
rig_set_modeFunction · 0.85
rig_get_modeFunction · 0.85
rig_set_split_modeFunction · 0.85
rig_get_split_modeFunction · 0.85
rig_set_split_freq_modeFunction · 0.85
rig_get_split_freq_modeFunction · 0.85

Calls 5

rig_cache_showFunction · 0.85
rig_debugFunction · 0.85
rig_strvfoFunction · 0.85
vfo_fixupFunction · 0.85
elapsed_msFunction · 0.85

Tested by

no test coverage detected