Logo Search packages:      
Sourcecode: hamlib version File versions  Download package

int HAMLIB_API rig_set_level ( RIG rig,
vfo_t  vfo,
setting_t  level,
value_t  val 
)

set a radio level setting

Parameters:
rig The rig handle
vfo The target VFO
level The level setting
val The value to set the level setting to
Sets the level of a setting. The level value val can be a float or an integer. See value_t for more information.

Returns:
RIG_OK if the operation has been sucessful, otherwise a negative value if an error occured (in which case, cause is set appropriately).
See also:
rig_has_set_level(), rig_get_level()

Definition at line 73 of file settings.c.

References rig::caps, rig_state::current_vfo, rig_has_set_level(), RIG_VFO_CURR, rig_caps::set_level, rig_caps::set_vfo, rig::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;
}


Generated by  Doxygen 1.6.0   Back to index