Add rig_band_changed function for customization of rig actions on each band

This takes user action to customize during build right now.
pull/1476/head
Mike Black W9MDB 2024-01-10 07:28:17 -06:00
rodzic e610d3b691
commit 2709fb8ab9
1 zmienionych plików z 112 dodań i 0 usunięć

112
src/rig.c
Wyświetl plik

@ -1932,6 +1932,104 @@ static int twiddling(RIG *rig)
RETURNFUNC2(0);
}
// Can customize during build
// Eventually should improved this for external actions when
// rigctld gets integrated as a service within Hamlib
static int rig_band_changed(RIG *rig, hamlib_bandselect_t band)
{
// Examples:
// rig_set_func(rig, RIG_VFO_CURR, RIG_FUNC_TUNER, 1);
// rig_set_func(rig, RIG_VFO_CURR, RIG_FUNC_TUNER, 0);
// value_t v;
// rig_set_ant(rig, RIG_VFO_CURR, 1, v);
switch (band)
{
case RIG_BANDSELECT_2200M:
break;
case RIG_BANDSELECT_600M:
break;
case RIG_BANDSELECT_160M:
break;
case RIG_BANDSELECT_80M:
break;
case RIG_BANDSELECT_60M:
break;
case RIG_BANDSELECT_40M:
break;
case RIG_BANDSELECT_30M:
break;
case RIG_BANDSELECT_20M:
break;
case RIG_BANDSELECT_17M:
break;
case RIG_BANDSELECT_15M:
break;
case RIG_BANDSELECT_12M:
break;
case RIG_BANDSELECT_10M:
break;
case RIG_BANDSELECT_6M:
break;
case RIG_BANDSELECT_WFM:
break;
case RIG_BANDSELECT_MW:
break;
case RIG_BANDSELECT_AIR:
break;
case RIG_BANDSELECT_2M:
break;
case RIG_BANDSELECT_1_25M:
break;
case RIG_BANDSELECT_70CM:
break;
case RIG_BANDSELECT_33CM:
break;
case RIG_BANDSELECT_23CM:
break;
case RIG_BANDSELECT_13CM:
break;
case RIG_BANDSELECT_9CM:
break;
case RIG_BANDSELECT_5CM:
break;
case RIG_BANDSELECT_3CM:
break;
case RIG_BANDSELECT_GEN:
break;
default:
rig_debug(RIG_DEBUG_ERR, "%s: Unknown band=%d\n", __func__, band);
}
return RIG_OK;
}
/**
* \brief set the frequency of the target VFO
* \param rig The rig handle
@ -1958,6 +2056,8 @@ int rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
int retcode;
freq_t freq_new = freq;
vfo_t vfo_save;
static int last_band = -1;
int curr_band;
if (CHECK_RIG_ARG(rig))
{
@ -1965,9 +2065,21 @@ int rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
return -RIG_EINVAL;
}
curr_band = rig_get_band(rig, freq, -1);
if (curr_band != last_band)
{
rig_debug(RIG_DEBUG_ERR, "%s: band changing to %s\n", __func__,
rig_get_band_str(rig, curr_band, 0));
rig_band_changed(rig, curr_band);
last_band = curr_band;
}
ELAPSED1;
ENTERFUNC;
LOCK(1);
#if BUILTINFUNC
rig_debug(RIG_DEBUG_VERBOSE, "%s called vfo=%s, freq=%.0f, called from %s\n",
__func__,