From 6a98b0b9cb8128c09ecf4cf7374bbefd09170aaf Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Mon, 22 Apr 2024 17:48:59 -0500 Subject: [PATCH] Rest of commit -- if setting FM width to other than 7000/10000/15000 cache will show requested width until next poll https://github.com/Hamlib/Hamlib/issues/1533 --- rigs/icom/frame.c | 11 +++++++++++ rigs/icom/ic7300.c | 14 +++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/rigs/icom/frame.c b/rigs/icom/frame.c index 5a4d58f60..d939de897 100644 --- a/rigs/icom/frame.c +++ b/rigs/icom/frame.c @@ -765,6 +765,17 @@ void icom2rig_mode(RIG *rig, unsigned char md, int pd, rmode_t *mode, pbwidth_t *width) { rig_debug(RIG_DEBUG_TRACE, "%s: mode=0x%02x, pd=%d\n", __func__, md, pd); + + // Some rigs return fixed with for FM mode + if ((RIG_IS_IC7300 || RIG_IS_IC9700) && (md == S_FM || md == S_WFM)) + { + *mode = RIG_MODE_FM; + if (*width == 1) *width = 15000; + else if (*width == 2) *width = 10000; + else *width = 7000; + return; + } + *width = RIG_PASSBAND_NORMAL; switch (md) diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index 1ea70cae8..1c0ac833a 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -37,21 +37,21 @@ static int ic7300_set_parm(RIG *rig, setting_t parm, value_t val); static int ic7300_get_parm(RIG *rig, setting_t parm, value_t *val); int ic7300_set_clock(RIG *rig, int year, int month, int day, int hour, - int min, int sec, double msec, int utc_offset); + int min, int sec, double msec, int utc_offset); int ic7300_get_clock(RIG *rig, int *year, int *month, int *day, - int *hour, - int *min, int *sec, double *msec, int *utc_offset); + int *hour, + int *min, int *sec, double *msec, int *utc_offset); int ic9700_set_clock(RIG *rig, int year, int month, int day, int hour, - int min, int sec, double msec, int utc_offset); + int min, int sec, double msec, int utc_offset); int ic9700_get_clock(RIG *rig, int *year, int *month, int *day, - int *hour, - int *min, int *sec, double *msec, int *utc_offset); + int *hour, + int *min, int *sec, double *msec, int *utc_offset); int ic9700_set_vfo(RIG *rig, vfo_t vfo); #define IC7300_ALL_RX_MODES (RIG_MODE_FM|RIG_MODE_PKTFM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTFM|RIG_MODE_PKTAM) -#define IC7300_1HZ_TS_MODES (RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTFM|RIG_MODE_PKTAM) +#define IC7300_1HZ_TS_MODES (RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTAM) #define IC7300_NOT_TS_MODES (IC7300_ALL_RX_MODES &~IC7300_1HZ_TS_MODES) #define IC7300_OTHER_TX_MODES (RIG_MODE_FM|RIG_MODE_PKTFM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR)