From d5cd99b7f5ee25f6a6885532d7a5390f584fdd79 Mon Sep 17 00:00:00 2001 From: Mikael Nousiainen Date: Wed, 2 Feb 2022 13:15:05 +0200 Subject: [PATCH] Allow async I/O for Icom SDR rigs, mainly for waterfall spectrum data support. Async I/O is still turned off by default and needs to be enabled via a conf option. --- rigs/icom/ic7300.c | 10 ++++++++++ rigs/icom/ic7610.c | 5 +++++ rigs/icom/ic785x.c | 5 +++++ rigs/icom/icr8600.c | 5 +++++ 4 files changed, 25 insertions(+) diff --git a/rigs/icom/ic7300.c b/rigs/icom/ic7300.c index d51b78b70..b956186d5 100644 --- a/rigs/icom/ic7300.c +++ b/rigs/icom/ic7300.c @@ -1016,6 +1016,11 @@ const struct rig_caps ic9700_caps = }, }, + .async_data_supported = 1, + .read_frame_direct = icom_read_frame_direct, + .is_async_frame = icom_is_async_frame, + .process_async_frame = icom_process_async_frame, + .cfgparams = icom_cfg_params, .set_conf = icom_set_conf, .get_conf = icom_get_conf, @@ -1273,6 +1278,11 @@ const struct rig_caps ic705_caps = }, }, + .async_data_supported = 1, + .read_frame_direct = icom_read_frame_direct, + .is_async_frame = icom_is_async_frame, + .process_async_frame = icom_process_async_frame, + .cfgparams = icom_cfg_params, .set_conf = icom_set_conf, .get_conf = icom_get_conf, diff --git a/rigs/icom/ic7610.c b/rigs/icom/ic7610.c index 45d7ae09a..f9a747e31 100644 --- a/rigs/icom/ic7610.c +++ b/rigs/icom/ic7610.c @@ -526,6 +526,11 @@ const struct rig_caps ic7610_caps = }, }, + .async_data_supported = 1, + .read_frame_direct = icom_read_frame_direct, + .is_async_frame = icom_is_async_frame, + .process_async_frame = icom_process_async_frame, + .cfgparams = icom_cfg_params, .set_conf = icom_set_conf, .get_conf = icom_get_conf, diff --git a/rigs/icom/ic785x.c b/rigs/icom/ic785x.c index 101c6d09e..e70280340 100644 --- a/rigs/icom/ic785x.c +++ b/rigs/icom/ic785x.c @@ -418,6 +418,11 @@ const struct rig_caps ic785x_caps = }, .spectrum_attenuator = { 10, 20, 30, RIG_DBLST_END, }, + .async_data_supported = 1, + .read_frame_direct = icom_read_frame_direct, + .is_async_frame = icom_is_async_frame, + .process_async_frame = icom_process_async_frame, + .cfgparams = icom_cfg_params, .set_conf = icom_set_conf, .get_conf = icom_get_conf, diff --git a/rigs/icom/icr8600.c b/rigs/icom/icr8600.c index 02fe9f832..8671efa93 100644 --- a/rigs/icom/icr8600.c +++ b/rigs/icom/icr8600.c @@ -285,6 +285,11 @@ const struct rig_caps icr8600_caps = }, }, + .async_data_supported = 1, + .read_frame_direct = icom_read_frame_direct, + .is_async_frame = icom_is_async_frame, + .process_async_frame = icom_process_async_frame, + .cfgparams = icom_cfg_params, .set_conf = icom_set_conf,