[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 92c6d98e8ee1f0b236898
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Michael B. <mdb...@us...> - 2021-01-02 21:35:54
|
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 92c6d98e8ee1f0b236898fb65d75307d9df2ac06 (commit) via 9726e07db69c9e2e4cabb5c27826ad5a79ab9a6e (commit) from 2bbe4c1f31b90c4ef7df140efa7947238d4a5c8f (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 92c6d98e8ee1f0b236898fb65d75307d9df2ac06 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 2 15:22:01 2021 -0600 Fix set_freq to not call get_freq if get_freq is not available Correct cache setting for set_freq https://github.com/Hamlib/Hamlib/issues/485 diff --git a/src/rig.c b/src/rig.c index 8aff645e..5c9b64a5 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1481,7 +1481,7 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) } } - if (retcode == RIG_OK) + if (retcode == RIG_OK && caps->get_freq != NULL) { freq_t freq_new = freq; @@ -1510,15 +1510,15 @@ int HAMLIB_API rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) freq_new); } - // update our current freq too - if (vfo == RIG_VFO_CURR || vfo == rig->state.current_vfo) { rig->state.current_freq = freq_new; } - - elapsed_ms(&rig->state.cache.time_ptt, HAMLIB_ELAPSED_SET); - rig->state.cache.freq = freq_new; - //future 4.1 caching - set_cache_freq(rig, vfo, freq_new); - rig->state.cache.vfo_freq = vfo; } + // update our current freq too + if (vfo == RIG_VFO_CURR || vfo == rig->state.current_vfo) { rig->state.current_freq = freq_new; } + + elapsed_ms(&(rig->state.cache.time_freq), HAMLIB_ELAPSED_SET); + rig->state.cache.freq = freq_new; + //future 4.1 caching + set_cache_freq(rig, vfo, freq_new); + rig->state.cache.vfo_freq = vfo; return retcode; } commit 9726e07db69c9e2e4cabb5c27826ad5a79ab9a6e Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 2 09:22:02 2021 -0600 Change rig_get_function_ptr, rig_get_caps_intg, and rig_get_caps_cptr to use rig_model_t instead of RIG* https://github.com/Hamlib/Hamlib/issues/484 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 4fabe256..43de5a9e 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1936,7 +1936,7 @@ enum rig_function_e { * */ //! @cond Doxygen_Suppress -extern void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function); +extern void *rig_get_function_ptr(rig_model_t rig_model, enum rig_function_e rig_function); /** * \brief Enumeration of rig->caps values @@ -1962,14 +1962,14 @@ enum rig_caps_cptr_e { * */ //! @cond Doxygen_Suppress -extern int rig_get_caps_int(RIG *rig, enum rig_caps_int_e rig_caps); +extern int rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps); /** * \brief Function to return char pointer value from rig->caps * */ //! @cond Doxygen_Suppress -extern const char* rig_get_caps_cptr(RIG *rig, enum rig_caps_cptr_e rig_caps); +extern const char* rig_get_caps_cptr(rig_model_t rig_model, enum rig_caps_cptr_e rig_caps); /** * \brief Port definition diff --git a/src/misc.c b/src/misc.c index 7274bf23..1824a8c8 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1812,261 +1812,263 @@ const char *HAMLIB_API rot_strstatus(rot_status_t status) * \param RIG* and rig_function_e * \return the corresponding function pointer */ -void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function) +void *rig_get_function_ptr(rig_model_t rig_model, enum rig_function_e rig_function) { + const struct rig_caps *caps = rig_get_caps(rig_model); + switch (rig_function) { case RIG_FUNCTION_INIT: - return rig->caps->rig_init; + return caps->rig_init; case RIG_FUNCTION_CLEANUP: - return rig->caps->rig_cleanup; + return caps->rig_cleanup; case RIG_FUNCTION_OPEN: - return rig->caps->rig_open; + return caps->rig_open; case RIG_FUNCTION_CLOSE: - return rig->caps->rig_close; + return caps->rig_close; case RIG_FUNCTION_SET_FREQ: - return rig->caps->set_freq; + return caps->set_freq; case RIG_FUNCTION_GET_FREQ: - return rig->caps->get_freq; + return caps->get_freq; case RIG_FUNCTION_SET_MODE: - return rig->caps->set_mode; + return caps->set_mode; case RIG_FUNCTION_GET_MODE: - return rig->caps->get_mode; + return caps->get_mode; case RIG_FUNCTION_SET_VFO: - return rig->caps->set_vfo; + return caps->set_vfo; case RIG_FUNCTION_GET_VFO: - return rig->caps->get_vfo; + return caps->get_vfo; case RIG_FUNCTION_SET_PTT: - return rig->caps->set_ptt; + return caps->set_ptt; case RIG_FUNCTION_GET_PTT: - return rig->caps->get_ptt; + return caps->get_ptt; case RIG_FUNCTION_GET_DCD: - return rig->caps->get_dcd; + return caps->get_dcd; case RIG_FUNCTION_SET_RPTR_SHIFT: - return rig->caps->set_rptr_shift; + return caps->set_rptr_shift; case RIG_FUNCTION_GET_RPTR_SHIFT: - return rig->caps->get_rptr_shift; + return caps->get_rptr_shift; case RIG_FUNCTION_SET_RPTR_OFFS: - return rig->caps->set_rptr_offs; + return caps->set_rptr_offs; case RIG_FUNCTION_GET_RPTR_OFFS: - return rig->caps->get_rptr_offs; + return caps->get_rptr_offs; case RIG_FUNCTION_SET_SPLIT_FREQ: - return rig->caps->set_split_freq; + return caps->set_split_freq; case RIG_FUNCTION_GET_SPLIT_FREQ: - return rig->caps->get_split_freq; + return caps->get_split_freq; case RIG_FUNCTION_SET_SPLIT_MODE: - return rig->caps->set_split_mode; + return caps->set_split_mode; case RIG_FUNCTION_SET_SPLIT_FREQ_MODE: - return rig->caps->set_split_freq_mode; + return caps->set_split_freq_mode; case RIG_FUNCTION_GET_SPLIT_FREQ_MODE: - return rig->caps->get_split_freq_mode; + return caps->get_split_freq_mode; case RIG_FUNCTION_SET_SPLIT_VFO: - return rig->caps->set_split_vfo; + return caps->set_split_vfo; case RIG_FUNCTION_GET_SPLIT_VFO: - return rig->caps->get_split_vfo; + return caps->get_split_vfo; case RIG_FUNCTION_SET_RIT: - return rig->caps->set_rit; + return caps->set_rit; case RIG_FUNCTION_GET_RIT: - return rig->caps->get_rit; + return caps->get_rit; case RIG_FUNCTION_SET_XIT: - return rig->caps->set_xit; + return caps->set_xit; case RIG_FUNCTION_GET_XIT: - return rig->caps->get_xit; + return caps->get_xit; case RIG_FUNCTION_SET_TS: - return rig->caps->set_ts; + return caps->set_ts; case RIG_FUNCTION_GET_TS: - return rig->caps->get_ts; + return caps->get_ts; case RIG_FUNCTION_SET_DCS_CODE: - return rig->caps->set_dcs_code; + return caps->set_dcs_code; case RIG_FUNCTION_GET_DCS_CODE: - return rig->caps->get_dcs_code; + return caps->get_dcs_code; case RIG_FUNCTION_SET_TONE: - return rig->caps->set_tone; + return caps->set_tone; case RIG_FUNCTION_GET_TONE: - return rig->caps->get_tone; + return caps->get_tone; case RIG_FUNCTION_SET_CTCSS_TONE: - return rig->caps->set_ctcss_tone; + return caps->set_ctcss_tone; case RIG_FUNCTION_GET_CTCSS_TONE: - return rig->caps->get_ctcss_tone; + return caps->get_ctcss_tone; case RIG_FUNCTION_SET_DCS_SQL: - return rig->caps->set_dcs_sql; + return caps->set_dcs_sql; case RIG_FUNCTION_GET_DCS_SQL: - return rig->caps->get_dcs_sql; + return caps->get_dcs_sql; case RIG_FUNCTION_SET_TONE_SQL: - return rig->caps->set_tone_sql; + return caps->set_tone_sql; case RIG_FUNCTION_GET_TONE_SQL: - return rig->caps->get_tone_sql; + return caps->get_tone_sql; case RIG_FUNCTION_SET_CTCSS_SQL: - return rig->caps->set_ctcss_sql; + return caps->set_ctcss_sql; case RIG_FUNCTION_GET_CTCSS_SQL: - return rig->caps->get_ctcss_sql; + return caps->get_ctcss_sql; case RIG_FUNCTION_POWER2MW: - return rig->caps->power2mW; + return caps->power2mW; case RIG_FUNCTION_MW2POWER: - return rig->caps->mW2power; + return caps->mW2power; case RIG_FUNCTION_SET_POWERSTAT: - return rig->caps->set_powerstat; + return caps->set_powerstat; case RIG_FUNCTION_GET_POWERSTAT: - return rig->caps->get_powerstat; + return caps->get_powerstat; case RIG_FUNCTION_RESET: - return rig->caps->reset; + return caps->reset; case RIG_FUNCTION_SET_ANT: - return rig->caps->set_ant; + return caps->set_ant; case RIG_FUNCTION_GET_ANT: - return rig->caps->get_ant; + return caps->get_ant; case RIG_FUNCTION_SET_LEVEL: - return rig->caps->set_level; + return caps->set_level; case RIG_FUNCTION_GET_LEVEL: - return rig->caps->get_level; + return caps->get_level; case RIG_FUNCTION_SET_FUNC: - return rig->caps->set_func; + return caps->set_func; case RIG_FUNCTION_GET_FUNC: - return rig->caps->get_func; + return caps->get_func; case RIG_FUNCTION_SET_PARM: - return rig->caps->set_parm; + return caps->set_parm; case RIG_FUNCTION_GET_PARM: - return rig->caps->get_parm; + return caps->get_parm; case RIG_FUNCTION_SET_EXT_LEVEL: - return rig->caps->set_ext_level; + return caps->set_ext_level; case RIG_FUNCTION_GET_EXT_LEVEL: - return rig->caps->get_ext_level; + return caps->get_ext_level; case RIG_FUNCTION_SET_EXT_FUNC: - return rig->caps->set_ext_func; + return caps->set_ext_func; case RIG_FUNCTION_GET_EXT_FUNC: - return rig->caps->get_ext_func; + return caps->get_ext_func; case RIG_FUNCTION_SET_EXT_PARM: - return rig->caps->set_ext_parm; + return caps->set_ext_parm; case RIG_FUNCTION_GET_EXT_PARM: - return rig->caps->get_ext_parm; + return caps->get_ext_parm; case RIG_FUNCTION_SET_CONF: - return rig->caps->set_conf; + return caps->set_conf; case RIG_FUNCTION_GET_CONF: - return rig->caps->get_conf; + return caps->get_conf; case RIG_FUNCTION_SEND_DTMF: - return rig->caps->send_dtmf; + return caps->send_dtmf; case RIG_FUNCTION_SEND_MORSE: - return rig->caps->send_morse; + return caps->send_morse; case RIG_FUNCTION_STOP_MORSE: - return rig->caps->stop_morse; + return caps->stop_morse; case RIG_FUNCTION_WAIT_MORSE: - return rig->caps->wait_morse; + return caps->wait_morse; case RIG_FUNCTION_SEND_VOICE_MEM: - return rig->caps->send_voice_mem; + return caps->send_voice_mem; case RIG_FUNCTION_SET_BANK: - return rig->caps->set_bank; + return caps->set_bank; case RIG_FUNCTION_SET_MEM: - return rig->caps->set_mem; + return caps->set_mem; case RIG_FUNCTION_GET_MEM: - return rig->caps->get_mem; + return caps->get_mem; case RIG_FUNCTION_VFO_OP: - return rig->caps->vfo_op; + return caps->vfo_op; case RIG_FUNCTION_SCAN: - return rig->caps->scan; + return caps->scan; case RIG_FUNCTION_SET_TRN: - return rig->caps->set_trn; + return caps->set_trn; case RIG_FUNCTION_GET_TRN: - return rig->caps->get_trn; + return caps->get_trn; case RIG_FUNCTION_DECODE_EVENT: - return rig->caps->decode_event; + return caps->decode_event; case RIG_FUNCTION_SET_CHANNEL: - return rig->caps->set_channel; + return caps->set_channel; case RIG_FUNCTION_GET_CHANNEL: - return rig->caps->get_channel; + return caps->get_channel; case RIG_FUNCTION_GET_INFO: - return rig->caps->get_info; + return caps->get_info; case RIG_FUNCTION_SET_CHAN_ALL_CB: - return rig->caps->set_chan_all_cb; + return caps->set_chan_all_cb; case RIG_FUNCTION_GET_CHAN_ALL_CB: - return rig->caps->get_chan_all_cb; + return caps->get_chan_all_cb; case RIG_FUNCTION_SET_MEM_ALL_CB: - return rig->caps->set_mem_all_cb; + return caps->set_mem_all_cb; case RIG_FUNCTION_GET_MEM_ALL_CB: - return rig->caps->get_mem_all_cb; + return caps->get_mem_all_cb; case RIG_FUNCTION_SET_VFO_OPT: - return rig->caps->set_vfo_opt; + return caps->set_vfo_opt; default: rig_debug(RIG_DEBUG_ERR, "Unknown function?? function=%d\n", rig_function); @@ -2077,21 +2079,23 @@ void *rig_get_function_ptr(RIG *rig, enum rig_function_e rig_function) return RIG_OK; } -int rig_get_caps_int(RIG *rig, enum rig_caps_int_e rig_caps) +int rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps) { + const struct rig_caps *caps = rig_get_caps(rig_model); + switch (rig_caps) { case RIG_CAPS_TARGETABLE_VFO: - return rig->caps->targetable_vfo; + return caps->targetable_vfo; case RIG_CAPS_RIG_MODEL: - return rig->caps->rig_model; + return caps->rig_model; case RIG_CAPS_PTT_TYPE: - return rig->caps->ptt_type; + return caps->ptt_type; case RIG_CAPS_PORT_TYPE: - return rig->caps->port_type; + return caps->port_type; default: rig_debug(RIG_DEBUG_ERR, "%s: Unknown rig_caps value=%d\n", __func__, rig_caps); @@ -2101,21 +2105,23 @@ int rig_get_caps_int(RIG *rig, enum rig_caps_int_e rig_caps) return RIG_OK; } -const char *rig_get_caps_cptr(RIG *rig, enum rig_caps_cptr_e rig_caps) +const char *rig_get_caps_cptr(rig_model_t rig_model, enum rig_caps_cptr_e rig_caps) { + const struct rig_caps *caps = rig_get_caps(rig_model); + switch (rig_caps) { case RIG_CAPS_VERSION_CPTR: - return rig->caps->version; + return caps->version; case RIG_CAPS_MFG_NAME_CPTR: - return rig->caps->mfg_name; + return caps->mfg_name; case RIG_CAPS_MODEL_NAME_CPTR: - return rig->caps->model_name; + return caps->model_name; default: - rig_debug(RIG_DEBUG_ERR, "%s: Unknown rig_caps value=%d\n", __func__, rig_caps); + rig_debug(RIG_DEBUG_ERR, "%s: Unknown requested rig_caps value=%d\n", __func__, rig_caps); return "Unknown caps value"; } } ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 6 +- src/misc.c | 196 ++++++++++++++++++++++++++------------------------- src/rig.c | 18 ++--- 3 files changed, 113 insertions(+), 107 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |