set a radio level setting
Definition at line 77 of file settings.c. References caps, rig_state::current_vfo, RIG_EINVAL, RIG_ENAVAIL, RIG_ENTARGET, rig_has_set_level(), RIG_OK, RIG_VFO_CURR, rig_caps::set_level, rig_caps::set_vfo, state, and rig_caps::targetable_vfo. { const struct rig_caps *caps; int retcode; vfo_t curr_vfo; if (CHECK_RIG_ARG(rig)) return -RIG_EINVAL; caps = rig->caps; if (caps->set_level == NULL || !rig_has_set_level(rig,level)) return -RIG_ENAVAIL; if ((caps->targetable_vfo&RIG_TARGETABLE_PURE) || vfo == RIG_VFO_CURR || vfo == rig->state.current_vfo) return caps->set_level(rig, vfo, level, val); if (!caps->set_vfo) return -RIG_ENTARGET; curr_vfo = rig->state.current_vfo; retcode = caps->set_vfo(rig, vfo); if (retcode != RIG_OK) return retcode; retcode = caps->set_level(rig, vfo, level, val); caps->set_vfo(rig, curr_vfo); return retcode; }
|