From ba16fdf0a0e9052163a5dd00b5927b2eccc0683f Mon Sep 17 00:00:00 2001
From: Josh Morman <mormjb@gmail.com>
Date: Thu, 23 Apr 2020 07:51:39 -0400
Subject: runtime: add pybind11 bindings

---
 .../gnuradio/gr/bindings/hier_block2_python.cc     | 219 +++++++++++++++++++++
 1 file changed, 219 insertions(+)
 create mode 100644 gnuradio-runtime/python/gnuradio/gr/bindings/hier_block2_python.cc

(limited to 'gnuradio-runtime/python/gnuradio/gr/bindings/hier_block2_python.cc')

diff --git a/gnuradio-runtime/python/gnuradio/gr/bindings/hier_block2_python.cc b/gnuradio-runtime/python/gnuradio/gr/bindings/hier_block2_python.cc
new file mode 100644
index 0000000000..496a1796fa
--- /dev/null
+++ b/gnuradio-runtime/python/gnuradio/gr/bindings/hier_block2_python.cc
@@ -0,0 +1,219 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/hier_block2.h>
+// pydoc.h is automatically generated in the build directory
+#include <hier_block2_pydoc.h>
+
+void bind_hier_block2(py::module& m)
+{
+
+    using hier_block2 = ::gr::hier_block2;
+
+    py::class_<hier_block2,
+               gr::basic_block,
+               gr::msg_accepter,
+               std::shared_ptr<hier_block2>>(m, "hier_block2_pb", D(hier_block2))
+
+        .def(py::init(&gr::make_hier_block2),
+             py::arg("name"),
+             py::arg("input_signature"),
+             py::arg("output_signature"))
+
+        .def("self", &hier_block2::self)
+        .def("primitive_connect",
+             (void (hier_block2::*)(gr::basic_block_sptr)) & hier_block2::connect,
+             py::arg("block"))
+        .def("primitive_connect",
+             (void (hier_block2::*)(
+                 gr::basic_block_sptr, int, gr::basic_block_sptr, int)) &
+                 hier_block2::connect,
+             py::arg("src"),
+             py::arg("src_port"),
+             py::arg("dst"),
+             py::arg("dst_port"),
+             D(hier_block2, connect, 1))
+        .def("primitive_msg_connect",
+             (void (hier_block2::*)(
+                 gr::basic_block_sptr, pmt::pmt_t, gr::basic_block_sptr, pmt::pmt_t)) &
+                 hier_block2::msg_connect,
+             py::arg("src"),
+             py::arg("srcport"),
+             py::arg("dst"),
+             py::arg("dstport"),
+             D(hier_block2, msg_connect, 0))
+        .def("primitive_msg_connect",
+             (void (hier_block2::*)(
+                 gr::basic_block_sptr, std::string, gr::basic_block_sptr, std::string)) &
+                 hier_block2::msg_connect,
+             py::arg("src"),
+             py::arg("srcport"),
+             py::arg("dst"),
+             py::arg("dstport"),
+             D(hier_block2, msg_connect, 1))
+        .def("primitive_msg_disconnect",
+             (void (hier_block2::*)(
+                 gr::basic_block_sptr, pmt::pmt_t, gr::basic_block_sptr, pmt::pmt_t)) &
+                 hier_block2::msg_disconnect,
+             py::arg("src"),
+             py::arg("srcport"),
+             py::arg("dst"),
+             py::arg("dstport"),
+             D(hier_block2, msg_disconnect, 0))
+        .def("primitive_msg_disconnect",
+             (void (hier_block2::*)(
+                 gr::basic_block_sptr, std::string, gr::basic_block_sptr, std::string)) &
+                 hier_block2::msg_disconnect,
+             py::arg("src"),
+             py::arg("srcport"),
+             py::arg("dst"),
+             py::arg("dstport"),
+             D(hier_block2, msg_disconnect, 1))
+        .def("primitive_disconnect",
+             (void (hier_block2::*)(gr::basic_block_sptr)) & hier_block2::disconnect,
+             py::arg("block"),
+             D(hier_block2, disconnect, 0))
+        .def("primitive_disconnect",
+             (void (hier_block2::*)(
+                 gr::basic_block_sptr, int, gr::basic_block_sptr, int)) &
+                 hier_block2::disconnect,
+             py::arg("src"),
+             py::arg("src_port"),
+             py::arg("dst"),
+             py::arg("dst_port"),
+             D(hier_block2, disconnect, 1))
+
+
+        .def("disconnect_all",
+             &hier_block2::disconnect_all,
+             D(hier_block2, disconnect_all))
+
+
+        .def("lock", &hier_block2::lock, D(hier_block2, lock))
+
+
+        .def("unlock", &hier_block2::unlock, D(hier_block2, unlock))
+
+
+        .def("max_output_buffer",
+             &hier_block2::max_output_buffer,
+             py::arg("port") = 0,
+             D(hier_block2, max_output_buffer))
+        .def("set_max_output_buffer",
+             (void (hier_block2::*)(int)) & hier_block2::set_max_output_buffer,
+             py::arg("max_output_buffer"),
+             D(hier_block2, set_max_output_buffer, 0))
+        .def("set_max_output_buffer",
+             (void (hier_block2::*)(size_t, int)) & hier_block2::set_max_output_buffer,
+             py::arg("port"),
+             py::arg("max_output_buffer"),
+             D(hier_block2, set_max_output_buffer, 1))
+        .def("min_output_buffer",
+             &hier_block2::min_output_buffer,
+             py::arg("port") = 0,
+             D(hier_block2, min_output_buffer))
+        .def("set_min_output_buffer",
+             (void (hier_block2::*)(int)) & hier_block2::set_min_output_buffer,
+             py::arg("min_output_buffer"),
+             D(hier_block2, set_min_output_buffer, 0))
+        .def("set_min_output_buffer",
+             (void (hier_block2::*)(size_t, int)) & hier_block2::set_min_output_buffer,
+             py::arg("port"),
+             py::arg("min_output_buffer"),
+             D(hier_block2, set_min_output_buffer, 1))
+        // .def("flatten",&hier_block2::flatten)
+        .def("to_hier_block2",
+             &hier_block2::to_hier_block2,
+             D(hier_block2, to_hier_block2))
+
+        .def("has_msg_port",
+             &hier_block2::has_msg_port,
+             py::arg("which_port"),
+             D(hier_block2, has_msg_port))
+        .def("message_port_is_hier",
+             &hier_block2::message_port_is_hier,
+             py::arg("port_id"),
+             D(hier_block2, message_port_is_hier))
+        .def("message_port_is_hier_in",
+             &hier_block2::message_port_is_hier_in,
+             py::arg("port_id"),
+             D(hier_block2, message_port_is_hier_in))
+        .def("message_port_is_hier_out",
+             &hier_block2::message_port_is_hier_out,
+             py::arg("port_id"),
+             D(hier_block2, message_port_is_hier_out))
+
+
+        .def("primitive_message_port_register_hier_in",
+             &hier_block2::message_port_register_hier_in,
+             py::arg("port_id"),
+             D(hier_block2, message_port_register_hier_in))
+
+
+        .def("primitive_message_port_register_hier_out",
+             &hier_block2::message_port_register_hier_out,
+             py::arg("port_id"),
+             D(hier_block2, message_port_register_hier_out))
+        .def("set_processor_affinity",
+             &hier_block2::set_processor_affinity,
+             py::arg("mask"),
+             D(hier_block2, set_processor_affinity))
+
+
+        .def("unset_processor_affinity",
+             &hier_block2::unset_processor_affinity,
+             D(hier_block2, unset_processor_affinity))
+
+
+        .def("processor_affinity",
+             &hier_block2::processor_affinity,
+             D(hier_block2, processor_affinity))
+
+
+        .def("set_log_level",
+             &hier_block2::set_log_level,
+             py::arg("level"),
+             D(hier_block2, set_log_level))
+
+
+        .def("log_level", &hier_block2::log_level, D(hier_block2, log_level))
+
+
+        .def("all_min_output_buffer_p",
+             &hier_block2::all_min_output_buffer_p,
+             D(hier_block2, all_min_output_buffer_p))
+
+
+        .def("all_max_output_buffer_p",
+             &hier_block2::all_max_output_buffer_p,
+             D(hier_block2, all_max_output_buffer_p))
+
+        ;
+
+
+    // m.def("make_hier_block2",&gr::make_hier_block2,
+    //     py::arg("name"),
+    //     py::arg("input_signature"),
+    //     py::arg("output_signature")
+    // );
+    // m.def("dot_graph",&gr::dot_graph,
+    //     py::arg("hierblock2")
+    // );
+    // m.def("cast_to_hier_block2_sptr",&gr::cast_to_hier_block2_sptr,
+    //     py::arg("block")
+    // );
+}
-- 
cgit v1.2.3