summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/python/gnuradio/gr/bindings/block_gateway_python.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime/python/gnuradio/gr/bindings/block_gateway_python.cc')
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/bindings/block_gateway_python.cc96
1 files changed, 96 insertions, 0 deletions
diff --git a/gnuradio-runtime/python/gnuradio/gr/bindings/block_gateway_python.cc b/gnuradio-runtime/python/gnuradio/gr/bindings/block_gateway_python.cc
new file mode 100644
index 0000000000..5766677bbe
--- /dev/null
+++ b/gnuradio-runtime/python/gnuradio/gr/bindings/block_gateway_python.cc
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/block_gateway.h>
+
+void bind_block_gateway(py::module& m)
+{
+ using block_gateway = gr::block_gateway;
+ py::class_<block_gateway, gr::block, gr::basic_block, std::shared_ptr<block_gateway>>(
+ m, "block_gateway")
+
+ .def(py::init(&block_gateway::make),
+ py::arg("p"),
+ py::arg("name"),
+ py::arg("in_sig"),
+ py::arg("out_sig"))
+
+ .def("add_item_tag",
+ (void (block_gateway::*)(unsigned int, const gr::tag_t&)) &
+ block_gateway::_add_item_tag,
+ py::arg("which_output"),
+ py::arg("tag"))
+
+ .def("add_item_tag",
+ (void (block_gateway::*)(unsigned int,
+ uint64_t,
+ const pmt::pmt_t&,
+ const pmt::pmt_t&,
+ const pmt::pmt_t&)) &
+ block_gateway::_add_item_tag,
+ py::arg("which_output"),
+ py::arg("abs_offset"),
+ py::arg("key"),
+ py::arg("value"),
+ py::arg("srcid") = pmt::PMT_F)
+
+
+ .def(
+ "get_tags_in_range",
+ (std::vector<gr::tag_t>(block_gateway::*)(unsigned int, uint64_t, uint64_t)) &
+ block_gateway::_get_tags_in_range,
+ py::arg("which_input"),
+ py::arg("abs_start"),
+ py::arg("abs_end"))
+
+ .def("get_tags_in_range",
+ (std::vector<gr::tag_t>(block_gateway::*)(
+ unsigned int, uint64_t, uint64_t, const pmt::pmt_t&)) &
+ block_gateway::_get_tags_in_range,
+ py::arg("which_input"),
+ py::arg("abs_start"),
+ py::arg("abs_end"),
+ py::arg("key"))
+
+ .def(
+ "get_tags_in_window",
+ (std::vector<gr::tag_t>(block_gateway::*)(unsigned int, uint64_t, uint64_t)) &
+ block_gateway::_get_tags_in_range,
+ py::arg("which_input"),
+ py::arg("rel_start"),
+ py::arg("rel_end"))
+
+ .def("get_tags_in_window",
+ (std::vector<gr::tag_t>(block_gateway::*)(
+ unsigned int, uint64_t, uint64_t, const pmt::pmt_t&)) &
+ block_gateway::_get_tags_in_range,
+ py::arg("which_input"),
+ py::arg("rel_start"),
+ py::arg("rel_end"),
+ py::arg("key"))
+
+ .def("set_msg_handler_pybind",
+ &block_gateway::set_msg_handler_pybind,
+ py::arg("which_port"),
+ py::arg("handler_name"))
+
+ ;
+ py::enum_<gr::gw_block_t>(m, "gw_block_t")
+ .value("GW_BLOCK_GENERAL", gr::GW_BLOCK_GENERAL)
+ .value("GW_BLOCK_SYNC", gr::GW_BLOCK_SYNC)
+ .value("GW_BLOCK_DECIM", gr::GW_BLOCK_DECIM)
+ .value("GW_BLOCK_INTERP", gr::GW_BLOCK_INTERP)
+ .export_values();
+}