From b36fa03407f43dfc8e93a719186264b8d3e6db52 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Fri, 8 Jan 2021 13:12:34 +0100 Subject: uhd: Fix radio_control-related method constness The const-ness of some radio_control differed between base class and implementation. This fixes the consistency, but also makes sure these methods follow the rules for when to make methods 'const'. The following rules apply: - Methods that query static capabilities are const. Here, we made get_tx_lo_sources() const (the RX version was already const). - Getters that may have to interact with the device (e.g., peek a register) are not const, because the act of peeking is usually also non-const. Here, we changed get_rx_lo_export_enabled() to non-const. - All base classes are fixed such that the derived classes and the base classes have the same const-ness. Clang was warning about differences. This can cause very tricky bugs, where the radio_control_impl version can get called instead of the intended child class. --- host/include/uhd/rfnoc/rf_control/core_iface.hpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'host/include') diff --git a/host/include/uhd/rfnoc/rf_control/core_iface.hpp b/host/include/uhd/rfnoc/rf_control/core_iface.hpp index 9b780b3c8..ff7ec3550 100644 --- a/host/include/uhd/rfnoc/rf_control/core_iface.hpp +++ b/host/include/uhd/rfnoc/rf_control/core_iface.hpp @@ -326,8 +326,7 @@ public: * \param name the name of the LO stage to query * \param chan the channel index 0 to N-1 */ - virtual bool get_rx_lo_export_enabled( - const std::string& name, const size_t chan) const = 0; + virtual bool get_rx_lo_export_enabled(const std::string& name, const size_t chan) = 0; /*! * Set the RX LO frequency (Advanced). @@ -365,7 +364,7 @@ public: * \return a vector of strings for possible settings */ virtual std::vector get_tx_lo_sources( - const std::string& name, const size_t chan) = 0; + const std::string& name, const size_t chan) const = 0; /*! * Get the LO frequency range of the tx LO. -- cgit v1.2.3