aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorGrant Meyerhoff <grant.meyerhoff@ni.com>2021-06-14 11:25:58 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2021-06-17 12:35:32 -0500
commit86a1c47ee1a1d1d2aa9b7904ecf5486bb3bf3eac (patch)
treeeba0358aec899fdaf3c85bb78ebb3c94c053fd7f /host/include
parentc0a44be527e65aa83f1a00ab59785906a5411612 (diff)
downloaduhd-86a1c47ee1a1d1d2aa9b7904ecf5486bb3bf3eac.tar.gz
uhd-86a1c47ee1a1d1d2aa9b7904ecf5486bb3bf3eac.tar.bz2
uhd-86a1c47ee1a1d1d2aa9b7904ecf5486bb3bf3eac.zip
uhd: Add callback for setting sync_sources
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/rfnoc/mb_controller.hpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/host/include/uhd/rfnoc/mb_controller.hpp b/host/include/uhd/rfnoc/mb_controller.hpp
index 5ca0ce52a..259b107ab 100644
--- a/host/include/uhd/rfnoc/mb_controller.hpp
+++ b/host/include/uhd/rfnoc/mb_controller.hpp
@@ -27,6 +27,14 @@ class UHD_API mb_controller : public uhd::noncopyable,
{
public:
using sptr = std::shared_ptr<mb_controller>;
+ using sync_source_t = device_addr_t;
+
+ /*! Callback function for changing sync sources
+ *
+ * When a sync source is changed, the sync source callback function is called
+ * to notify any registrants of the update
+ */
+ using sync_source_updater_t = std::function<void(const sync_source_t& sync_source)>;
virtual ~mb_controller() {}
@@ -387,6 +395,16 @@ public:
virtual void set_gpio_src(
const std::string& bank, const std::vector<std::string>& src);
+ /*! Register a callback function to update sync sources
+ *
+ * This callback alerts those registered that a change has
+ * occurred to a sync source, whether that be the clock_source,
+ * time_source, or both via sync_source.
+ *
+ * \param callback_f The function to call when a sync source is updated
+ */
+ virtual void register_sync_source_updater(sync_source_updater_t callback_f);
+
protected:
/*! Stash away a timekeeper. This needs to be called by the implementer of
* mb_controller.