summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/python/gnuradio/gr/bindings/block_python.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime/python/gnuradio/gr/bindings/block_python.cc')
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/bindings/block_python.cc501
1 files changed, 501 insertions, 0 deletions
diff --git a/gnuradio-runtime/python/gnuradio/gr/bindings/block_python.cc b/gnuradio-runtime/python/gnuradio/gr/bindings/block_python.cc
new file mode 100644
index 0000000000..56a172364f
--- /dev/null
+++ b/gnuradio-runtime/python/gnuradio/gr/bindings/block_python.cc
@@ -0,0 +1,501 @@
+/*
+ * 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 and can be manually edited */
+/* The following lines can be configured to regenerate this file during cmake */
+/* If manual edits are made, the following tags should be modified accordingly. */
+/* BINDTOOL_GEN_AUTOMATIC(0) */
+/* BINDTOOL_USE_PYGCCXML(0) */
+/* BINDTOOL_HEADER_FILE(block.h) */
+/* BINDTOOL_HEADER_FILE_HASH(3e181f6028976ba3727d29f45ebaa6cf) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/block.h>
+// pydoc.h is automatically generated in the build directory
+#include <gnuradio/block_detail.h>
+#include <block_pydoc.h>
+
+void bind_block(py::module& m)
+{
+
+ using block = ::gr::block;
+
+
+ py::class_<block, gr::basic_block, std::shared_ptr<block>>(m, "block", D(block))
+
+
+ .def("history", &block::history, D(block, history))
+
+
+ .def(
+ "set_history", &block::set_history, py::arg("history"), D(block, set_history))
+
+
+ .def("declare_sample_delay",
+ (void (block::*)(int, unsigned int)) & block::declare_sample_delay,
+ py::arg("which"),
+ py::arg("delay"),
+ D(block, declare_sample_delay, 0))
+
+
+ .def("declare_sample_delay",
+ (void (block::*)(unsigned int)) & block::declare_sample_delay,
+ py::arg("delay"),
+ D(block, declare_sample_delay, 1))
+
+
+ .def("sample_delay",
+ &block::sample_delay,
+ py::arg("which"),
+ D(block, sample_delay))
+
+
+ .def("fixed_rate", &block::fixed_rate, D(block, fixed_rate))
+
+
+ .def("forecast",
+ &block::forecast,
+ py::arg("noutput_items"),
+ py::arg("ninput_items_required"),
+ D(block, forecast))
+
+
+ .def("general_work",
+ &block::general_work,
+ py::arg("noutput_items"),
+ py::arg("ninput_items"),
+ py::arg("input_items"),
+ py::arg("output_items"),
+ D(block, general_work))
+
+
+ .def("start", &block::start, D(block, start))
+
+
+ .def("stop", &block::stop, D(block, stop))
+
+
+ .def("set_output_multiple",
+ &block::set_output_multiple,
+ py::arg("multiple"),
+ D(block, set_output_multiple))
+
+
+ .def("output_multiple", &block::output_multiple, D(block, output_multiple))
+
+
+ .def("output_multiple_set",
+ &block::output_multiple_set,
+ D(block, output_multiple_set))
+
+
+ .def("set_alignment",
+ &block::set_alignment,
+ py::arg("multiple"),
+ D(block, set_alignment))
+
+
+ .def("alignment", &block::alignment, D(block, alignment))
+
+
+ .def("set_unaligned",
+ &block::set_unaligned,
+ py::arg("na"),
+ D(block, set_unaligned))
+
+
+ .def("unaligned", &block::unaligned, D(block, unaligned))
+
+
+ .def("set_is_unaligned",
+ &block::set_is_unaligned,
+ py::arg("u"),
+ D(block, set_is_unaligned))
+
+
+ .def("is_unaligned", &block::is_unaligned, D(block, is_unaligned))
+
+
+ .def("consume",
+ &block::consume,
+ py::arg("which_input"),
+ py::arg("how_many_items"),
+ D(block, consume))
+
+
+ .def("consume_each",
+ &block::consume_each,
+ py::arg("how_many_items"),
+ D(block, consume_each))
+
+
+ .def("produce",
+ &block::produce,
+ py::arg("which_output"),
+ py::arg("how_many_items"),
+ D(block, produce))
+
+
+ .def("set_relative_rate",
+ (void (block::*)(double)) & block::set_relative_rate,
+ py::arg("relative_rate"),
+ D(block, set_relative_rate, 0))
+
+
+ .def("set_inverse_relative_rate",
+ &block::set_inverse_relative_rate,
+ py::arg("inverse_relative_rate"),
+ D(block, set_inverse_relative_rate))
+
+
+ .def("set_relative_rate",
+ (void (block::*)(uint64_t, uint64_t)) & block::set_relative_rate,
+ py::arg("interpolation"),
+ py::arg("decimation"),
+ D(block, set_relative_rate, 1))
+
+
+ .def("relative_rate", &block::relative_rate, D(block, relative_rate))
+
+
+ .def("relative_rate_i", &block::relative_rate_i, D(block, relative_rate_i))
+
+
+ .def("relative_rate_d", &block::relative_rate_d, D(block, relative_rate_d))
+
+
+ .def("mp_relative_rate", &block::mp_relative_rate, D(block, mp_relative_rate))
+
+
+ .def("fixed_rate_ninput_to_noutput",
+ &block::fixed_rate_ninput_to_noutput,
+ py::arg("ninput"),
+ D(block, fixed_rate_ninput_to_noutput))
+
+
+ .def("fixed_rate_noutput_to_ninput",
+ &block::fixed_rate_noutput_to_ninput,
+ py::arg("noutput"),
+ D(block, fixed_rate_noutput_to_ninput))
+
+
+ .def("nitems_read",
+ &block::nitems_read,
+ py::arg("which_input"),
+ D(block, nitems_read))
+
+
+ .def("nitems_written",
+ &block::nitems_written,
+ py::arg("which_output"),
+ D(block, nitems_written))
+
+
+ .def("tag_propagation_policy",
+ &block::tag_propagation_policy,
+ D(block, tag_propagation_policy))
+
+
+ .def("set_tag_propagation_policy",
+ &block::set_tag_propagation_policy,
+ py::arg("p"),
+ D(block, set_tag_propagation_policy))
+
+
+ .def("min_noutput_items", &block::min_noutput_items, D(block, min_noutput_items))
+
+
+ .def("set_min_noutput_items",
+ &block::set_min_noutput_items,
+ py::arg("m"),
+ D(block, set_min_noutput_items))
+
+
+ .def("max_noutput_items", &block::max_noutput_items, D(block, max_noutput_items))
+
+
+ .def("set_max_noutput_items",
+ &block::set_max_noutput_items,
+ py::arg("m"),
+ D(block, set_max_noutput_items))
+
+
+ .def("unset_max_noutput_items",
+ &block::unset_max_noutput_items,
+ D(block, unset_max_noutput_items))
+
+
+ .def("is_set_max_noutput_items",
+ &block::is_set_max_noutput_items,
+ D(block, is_set_max_noutput_items))
+
+
+ .def("expand_minmax_buffer",
+ &block::expand_minmax_buffer,
+ py::arg("port"),
+ D(block, expand_minmax_buffer))
+
+
+ .def("max_output_buffer",
+ &block::max_output_buffer,
+ py::arg("i"),
+ D(block, max_output_buffer))
+
+
+ .def("set_max_output_buffer",
+ (void (block::*)(long int)) & block::set_max_output_buffer,
+ py::arg("max_output_buffer"),
+ D(block, set_max_output_buffer, 0))
+
+
+ .def("set_max_output_buffer",
+ (void (block::*)(int, long int)) & block::set_max_output_buffer,
+ py::arg("port"),
+ py::arg("max_output_buffer"),
+ D(block, set_max_output_buffer, 1))
+
+
+ .def("min_output_buffer",
+ &block::min_output_buffer,
+ py::arg("i"),
+ D(block, min_output_buffer))
+
+
+ .def("set_min_output_buffer",
+ (void (block::*)(long int)) & block::set_min_output_buffer,
+ py::arg("min_output_buffer"),
+ D(block, set_min_output_buffer, 0))
+
+
+ .def("set_min_output_buffer",
+ (void (block::*)(int, long int)) & block::set_min_output_buffer,
+ py::arg("port"),
+ py::arg("min_output_buffer"),
+ D(block, set_min_output_buffer, 1))
+
+
+ .def("pc_noutput_items", &block::pc_noutput_items, D(block, pc_noutput_items))
+
+
+ .def("pc_noutput_items_avg",
+ &block::pc_noutput_items_avg,
+ D(block, pc_noutput_items_avg))
+
+
+ .def("pc_noutput_items_var",
+ &block::pc_noutput_items_var,
+ D(block, pc_noutput_items_var))
+
+
+ .def("pc_nproduced", &block::pc_nproduced, D(block, pc_nproduced))
+
+
+ .def("pc_nproduced_avg", &block::pc_nproduced_avg, D(block, pc_nproduced_avg))
+
+
+ .def("pc_nproduced_var", &block::pc_nproduced_var, D(block, pc_nproduced_var))
+
+
+ .def("pc_input_buffers_full",
+ (float (block::*)(int)) & block::pc_input_buffers_full,
+ py::arg("which"),
+ D(block, pc_input_buffers_full, 0))
+
+
+ .def("pc_input_buffers_full_avg",
+ (float (block::*)(int)) & block::pc_input_buffers_full_avg,
+ py::arg("which"),
+ D(block, pc_input_buffers_full_avg, 0))
+
+
+ .def("pc_input_buffers_full_var",
+ (float (block::*)(int)) & block::pc_input_buffers_full_var,
+ py::arg("which"),
+ D(block, pc_input_buffers_full_var, 0))
+
+
+ .def("pc_input_buffers_full",
+ (std::vector<float, std::allocator<float>>(block::*)()) &
+ block::pc_input_buffers_full,
+ D(block, pc_input_buffers_full, 1))
+
+
+ .def("pc_input_buffers_full_avg",
+ (std::vector<float, std::allocator<float>>(block::*)()) &
+ block::pc_input_buffers_full_avg,
+ D(block, pc_input_buffers_full_avg, 1))
+
+
+ .def("pc_input_buffers_full_var",
+ (std::vector<float, std::allocator<float>>(block::*)()) &
+ block::pc_input_buffers_full_var,
+ D(block, pc_input_buffers_full_var, 1))
+
+
+ .def("pc_output_buffers_full",
+ (float (block::*)(int)) & block::pc_output_buffers_full,
+ py::arg("which"),
+ D(block, pc_output_buffers_full, 0))
+
+
+ .def("pc_output_buffers_full_avg",
+ (float (block::*)(int)) & block::pc_output_buffers_full_avg,
+ py::arg("which"),
+ D(block, pc_output_buffers_full_avg, 0))
+
+
+ .def("pc_output_buffers_full_var",
+ (float (block::*)(int)) & block::pc_output_buffers_full_var,
+ py::arg("which"),
+ D(block, pc_output_buffers_full_var, 0))
+
+
+ .def("pc_output_buffers_full",
+ (std::vector<float, std::allocator<float>>(block::*)()) &
+ block::pc_output_buffers_full,
+ D(block, pc_output_buffers_full, 1))
+
+
+ .def("pc_output_buffers_full_avg",
+ (std::vector<float, std::allocator<float>>(block::*)()) &
+ block::pc_output_buffers_full_avg,
+ D(block, pc_output_buffers_full_avg, 1))
+
+
+ .def("pc_output_buffers_full_var",
+ (std::vector<float, std::allocator<float>>(block::*)()) &
+ block::pc_output_buffers_full_var,
+ D(block, pc_output_buffers_full_var, 1))
+
+
+ .def("pc_work_time", &block::pc_work_time, D(block, pc_work_time))
+
+
+ .def("pc_work_time_avg", &block::pc_work_time_avg, D(block, pc_work_time_avg))
+
+
+ .def("pc_work_time_var", &block::pc_work_time_var, D(block, pc_work_time_var))
+
+
+ .def("pc_work_time_total",
+ &block::pc_work_time_total,
+ D(block, pc_work_time_total))
+
+
+ .def("pc_throughput_avg", &block::pc_throughput_avg, D(block, pc_throughput_avg))
+
+
+ .def("reset_perf_counters",
+ &block::reset_perf_counters,
+ D(block, reset_perf_counters))
+
+
+ .def("setup_pc_rpc", &block::setup_pc_rpc, D(block, setup_pc_rpc))
+
+
+ .def("is_pc_rpc_set", &block::is_pc_rpc_set, D(block, is_pc_rpc_set))
+
+
+ .def("no_pc_rpc", &block::no_pc_rpc, D(block, no_pc_rpc))
+
+
+ .def("set_processor_affinity",
+ &block::set_processor_affinity,
+ py::arg("mask"),
+ D(block, set_processor_affinity))
+
+
+ .def("unset_processor_affinity",
+ &block::unset_processor_affinity,
+ D(block, unset_processor_affinity))
+
+
+ .def("processor_affinity",
+ &block::processor_affinity,
+ D(block, processor_affinity))
+
+
+ .def("active_thread_priority",
+ &block::active_thread_priority,
+ D(block, active_thread_priority))
+
+
+ .def("thread_priority", &block::thread_priority, D(block, thread_priority))
+
+
+ .def("set_thread_priority",
+ &block::set_thread_priority,
+ py::arg("priority"),
+ D(block, set_thread_priority))
+
+
+ .def("update_rate", &block::update_rate, D(block, update_rate))
+
+
+ .def("system_handler",
+ &block::system_handler,
+ py::arg("msg"),
+ D(block, system_handler))
+
+
+ .def("set_log_level",
+ &block::set_log_level,
+ py::arg("level"),
+ D(block, set_log_level))
+
+
+ .def("log_level", &block::log_level, D(block, log_level))
+
+
+ .def("finished", &block::finished, D(block, finished))
+
+
+ .def("detail", &block::detail, D(block, detail))
+
+
+ .def("set_detail", &block::set_detail, py::arg("detail"), D(block, set_detail))
+
+
+ .def("notify_msg_neighbors",
+ &block::notify_msg_neighbors,
+ D(block, notify_msg_neighbors))
+
+
+ .def("clear_finished", &block::clear_finished, D(block, clear_finished))
+
+
+ .def("identifier", &block::identifier, D(block, identifier))
+
+ ;
+
+
+ m.def("cast_to_block_sptr",
+ &::gr::cast_to_block_sptr,
+ py::arg("p"),
+ D(cast_to_block_sptr));
+
+
+ py::enum_<gr::block::work_return_t>(m, "work_return_t")
+ .value("WORK_CALLED_PRODUCE", gr::block::WORK_CALLED_PRODUCE) // -2
+ .value("WORK_DONE", gr::block::WORK_DONE) // -1
+ .export_values();
+ py::enum_<gr::block::tag_propagation_policy_t>(m, "tag_propagation_policy_t")
+ .value("TPP_DONT", gr::block::TPP_DONT) // 0
+ .value("TPP_ALL_TO_ALL", gr::block::TPP_ALL_TO_ALL) // 1
+ .value("TPP_ONE_TO_ONE", gr::block::TPP_ONE_TO_ONE) // 2
+ .value("TPP_CUSTOM", gr::block::TPP_CUSTOM) // 3
+ .export_values();
+}