diff --git a/lib/osmosdr_sink_c_impl.cc b/lib/osmosdr_sink_c_impl.cc index ab7101a..9da3b91 100644 --- a/lib/osmosdr_sink_c_impl.cc +++ b/lib/osmosdr_sink_c_impl.cc @@ -66,7 +66,8 @@ osmosdr_make_sink_c (const std::string &args) osmosdr_sink_c_impl::osmosdr_sink_c_impl (const std::string &args) : gr_hier_block2 ("osmosdr_sink_c_impl", args_to_io_signature(args), - gr_make_io_signature (0, 0, 0)) + gr_make_io_signature (0, 0, 0)), + _sample_rate(NAN) { size_t channel = 0; bool device_specified = false; diff --git a/lib/osmosdr_sink_c_impl.h b/lib/osmosdr_sink_c_impl.h index da1b772..8cb5545 100644 --- a/lib/osmosdr_sink_c_impl.h +++ b/lib/osmosdr_sink_c_impl.h @@ -75,6 +75,7 @@ private: std::vector< osmosdr_snk_iface * > _devs; + /* cache to prevent multiple device calls with the same value coming from grc */ double _sample_rate; std::map< size_t, double > _center_freq; std::map< size_t, double > _freq_corr; diff --git a/lib/osmosdr_source_c_impl.cc b/lib/osmosdr_source_c_impl.cc index a6f58f7..c05aeb1 100644 --- a/lib/osmosdr_source_c_impl.cc +++ b/lib/osmosdr_source_c_impl.cc @@ -91,7 +91,8 @@ osmosdr_make_source_c (const std::string &args) osmosdr_source_c_impl::osmosdr_source_c_impl (const std::string &args) : gr_hier_block2 ("osmosdr_source_c_impl", gr_make_io_signature (0, 0, 0), - args_to_io_signature(args)) + args_to_io_signature(args)), + _sample_rate(NAN) { size_t channel = 0; bool device_specified = false; diff --git a/lib/osmosdr_source_c_impl.h b/lib/osmosdr_source_c_impl.h index 74330ba..53bdc2e 100644 --- a/lib/osmosdr_source_c_impl.h +++ b/lib/osmosdr_source_c_impl.h @@ -82,6 +82,7 @@ private: std::vector< osmosdr_src_iface * > _devs; + /* cache to prevent multiple device calls with the same value coming from grc */ double _sample_rate; std::map< size_t, double > _center_freq; std::map< size_t, double > _freq_corr;