diff options
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.cc | 96 |
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(); +} |