summaryrefslogtreecommitdiff
path: root/gr-analog
diff options
context:
space:
mode:
Diffstat (limited to 'gr-analog')
-rw-r--r--gr-analog/CMakeLists.txt1
-rw-r--r--gr-analog/grc/analog_fastnoise_source_x.block.yml2
-rw-r--r--gr-analog/grc/analog_noise_source_x.block.yml2
-rw-r--r--gr-analog/grc/analog_sig_source_x.block.yml2
-rw-r--r--gr-analog/lib/sig_source_impl.cc2
-rw-r--r--gr-analog/python/analog/CMakeLists.txt6
-rw-r--r--gr-analog/python/analog/__init__.py6
-rw-r--r--gr-analog/python/analog/bindings/CMakeLists.txt49
-rw-r--r--gr-analog/python/analog/bindings/agc2_cc_python.cc95
-rw-r--r--gr-analog/python/analog/bindings/agc2_ff_python.cc95
-rw-r--r--gr-analog/python/analog/bindings/agc3_cc_python.cc93
-rw-r--r--gr-analog/python/analog/bindings/agc_cc_python.cc82
-rw-r--r--gr-analog/python/analog/bindings/agc_ff_python.cc82
-rw-r--r--gr-analog/python/analog/bindings/agc_python.cc150
-rw-r--r--gr-analog/python/analog/bindings/cpfsk_bc_python.cc65
-rw-r--r--gr-analog/python/analog/bindings/cpm_python.cc54
-rw-r--r--gr-analog/python/analog/bindings/ctcss_squelch_ff_python.cc98
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc2_cc_pydoc_template.h57
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc2_ff_pydoc_template.h57
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc2_pydoc_template.h105
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc3_cc_pydoc_template.h57
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc_cc_pydoc_template.h51
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc_ff_pydoc_template.h51
-rw-r--r--gr-analog/python/analog/bindings/docstrings/agc_pydoc_template.h93
-rw-r--r--gr-analog/python/analog/bindings/docstrings/cpfsk_bc_pydoc_template.h39
-rw-r--r--gr-analog/python/analog/bindings/docstrings/cpm_pydoc_template.h27
-rw-r--r--gr-analog/python/analog/bindings/docstrings/ctcss_squelch_ff_pydoc_template.h60
-rw-r--r--gr-analog/python/analog/bindings/docstrings/dpll_bb_pydoc_template.h45
-rw-r--r--gr-analog/python/analog/bindings/docstrings/fastnoise_source_pydoc_template.h15
-rw-r--r--gr-analog/python/analog/bindings/docstrings/feedforward_agc_cc_pydoc_template.h24
-rw-r--r--gr-analog/python/analog/bindings/docstrings/fmdet_cf_pydoc_template.h48
-rw-r--r--gr-analog/python/analog/bindings/docstrings/frequency_modulator_fc_pydoc_template.h35
-rw-r--r--gr-analog/python/analog/bindings/docstrings/noise_source_pydoc_template.h15
-rw-r--r--gr-analog/python/analog/bindings/docstrings/noise_type_pydoc_template.h15
-rw-r--r--gr-analog/python/analog/bindings/docstrings/phase_modulator_fc_pydoc_template.h39
-rw-r--r--gr-analog/python/analog/bindings/docstrings/pll_carriertracking_cc_pydoc_template.h91
-rw-r--r--gr-analog/python/analog/bindings/docstrings/pll_freqdet_cf_pydoc_template.h75
-rw-r--r--gr-analog/python/analog/bindings/docstrings/pll_refout_cc_pydoc_template.h24
-rw-r--r--gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_c_pydoc_template.h47
-rw-r--r--gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_cf_pydoc_template.h47
-rw-r--r--gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_f_pydoc_template.h47
-rw-r--r--gr-analog/python/analog/bindings/docstrings/pwr_squelch_cc_pydoc_template.h54
-rw-r--r--gr-analog/python/analog/bindings/docstrings/pwr_squelch_ff_pydoc_template.h54
-rw-r--r--gr-analog/python/analog/bindings/docstrings/quadrature_demod_cf_pydoc_template.h35
-rw-r--r--gr-analog/python/analog/bindings/docstrings/rail_ff_pydoc_template.h39
-rw-r--r--gr-analog/python/analog/bindings/docstrings/random_uniform_source_pydoc_template.h15
-rw-r--r--gr-analog/python/analog/bindings/docstrings/sig_source_pydoc_template.h15
-rw-r--r--gr-analog/python/analog/bindings/docstrings/sig_source_waveform_pydoc_template.h15
-rw-r--r--gr-analog/python/analog/bindings/docstrings/simple_squelch_cc_pydoc_template.h42
-rw-r--r--gr-analog/python/analog/bindings/docstrings/squelch_base_cc_pydoc_template.h42
-rw-r--r--gr-analog/python/analog/bindings/docstrings/squelch_base_ff_pydoc_template.h42
-rw-r--r--gr-analog/python/analog/bindings/dpll_bb_python.cc71
-rw-r--r--gr-analog/python/analog/bindings/fastnoise_source_python.cc62
-rw-r--r--gr-analog/python/analog/bindings/feedforward_agc_cc_python.cc50
-rw-r--r--gr-analog/python/analog/bindings/fmdet_cf_python.cc75
-rw-r--r--gr-analog/python/analog/bindings/frequency_modulator_fc_python.cc59
-rw-r--r--gr-analog/python/analog/bindings/noise_source_python.cc56
-rw-r--r--gr-analog/python/analog/bindings/noise_type_python.cc37
-rw-r--r--gr-analog/python/analog/bindings/phase_modulator_fc_python.cc68
-rw-r--r--gr-analog/python/analog/bindings/pll_carriertracking_cc_python.cc155
-rw-r--r--gr-analog/python/analog/bindings/pll_freqdet_cf_python.cc131
-rw-r--r--gr-analog/python/analog/bindings/pll_refout_cc_python.cc50
-rw-r--r--gr-analog/python/analog/bindings/probe_avg_mag_sqrd_c_python.cc75
-rw-r--r--gr-analog/python/analog/bindings/probe_avg_mag_sqrd_cf_python.cc76
-rw-r--r--gr-analog/python/analog/bindings/probe_avg_mag_sqrd_f_python.cc75
-rw-r--r--gr-analog/python/analog/bindings/pwr_squelch_cc_python.cc89
-rw-r--r--gr-analog/python/analog/bindings/pwr_squelch_ff_python.cc89
-rw-r--r--gr-analog/python/analog/bindings/python_bindings.cc106
-rw-r--r--gr-analog/python/analog/bindings/quadrature_demod_cf_python.cc57
-rw-r--r--gr-analog/python/analog/bindings/rail_ff_python.cc57
-rw-r--r--gr-analog/python/analog/bindings/random_uniform_source_python.cc49
-rw-r--r--gr-analog/python/analog/bindings/sig_source_python.cc68
-rw-r--r--gr-analog/python/analog/bindings/sig_source_waveform_python.cc39
-rw-r--r--gr-analog/python/analog/bindings/simple_squelch_cc_python.cc72
-rw-r--r--gr-analog/python/analog/bindings/squelch_base_cc_python.cc73
-rw-r--r--gr-analog/python/analog/bindings/squelch_base_ff_python.cc73
-rw-r--r--gr-analog/python/analog/fm_demod.py2
-rw-r--r--gr-analog/python/analog/nbfm_rx.py2
-rw-r--r--gr-analog/python/analog/nbfm_tx.py2
-rw-r--r--gr-analog/python/analog/qa_sig_source.py30
-rw-r--r--gr-analog/python/analog/wfm_rcv.py2
-rw-r--r--gr-analog/python/analog/wfm_rcv_fmdet.py2
-rw-r--r--gr-analog/python/analog/wfm_rcv_pll.py2
-rw-r--r--gr-analog/python/analog/wfm_tx.py2
-rw-r--r--gr-analog/swig/CMakeLists.txt37
-rw-r--r--gr-analog/swig/analog_swig.i130
86 files changed, 4222 insertions, 202 deletions
diff --git a/gr-analog/CMakeLists.txt b/gr-analog/CMakeLists.txt
index 36ea60daf7..5b88683859 100644
--- a/gr-analog/CMakeLists.txt
+++ b/gr-analog/CMakeLists.txt
@@ -36,7 +36,6 @@ add_subdirectory(include/gnuradio/analog)
add_subdirectory(lib)
add_subdirectory(docs)
if(ENABLE_PYTHON)
- add_subdirectory(swig)
add_subdirectory(python/analog)
add_subdirectory(examples)
add_subdirectory(examples/tags)
diff --git a/gr-analog/grc/analog_fastnoise_source_x.block.yml b/gr-analog/grc/analog_fastnoise_source_x.block.yml
index 7b51463339..96c761a7b6 100644
--- a/gr-analog/grc/analog_fastnoise_source_x.block.yml
+++ b/gr-analog/grc/analog_fastnoise_source_x.block.yml
@@ -12,7 +12,7 @@ parameters:
hide: part
- id: noise_type
label: Noise Type
- dtype: int
+ dtype: raw
default: analog.GR_GAUSSIAN
options: [analog.GR_UNIFORM, analog.GR_GAUSSIAN, analog.GR_LAPLACIAN, analog.GR_IMPULSE]
option_labels: [Uniform, Gaussian, Laplacian, Impulse]
diff --git a/gr-analog/grc/analog_noise_source_x.block.yml b/gr-analog/grc/analog_noise_source_x.block.yml
index ba66b71426..3168350974 100644
--- a/gr-analog/grc/analog_noise_source_x.block.yml
+++ b/gr-analog/grc/analog_noise_source_x.block.yml
@@ -12,7 +12,7 @@ parameters:
hide: part
- id: noise_type
label: Noise Type
- dtype: int
+ dtype: raw
default: analog.GR_GAUSSIAN
options: [analog.GR_UNIFORM, analog.GR_GAUSSIAN, analog.GR_LAPLACIAN, analog.GR_IMPULSE]
option_labels: [Uniform, Gaussian, Laplacian, Impulse]
diff --git a/gr-analog/grc/analog_sig_source_x.block.yml b/gr-analog/grc/analog_sig_source_x.block.yml
index ebd55c2df8..759a89ffb6 100644
--- a/gr-analog/grc/analog_sig_source_x.block.yml
+++ b/gr-analog/grc/analog_sig_source_x.block.yml
@@ -17,7 +17,7 @@ parameters:
default: samp_rate
- id: waveform
label: Waveform
- dtype: int
+ dtype: raw
default: analog.GR_COS_WAVE
options: [analog.GR_CONST_WAVE, analog.GR_SIN_WAVE, analog.GR_COS_WAVE, analog.GR_SQR_WAVE,
analog.GR_TRI_WAVE, analog.GR_SAW_WAVE]
diff --git a/gr-analog/lib/sig_source_impl.cc b/gr-analog/lib/sig_source_impl.cc
index c07c2696b1..34b5fc8886 100644
--- a/gr-analog/lib/sig_source_impl.cc
+++ b/gr-analog/lib/sig_source_impl.cc
@@ -55,7 +55,7 @@ sig_source_impl<T>::sig_source_impl(double sampling_freq,
this->set_phase(phase);
this->message_port_register_in(pmt::mp("freq"));
this->set_msg_handler(pmt::mp("freq"),
- boost::bind(&sig_source_impl<T>::set_frequency_msg, this, _1));
+ [this](pmt::pmt_t msg) { this->set_frequency_msg(msg); });
}
template <class T>
diff --git a/gr-analog/python/analog/CMakeLists.txt b/gr-analog/python/analog/CMakeLists.txt
index 70026c3b7d..d717f305f5 100644
--- a/gr-analog/python/analog/CMakeLists.txt
+++ b/gr-analog/python/analog/CMakeLists.txt
@@ -35,11 +35,6 @@ if(ENABLE_TESTING)
set(GR_TEST_LIBRARY_DIRS "")
set(GR_TEST_PYTHON_DIRS
${CMAKE_BINARY_DIR}/gnuradio-runtime/python
- ${CMAKE_BINARY_DIR}/gnuradio-runtime/swig
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-fft/swig
- ${CMAKE_BINARY_DIR}/gr-filter/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
)
include(GrTest)
@@ -50,3 +45,4 @@ if(ENABLE_TESTING)
endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
+add_subdirectory(bindings)
diff --git a/gr-analog/python/analog/__init__.py b/gr-analog/python/analog/__init__.py
index 656682b2a1..b7e962fbd8 100644
--- a/gr-analog/python/analog/__init__.py
+++ b/gr-analog/python/analog/__init__.py
@@ -16,11 +16,11 @@ from __future__ import unicode_literals
import os
try:
- from .analog_swig import *
+ from .analog_python import *
except ImportError:
dirname, filename = os.path.split(os.path.abspath(__file__))
- __path__.append(os.path.join(dirname, "..", "..", "swig"))
- from .analog_swig import *
+ __path__.append(os.path.join(dirname, "bindings"))
+ from .analog_python import *
from .am_demod import *
from .fm_demod import *
diff --git a/gr-analog/python/analog/bindings/CMakeLists.txt b/gr-analog/python/analog/bindings/CMakeLists.txt
new file mode 100644
index 0000000000..603cd4cc89
--- /dev/null
+++ b/gr-analog/python/analog/bindings/CMakeLists.txt
@@ -0,0 +1,49 @@
+include(GrPybind)
+
+########################################################################
+# Python Bindings
+########################################################################
+
+list(APPEND analog_python_files
+ agc_python.cc
+ # agc2_python.cc
+ agc2_cc_python.cc
+ agc2_ff_python.cc
+ agc3_cc_python.cc
+ agc_cc_python.cc
+ agc_ff_python.cc
+ cpfsk_bc_python.cc
+ cpm_python.cc
+ ctcss_squelch_ff_python.cc
+ dpll_bb_python.cc
+ fastnoise_source_python.cc
+ feedforward_agc_cc_python.cc
+ fmdet_cf_python.cc
+ frequency_modulator_fc_python.cc
+ noise_source_python.cc
+ noise_type_python.cc
+ phase_modulator_fc_python.cc
+ pll_carriertracking_cc_python.cc
+ pll_freqdet_cf_python.cc
+ pll_refout_cc_python.cc
+ probe_avg_mag_sqrd_c_python.cc
+ probe_avg_mag_sqrd_cf_python.cc
+ probe_avg_mag_sqrd_f_python.cc
+ pwr_squelch_cc_python.cc
+ pwr_squelch_ff_python.cc
+ quadrature_demod_cf_python.cc
+ rail_ff_python.cc
+ random_uniform_source_python.cc
+ sig_source_python.cc
+ sig_source_waveform_python.cc
+ simple_squelch_cc_python.cc
+ squelch_base_cc_python.cc
+ squelch_base_ff_python.cc
+ python_bindings.cc)
+
+GR_PYBIND_MAKE_CHECK_HASH(analog
+ ../../..
+ gr::analog
+ "${analog_python_files}")
+
+install(TARGETS analog_python DESTINATION ${GR_PYTHON_DIR}/gnuradio/analog COMPONENT pythonapi)
diff --git a/gr-analog/python/analog/bindings/agc2_cc_python.cc b/gr-analog/python/analog/bindings/agc2_cc_python.cc
new file mode 100644
index 0000000000..893a83e61c
--- /dev/null
+++ b/gr-analog/python/analog/bindings/agc2_cc_python.cc
@@ -0,0 +1,95 @@
+/*
+ * 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(agc2_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(2b5f9a8e9b8b290d5d48493dbfb651cd) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/agc2_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <agc2_cc_pydoc.h>
+
+void bind_agc2_cc(py::module& m)
+{
+
+ using agc2_cc = ::gr::analog::agc2_cc;
+
+
+ py::class_<agc2_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<agc2_cc>>(m, "agc2_cc", D(agc2_cc))
+
+ .def(py::init(&agc2_cc::make),
+ py::arg("attack_rate") = 0.10000000000000001,
+ py::arg("decay_rate") = 0.01,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ D(agc2_cc, make))
+
+
+ .def("attack_rate", &agc2_cc::attack_rate, D(agc2_cc, attack_rate))
+
+
+ .def("decay_rate", &agc2_cc::decay_rate, D(agc2_cc, decay_rate))
+
+
+ .def("reference", &agc2_cc::reference, D(agc2_cc, reference))
+
+
+ .def("gain", &agc2_cc::gain, D(agc2_cc, gain))
+
+
+ .def("max_gain", &agc2_cc::max_gain, D(agc2_cc, max_gain))
+
+
+ .def("set_attack_rate",
+ &agc2_cc::set_attack_rate,
+ py::arg("rate"),
+ D(agc2_cc, set_attack_rate))
+
+
+ .def("set_decay_rate",
+ &agc2_cc::set_decay_rate,
+ py::arg("rate"),
+ D(agc2_cc, set_decay_rate))
+
+
+ .def("set_reference",
+ &agc2_cc::set_reference,
+ py::arg("reference"),
+ D(agc2_cc, set_reference))
+
+
+ .def("set_gain", &agc2_cc::set_gain, py::arg("gain"), D(agc2_cc, set_gain))
+
+
+ .def("set_max_gain",
+ &agc2_cc::set_max_gain,
+ py::arg("max_gain"),
+ D(agc2_cc, set_max_gain))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-analog/python/analog/bindings/agc2_ff_python.cc b/gr-analog/python/analog/bindings/agc2_ff_python.cc
new file mode 100644
index 0000000000..4581495b44
--- /dev/null
+++ b/gr-analog/python/analog/bindings/agc2_ff_python.cc
@@ -0,0 +1,95 @@
+/*
+ * 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(agc2_ff.h) */
+/* BINDTOOL_HEADER_FILE_HASH(9109f8c396a1a49bea1306f6edd36ea7) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/agc2_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <agc2_ff_pydoc.h>
+
+void bind_agc2_ff(py::module& m)
+{
+
+ using agc2_ff = ::gr::analog::agc2_ff;
+
+
+ py::class_<agc2_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<agc2_ff>>(m, "agc2_ff", D(agc2_ff))
+
+ .def(py::init(&agc2_ff::make),
+ py::arg("attack_rate") = 0.10000000000000001,
+ py::arg("decay_rate") = 0.01,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ D(agc2_ff, make))
+
+
+ .def("attack_rate", &agc2_ff::attack_rate, D(agc2_ff, attack_rate))
+
+
+ .def("decay_rate", &agc2_ff::decay_rate, D(agc2_ff, decay_rate))
+
+
+ .def("reference", &agc2_ff::reference, D(agc2_ff, reference))
+
+
+ .def("gain", &agc2_ff::gain, D(agc2_ff, gain))
+
+
+ .def("max_gain", &agc2_ff::max_gain, D(agc2_ff, max_gain))
+
+
+ .def("set_attack_rate",
+ &agc2_ff::set_attack_rate,
+ py::arg("rate"),
+ D(agc2_ff, set_attack_rate))
+
+
+ .def("set_decay_rate",
+ &agc2_ff::set_decay_rate,
+ py::arg("rate"),
+ D(agc2_ff, set_decay_rate))
+
+
+ .def("set_reference",
+ &agc2_ff::set_reference,
+ py::arg("reference"),
+ D(agc2_ff, set_reference))
+
+
+ .def("set_gain", &agc2_ff::set_gain, py::arg("gain"), D(agc2_ff, set_gain))
+
+
+ .def("set_max_gain",
+ &agc2_ff::set_max_gain,
+ py::arg("max_gain"),
+ D(agc2_ff, set_max_gain))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-analog/python/analog/bindings/agc3_cc_python.cc b/gr-analog/python/analog/bindings/agc3_cc_python.cc
new file mode 100644
index 0000000000..f17d950907
--- /dev/null
+++ b/gr-analog/python/analog/bindings/agc3_cc_python.cc
@@ -0,0 +1,93 @@
+/*
+ * 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(agc3_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(a3249a33ccef3b89642aa41df853772e) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/agc3_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <agc3_cc_pydoc.h>
+
+void bind_agc3_cc(py::module& m)
+{
+
+ using agc3_cc = ::gr::analog::agc3_cc;
+
+
+ py::class_<agc3_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<agc3_cc>>(m, "agc3_cc", D(agc3_cc))
+
+ .def(py::init(&agc3_cc::make),
+ py::arg("attack_rate") = 0.10000000000000001,
+ py::arg("decay_rate") = 0.01,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ py::arg("iir_update_decim") = 1,
+ D(agc3_cc, make))
+
+
+ .def("attack_rate", &agc3_cc::attack_rate, D(agc3_cc, attack_rate))
+
+
+ .def("decay_rate", &agc3_cc::decay_rate, D(agc3_cc, decay_rate))
+
+
+ .def("reference", &agc3_cc::reference, D(agc3_cc, reference))
+
+
+ .def("gain", &agc3_cc::gain, D(agc3_cc, gain))
+
+
+ .def("max_gain", &agc3_cc::max_gain, D(agc3_cc, max_gain))
+
+
+ .def("set_attack_rate",
+ &agc3_cc::set_attack_rate,
+ py::arg("rate"),
+ D(agc3_cc, set_attack_rate))
+
+
+ .def("set_decay_rate",
+ &agc3_cc::set_decay_rate,
+ py::arg("rate"),
+ D(agc3_cc, set_decay_rate))
+
+
+ .def("set_reference",
+ &agc3_cc::set_reference,
+ py::arg("reference"),
+ D(agc3_cc, set_reference))
+
+
+ .def("set_gain", &agc3_cc::set_gain, py::arg("gain"), D(agc3_cc, set_gain))
+
+
+ .def("set_max_gain",
+ &agc3_cc::set_max_gain,
+ py::arg("max_gain"),
+ D(agc3_cc, set_max_gain))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/agc_cc_python.cc b/gr-analog/python/analog/bindings/agc_cc_python.cc
new file mode 100644
index 0000000000..91e26b62b0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/agc_cc_python.cc
@@ -0,0 +1,82 @@
+/*
+ * 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(agc_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(5c6f25a10209aa7d146e36b5aef27010) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/agc_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <agc_cc_pydoc.h>
+
+void bind_agc_cc(py::module& m)
+{
+
+ using agc_cc = ::gr::analog::agc_cc;
+
+
+ py::class_<agc_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<agc_cc>>(m, "agc_cc", D(agc_cc))
+
+ .def(py::init(&agc_cc::make),
+ py::arg("rate") = 1.0E-4,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ D(agc_cc, make))
+
+
+ .def("rate", &agc_cc::rate, D(agc_cc, rate))
+
+
+ .def("reference", &agc_cc::reference, D(agc_cc, reference))
+
+
+ .def("gain", &agc_cc::gain, D(agc_cc, gain))
+
+
+ .def("max_gain", &agc_cc::max_gain, D(agc_cc, max_gain))
+
+
+ .def("set_rate", &agc_cc::set_rate, py::arg("rate"), D(agc_cc, set_rate))
+
+
+ .def("set_reference",
+ &agc_cc::set_reference,
+ py::arg("reference"),
+ D(agc_cc, set_reference))
+
+
+ .def("set_gain", &agc_cc::set_gain, py::arg("gain"), D(agc_cc, set_gain))
+
+
+ .def("set_max_gain",
+ &agc_cc::set_max_gain,
+ py::arg("max_gain"),
+ D(agc_cc, set_max_gain))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-analog/python/analog/bindings/agc_ff_python.cc b/gr-analog/python/analog/bindings/agc_ff_python.cc
new file mode 100644
index 0000000000..0f9c8eaa18
--- /dev/null
+++ b/gr-analog/python/analog/bindings/agc_ff_python.cc
@@ -0,0 +1,82 @@
+/*
+ * 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(agc_ff.h) */
+/* BINDTOOL_HEADER_FILE_HASH(e6b71daceff3aa1c28b2efab1e459066) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/agc_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <agc_ff_pydoc.h>
+
+void bind_agc_ff(py::module& m)
+{
+
+ using agc_ff = ::gr::analog::agc_ff;
+
+
+ py::class_<agc_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<agc_ff>>(m, "agc_ff", D(agc_ff))
+
+ .def(py::init(&agc_ff::make),
+ py::arg("rate") = 1.0E-4,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ D(agc_ff, make))
+
+
+ .def("rate", &agc_ff::rate, D(agc_ff, rate))
+
+
+ .def("reference", &agc_ff::reference, D(agc_ff, reference))
+
+
+ .def("gain", &agc_ff::gain, D(agc_ff, gain))
+
+
+ .def("max_gain", &agc_ff::max_gain, D(agc_ff, max_gain))
+
+
+ .def("set_rate", &agc_ff::set_rate, py::arg("rate"), D(agc_ff, set_rate))
+
+
+ .def("set_reference",
+ &agc_ff::set_reference,
+ py::arg("reference"),
+ D(agc_ff, set_reference))
+
+
+ .def("set_gain", &agc_ff::set_gain, py::arg("gain"), D(agc_ff, set_gain))
+
+
+ .def("set_max_gain",
+ &agc_ff::set_max_gain,
+ py::arg("max_gain"),
+ D(agc_ff, set_max_gain))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-analog/python/analog/bindings/agc_python.cc b/gr-analog/python/analog/bindings/agc_python.cc
new file mode 100644
index 0000000000..ea6682b924
--- /dev/null
+++ b/gr-analog/python/analog/bindings/agc_python.cc
@@ -0,0 +1,150 @@
+/*
+ * 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(agc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(d90b7e45f3562e159f1cd298df3585f6) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/agc.h>
+// pydoc.h is automatically generated in the build directory
+#include <agc_pydoc.h>
+
+void bind_agc(py::module& m)
+{
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using agc_cc = ::gr::analog::kernel::agc_cc;
+ using agc_ff = ::gr::analog::kernel::agc_ff;
+
+
+ py::class_<agc_cc, std::shared_ptr<agc_cc>>(m_kernel, "agc_cc", D(kernel, agc_cc))
+
+ .def(py::init<float, float, float, float>(),
+ py::arg("rate") = 1.0E-4,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ py::arg("max_gain") = 0.,
+ D(kernel, agc_cc, agc_cc, 0))
+ .def(py::init<gr::analog::kernel::agc_cc const&>(),
+ py::arg("arg0"),
+ D(kernel, agc_cc, agc_cc, 1))
+
+
+ .def("rate", &agc_cc::rate, D(kernel, agc_cc, rate))
+
+
+ .def("reference", &agc_cc::reference, D(kernel, agc_cc, reference))
+
+
+ .def("gain", &agc_cc::gain, D(kernel, agc_cc, gain))
+
+
+ .def("max_gain", &agc_cc::max_gain, D(kernel, agc_cc, max_gain))
+
+
+ .def("set_rate", &agc_cc::set_rate, py::arg("rate"), D(kernel, agc_cc, set_rate))
+
+
+ .def("set_reference",
+ &agc_cc::set_reference,
+ py::arg("reference"),
+ D(kernel, agc_cc, set_reference))
+
+
+ .def("set_gain", &agc_cc::set_gain, py::arg("gain"), D(kernel, agc_cc, set_gain))
+
+
+ .def("set_max_gain",
+ &agc_cc::set_max_gain,
+ py::arg("max_gain"),
+ D(kernel, agc_cc, set_max_gain))
+
+
+ .def("scale", &agc_cc::scale, py::arg("input"), D(kernel, agc_cc, scale))
+
+
+ .def("scaleN",
+ &agc_cc::scaleN,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel, agc_cc, scaleN))
+
+ ;
+
+
+ py::class_<agc_ff, std::shared_ptr<agc_ff>>(m_kernel, "agc_ff", D(kernel, agc_ff))
+
+ .def(py::init<float, float, float, float>(),
+ py::arg("rate") = 1.0E-4,
+ py::arg("reference") = 1.,
+ py::arg("gain") = 1.,
+ py::arg("max_gain") = 0.,
+ D(kernel, agc_ff, agc_ff, 0))
+ .def(py::init<gr::analog::kernel::agc_ff const&>(),
+ py::arg("arg0"),
+ D(kernel, agc_ff, agc_ff, 1))
+
+
+ .def("rate", &agc_ff::rate, D(kernel, agc_ff, rate))
+
+
+ .def("reference", &agc_ff::reference, D(kernel, agc_ff, reference))
+
+
+ .def("gain", &agc_ff::gain, D(kernel, agc_ff, gain))
+
+
+ .def("max_gain", &agc_ff::max_gain, D(kernel, agc_ff, max_gain))
+
+
+ .def("set_rate", &agc_ff::set_rate, py::arg("rate"), D(kernel, agc_ff, set_rate))
+
+
+ .def("set_reference",
+ &agc_ff::set_reference,
+ py::arg("reference"),
+ D(kernel, agc_ff, set_reference))
+
+
+ .def("set_gain", &agc_ff::set_gain, py::arg("gain"), D(kernel, agc_ff, set_gain))
+
+
+ .def("set_max_gain",
+ &agc_ff::set_max_gain,
+ py::arg("max_gain"),
+ D(kernel, agc_ff, set_max_gain))
+
+
+ .def("scale", &agc_ff::scale, py::arg("input"), D(kernel, agc_ff, scale))
+
+
+ .def("scaleN",
+ &agc_ff::scaleN,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel, agc_ff, scaleN))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/cpfsk_bc_python.cc b/gr-analog/python/analog/bindings/cpfsk_bc_python.cc
new file mode 100644
index 0000000000..df7ca62edf
--- /dev/null
+++ b/gr-analog/python/analog/bindings/cpfsk_bc_python.cc
@@ -0,0 +1,65 @@
+/*
+ * 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(cpfsk_bc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(e702ef3d26dedd94a467c55c4c3701bd) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/cpfsk_bc.h>
+// pydoc.h is automatically generated in the build directory
+#include <cpfsk_bc_pydoc.h>
+
+void bind_cpfsk_bc(py::module& m)
+{
+
+ using cpfsk_bc = ::gr::analog::cpfsk_bc;
+
+
+ py::class_<cpfsk_bc,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<cpfsk_bc>>(m, "cpfsk_bc", D(cpfsk_bc))
+
+ .def(py::init(&cpfsk_bc::make),
+ py::arg("k"),
+ py::arg("ampl"),
+ py::arg("samples_per_sym"),
+ D(cpfsk_bc, make))
+
+
+ .def("set_amplitude",
+ &cpfsk_bc::set_amplitude,
+ py::arg("amplitude"),
+ D(cpfsk_bc, set_amplitude))
+
+
+ .def("amplitude", &cpfsk_bc::amplitude, D(cpfsk_bc, amplitude))
+
+
+ .def("freq", &cpfsk_bc::freq, D(cpfsk_bc, freq))
+
+
+ .def("phase", &cpfsk_bc::phase, D(cpfsk_bc, phase))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/cpm_python.cc b/gr-analog/python/analog/bindings/cpm_python.cc
new file mode 100644
index 0000000000..e9ad1d5bd0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/cpm_python.cc
@@ -0,0 +1,54 @@
+/*
+ * 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(cpm.h) */
+/* BINDTOOL_HEADER_FILE_HASH(26142cac2adffa3cc16c2b8e9c0ae6ff) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/cpm.h>
+// pydoc.h is automatically generated in the build directory
+#include <cpm_pydoc.h>
+
+void bind_cpm(py::module& m)
+{
+
+ using cpm = ::gr::analog::cpm;
+
+ py::class_<cpm, std::shared_ptr<cpm>> cpm_class(m, "cpm");
+
+
+ py::enum_<gr::analog::cpm::cpm_type>(cpm_class, "cpm_type")
+ .value("LRC", gr::analog::cpm::LRC) // 0
+ .value("LSRC", gr::analog::cpm::LSRC) // 1
+ .value("LREC", gr::analog::cpm::LREC) // 2
+ .value("TFM", gr::analog::cpm::TFM) // 3
+ .value("GAUSSIAN", gr::analog::cpm::GAUSSIAN) // 4
+ .value("GENERIC", gr::analog::cpm::GENERIC) // 999
+ .export_values();
+
+ cpm_class.def_static("phase_response",
+ &cpm::phase_response,
+ py::arg("type"),
+ py::arg("samples_per_sym"),
+ py::arg("L"),
+ py::arg("beta") = 0.3,
+ D(cpm, phase_response));
+}
diff --git a/gr-analog/python/analog/bindings/ctcss_squelch_ff_python.cc b/gr-analog/python/analog/bindings/ctcss_squelch_ff_python.cc
new file mode 100644
index 0000000000..53aab7c447
--- /dev/null
+++ b/gr-analog/python/analog/bindings/ctcss_squelch_ff_python.cc
@@ -0,0 +1,98 @@
+/*
+ * 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(ctcss_squelch_ff.h) */
+/* BINDTOOL_HEADER_FILE_HASH(e3921bc97f0f8813b708306467a41d49) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/ctcss_squelch_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <ctcss_squelch_ff_pydoc.h>
+
+void bind_ctcss_squelch_ff(py::module& m)
+{
+
+ using ctcss_squelch_ff = ::gr::analog::ctcss_squelch_ff;
+
+
+ py::class_<ctcss_squelch_ff,
+ gr::analog::squelch_base_ff,
+ std::shared_ptr<ctcss_squelch_ff>>(
+ m, "ctcss_squelch_ff", D(ctcss_squelch_ff))
+
+ .def(py::init(&ctcss_squelch_ff::make),
+ py::arg("rate"),
+ py::arg("freq"),
+ py::arg("level"),
+ py::arg("len"),
+ py::arg("ramp"),
+ py::arg("gate"),
+ D(ctcss_squelch_ff, make))
+
+
+ .def("squelch_range",
+ &ctcss_squelch_ff::squelch_range,
+ D(ctcss_squelch_ff, squelch_range))
+
+
+ .def("level", &ctcss_squelch_ff::level, D(ctcss_squelch_ff, level))
+
+
+ .def("set_level",
+ &ctcss_squelch_ff::set_level,
+ py::arg("level"),
+ D(ctcss_squelch_ff, set_level))
+
+
+ .def("len", &ctcss_squelch_ff::len, D(ctcss_squelch_ff, len))
+
+
+ .def("frequency", &ctcss_squelch_ff::frequency, D(ctcss_squelch_ff, frequency))
+
+
+ .def("set_frequency",
+ &ctcss_squelch_ff::set_frequency,
+ py::arg("frequency"),
+ D(ctcss_squelch_ff, set_frequency))
+
+
+ .def("ramp", &ctcss_squelch_ff::ramp, D(ctcss_squelch_ff, ramp))
+
+
+ .def("set_ramp",
+ &ctcss_squelch_ff::set_ramp,
+ py::arg("ramp"),
+ D(ctcss_squelch_ff, set_ramp))
+
+
+ .def("gate", &ctcss_squelch_ff::gate, D(ctcss_squelch_ff, gate))
+
+
+ .def("set_gate",
+ &ctcss_squelch_ff::set_gate,
+ py::arg("gate"),
+ D(ctcss_squelch_ff, set_gate))
+
+
+ .def("unmuted", &ctcss_squelch_ff::unmuted, D(ctcss_squelch_ff, unmuted))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/docstrings/agc2_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc2_cc_pydoc_template.h
new file mode 100644
index 0000000000..d441a84bbd
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc2_cc_pydoc_template.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_agc2_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_agc2_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_agc2_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_set_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_set_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_cc_set_max_gain = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/agc2_ff_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc2_ff_pydoc_template.h
new file mode 100644
index 0000000000..6cb0962d7a
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc2_ff_pydoc_template.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_agc2_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_agc2_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_agc2_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_set_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_set_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc2_ff_set_max_gain = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/agc2_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc2_pydoc_template.h
new file mode 100644
index 0000000000..7470bb91a3
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc2_pydoc_template.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_agc2_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_agc2_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_set_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_set_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_set_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_scale = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_cc_scaleN = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_agc2_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_agc2_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_set_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_set_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_set_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_scale = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc2_ff_scaleN = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/agc3_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc3_cc_pydoc_template.h
new file mode 100644
index 0000000000..e361e5471f
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc3_cc_pydoc_template.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_agc3_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_agc3_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_agc3_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_set_attack_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_set_decay_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc3_cc_set_max_gain = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/agc_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc_cc_pydoc_template.h
new file mode 100644
index 0000000000..2f795943cb
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc_cc_pydoc_template.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_agc_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_agc_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_agc_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_cc_set_max_gain = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/agc_ff_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc_ff_pydoc_template.h
new file mode 100644
index 0000000000..a138c1e270
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc_ff_pydoc_template.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_agc_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_agc_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_agc_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_agc_ff_set_max_gain = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/agc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/agc_pydoc_template.h
new file mode 100644
index 0000000000..b30fe27214
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/agc_pydoc_template.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_kernel_agc_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_agc_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_agc_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_set_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_scale = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_cc_scaleN = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_agc_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_agc_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_set_reference = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_set_max_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_scale = R"doc()doc";
+
+
+static const char* __doc_gr_analog_kernel_agc_ff_scaleN = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/cpfsk_bc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/cpfsk_bc_pydoc_template.h
new file mode 100644
index 0000000000..50df25ea26
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/cpfsk_bc_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_cpfsk_bc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_cpfsk_bc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_cpfsk_bc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_set_amplitude = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_amplitude = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpfsk_bc_phase = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/cpm_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/cpm_pydoc_template.h
new file mode 100644
index 0000000000..86feb51fa9
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/cpm_pydoc_template.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_cpm = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpm_cpm_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpm_cpm_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_cpm_phase_response = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/ctcss_squelch_ff_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/ctcss_squelch_ff_pydoc_template.h
new file mode 100644
index 0000000000..6f6baa8c0e
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/ctcss_squelch_ff_pydoc_template.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_ctcss_squelch_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_ctcss_squelch_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_squelch_range = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_level = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_set_level = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_len = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_set_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_set_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_set_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_ctcss_squelch_ff_unmuted = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/dpll_bb_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/dpll_bb_pydoc_template.h
new file mode 100644
index 0000000000..e9d81249fb
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/dpll_bb_pydoc_template.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_dpll_bb = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_dpll_bb_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_dpll_bb_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_set_decision_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_phase = R"doc()doc";
+
+
+static const char* __doc_gr_analog_dpll_bb_decision_threshold = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/fastnoise_source_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/fastnoise_source_pydoc_template.h
new file mode 100644
index 0000000000..08dc9ab6f0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/fastnoise_source_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-analog/python/analog/bindings/docstrings/feedforward_agc_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/feedforward_agc_cc_pydoc_template.h
new file mode 100644
index 0000000000..1c35de79ec
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/feedforward_agc_cc_pydoc_template.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_feedforward_agc_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_feedforward_agc_cc_feedforward_agc_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_feedforward_agc_cc_make = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/fmdet_cf_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/fmdet_cf_pydoc_template.h
new file mode 100644
index 0000000000..28c2ae6115
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/fmdet_cf_pydoc_template.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_fmdet_cf = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_fmdet_cf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_fmdet_cf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_set_scale = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_set_freq_range = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_freq_high = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_freq_low = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_scale = R"doc()doc";
+
+
+static const char* __doc_gr_analog_fmdet_cf_bias = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/frequency_modulator_fc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/frequency_modulator_fc_pydoc_template.h
new file mode 100644
index 0000000000..3342430da4
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/frequency_modulator_fc_pydoc_template.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_frequency_modulator_fc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_frequency_modulator_fc_frequency_modulator_fc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_frequency_modulator_fc_frequency_modulator_fc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_frequency_modulator_fc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_frequency_modulator_fc_set_sensitivity = R"doc()doc";
+
+
+static const char* __doc_gr_analog_frequency_modulator_fc_sensitivity = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/noise_source_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/noise_source_pydoc_template.h
new file mode 100644
index 0000000000..08dc9ab6f0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/noise_source_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-analog/python/analog/bindings/docstrings/noise_type_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/noise_type_pydoc_template.h
new file mode 100644
index 0000000000..08dc9ab6f0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/noise_type_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-analog/python/analog/bindings/docstrings/phase_modulator_fc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/phase_modulator_fc_pydoc_template.h
new file mode 100644
index 0000000000..1558ba4177
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/phase_modulator_fc_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_phase_modulator_fc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_phase_modulator_fc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_phase_modulator_fc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_sensitivity = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_phase = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_set_sensitivity = R"doc()doc";
+
+
+static const char* __doc_gr_analog_phase_modulator_fc_set_phase = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/pll_carriertracking_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/pll_carriertracking_cc_pydoc_template.h
new file mode 100644
index 0000000000..e7187091cc
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/pll_carriertracking_cc_pydoc_template.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_pll_carriertracking_cc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_pll_carriertracking_cc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_lock_detector = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_squelch_enable = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_lock_threshold =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_loop_bandwidth =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_damping_factor =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_beta = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_min_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_set_max_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_loop_bandwidth =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_damping_factor =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_beta = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_phase = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_min_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_carriertracking_cc_get_max_freq = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/pll_freqdet_cf_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/pll_freqdet_cf_pydoc_template.h
new file mode 100644
index 0000000000..61e13e6aca
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/pll_freqdet_cf_pydoc_template.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_pll_freqdet_cf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_pll_freqdet_cf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_loop_bandwidth = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_damping_factor = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_beta = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_min_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_set_max_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_loop_bandwidth = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_damping_factor = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_beta = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_frequency = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_phase = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_min_freq = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_freqdet_cf_get_max_freq = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/pll_refout_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/pll_refout_cc_pydoc_template.h
new file mode 100644
index 0000000000..c8c2aaca48
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/pll_refout_cc_pydoc_template.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_pll_refout_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_refout_cc_pll_refout_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pll_refout_cc_make = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_c_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_c_pydoc_template.h
new file mode 100644
index 0000000000..3e4a6d26f7
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_c_pydoc_template.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_probe_avg_mag_sqrd_c_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_probe_avg_mag_sqrd_c_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_unmuted = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_level = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_c_reset = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_cf_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_cf_pydoc_template.h
new file mode 100644
index 0000000000..1a2e6d5368
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_cf_pydoc_template.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_probe_avg_mag_sqrd_cf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_probe_avg_mag_sqrd_cf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_unmuted = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_level = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_cf_reset = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_f_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_f_pydoc_template.h
new file mode 100644
index 0000000000..4757f11325
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/probe_avg_mag_sqrd_f_pydoc_template.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_probe_avg_mag_sqrd_f_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_probe_avg_mag_sqrd_f_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_unmuted = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_level = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_probe_avg_mag_sqrd_f_reset = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/pwr_squelch_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/pwr_squelch_cc_pydoc_template.h
new file mode 100644
index 0000000000..db6e122b78
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/pwr_squelch_cc_pydoc_template.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_pwr_squelch_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_pwr_squelch_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_squelch_range = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_set_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_set_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_cc_unmuted = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/pwr_squelch_ff_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/pwr_squelch_ff_pydoc_template.h
new file mode 100644
index 0000000000..949e8c442b
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/pwr_squelch_ff_pydoc_template.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_pwr_squelch_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_pwr_squelch_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_squelch_range = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_set_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_set_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_pwr_squelch_ff_unmuted = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/quadrature_demod_cf_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/quadrature_demod_cf_pydoc_template.h
new file mode 100644
index 0000000000..dfcbf84c2c
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/quadrature_demod_cf_pydoc_template.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_quadrature_demod_cf = R"doc()doc";
+
+
+static const char* __doc_gr_analog_quadrature_demod_cf_quadrature_demod_cf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_quadrature_demod_cf_quadrature_demod_cf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_analog_quadrature_demod_cf_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_quadrature_demod_cf_set_gain = R"doc()doc";
+
+
+static const char* __doc_gr_analog_quadrature_demod_cf_gain = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/rail_ff_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/rail_ff_pydoc_template.h
new file mode 100644
index 0000000000..5e170f3c63
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/rail_ff_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_rail_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_rail_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_rail_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_lo = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_hi = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_set_lo = R"doc()doc";
+
+
+static const char* __doc_gr_analog_rail_ff_set_hi = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/random_uniform_source_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/random_uniform_source_pydoc_template.h
new file mode 100644
index 0000000000..08dc9ab6f0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/random_uniform_source_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-analog/python/analog/bindings/docstrings/sig_source_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/sig_source_pydoc_template.h
new file mode 100644
index 0000000000..08dc9ab6f0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/sig_source_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-analog/python/analog/bindings/docstrings/sig_source_waveform_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/sig_source_waveform_pydoc_template.h
new file mode 100644
index 0000000000..08dc9ab6f0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/sig_source_waveform_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-analog/python/analog/bindings/docstrings/simple_squelch_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/simple_squelch_cc_pydoc_template.h
new file mode 100644
index 0000000000..5731dad83c
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/simple_squelch_cc_pydoc_template.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_simple_squelch_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_simple_squelch_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_simple_squelch_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_unmuted = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_set_alpha = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_set_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_threshold = R"doc()doc";
+
+
+static const char* __doc_gr_analog_simple_squelch_cc_squelch_range = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/squelch_base_cc_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/squelch_base_cc_pydoc_template.h
new file mode 100644
index 0000000000..feed7c5ff2
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/squelch_base_cc_pydoc_template.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_squelch_base_cc = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_squelch_base_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_squelch_base_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_set_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_set_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_unmuted = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_cc_squelch_range = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/docstrings/squelch_base_ff_pydoc_template.h b/gr-analog/python/analog/bindings/docstrings/squelch_base_ff_pydoc_template.h
new file mode 100644
index 0000000000..a580247046
--- /dev/null
+++ b/gr-analog/python/analog/bindings/docstrings/squelch_base_ff_pydoc_template.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, analog, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_analog_squelch_base_ff = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_squelch_base_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_squelch_base_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_set_ramp = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_set_gate = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_unmuted = R"doc()doc";
+
+
+static const char* __doc_gr_analog_squelch_base_ff_squelch_range = R"doc()doc";
diff --git a/gr-analog/python/analog/bindings/dpll_bb_python.cc b/gr-analog/python/analog/bindings/dpll_bb_python.cc
new file mode 100644
index 0000000000..33135b3b09
--- /dev/null
+++ b/gr-analog/python/analog/bindings/dpll_bb_python.cc
@@ -0,0 +1,71 @@
+/*
+ * 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(dpll_bb.h) */
+/* BINDTOOL_HEADER_FILE_HASH(f13a506e4ee012fb1e3c9fb71bfacd82) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/dpll_bb.h>
+// pydoc.h is automatically generated in the build directory
+#include <dpll_bb_pydoc.h>
+
+void bind_dpll_bb(py::module& m)
+{
+
+ using dpll_bb = ::gr::analog::dpll_bb;
+
+
+ py::class_<dpll_bb,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<dpll_bb>>(m, "dpll_bb", D(dpll_bb))
+
+ .def(py::init(&dpll_bb::make),
+ py::arg("period"),
+ py::arg("gain"),
+ D(dpll_bb, make))
+
+
+ .def("set_gain", &dpll_bb::set_gain, py::arg("gain"), D(dpll_bb, set_gain))
+
+
+ .def("set_decision_threshold",
+ &dpll_bb::set_decision_threshold,
+ py::arg("thresh"),
+ D(dpll_bb, set_decision_threshold))
+
+
+ .def("gain", &dpll_bb::gain, D(dpll_bb, gain))
+
+
+ .def("freq", &dpll_bb::freq, D(dpll_bb, freq))
+
+
+ .def("phase", &dpll_bb::phase, D(dpll_bb, phase))
+
+
+ .def("decision_threshold",
+ &dpll_bb::decision_threshold,
+ D(dpll_bb, decision_threshold))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/fastnoise_source_python.cc b/gr-analog/python/analog/bindings/fastnoise_source_python.cc
new file mode 100644
index 0000000000..e43184bb63
--- /dev/null
+++ b/gr-analog/python/analog/bindings/fastnoise_source_python.cc
@@ -0,0 +1,62 @@
+/*
+ * 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(fastnoise_source.h) */
+/* BINDTOOL_HEADER_FILE_HASH(a1bcac8382da0203f011bc01e8f42c98) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/fastnoise_source.h>
+
+template <typename T>
+void bind_fastnoise_source_template(py::module& m, const char* classname)
+{
+ using fastnoise_source = gr::analog::fastnoise_source<T>;
+
+ py::class_<fastnoise_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<fastnoise_source>>(m, classname)
+ .def(py::init(&gr::analog::fastnoise_source<T>::make),
+ py::arg("type"),
+ py::arg("ampl"),
+ py::arg("seed") = 0,
+ py::arg("samples") = 1024 * 16)
+
+ .def("sample", &fastnoise_source::sample)
+ .def("sample_unbiased", &fastnoise_source::sample_unbiased)
+ .def("samples", &fastnoise_source::samples)
+
+ .def("set_type", &fastnoise_source::set_type, py::arg("type"))
+ .def("set_amplitude", &fastnoise_source::set_amplitude, py::arg("amplitude"))
+ .def("type", &fastnoise_source::type)
+ .def("amplitude", &fastnoise_source::amplitude)
+
+ ;
+}
+
+void bind_fastnoise_source(py::module& m)
+{
+ bind_fastnoise_source_template<std::int16_t>(m, "fastnoise_source_s");
+ bind_fastnoise_source_template<std::int32_t>(m, "fastnoise_source_i");
+ bind_fastnoise_source_template<float>(m, "fastnoise_source_f");
+ bind_fastnoise_source_template<gr_complex>(m, "fastnoise_source_c");
+}
diff --git a/gr-analog/python/analog/bindings/feedforward_agc_cc_python.cc b/gr-analog/python/analog/bindings/feedforward_agc_cc_python.cc
new file mode 100644
index 0000000000..245a55f487
--- /dev/null
+++ b/gr-analog/python/analog/bindings/feedforward_agc_cc_python.cc
@@ -0,0 +1,50 @@
+/*
+ * 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(feedforward_agc_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(6b9c22fa731776e36f0b2746d83822b3) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/feedforward_agc_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <feedforward_agc_cc_pydoc.h>
+
+void bind_feedforward_agc_cc(py::module& m)
+{
+
+ using feedforward_agc_cc = ::gr::analog::feedforward_agc_cc;
+
+
+ py::class_<feedforward_agc_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<feedforward_agc_cc>>(
+ m, "feedforward_agc_cc", D(feedforward_agc_cc))
+
+ .def(py::init(&feedforward_agc_cc::make),
+ py::arg("nsamples"),
+ py::arg("reference"),
+ D(feedforward_agc_cc, make))
+
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/fmdet_cf_python.cc b/gr-analog/python/analog/bindings/fmdet_cf_python.cc
new file mode 100644
index 0000000000..2e65e0c1a0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/fmdet_cf_python.cc
@@ -0,0 +1,75 @@
+/*
+ * 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(fmdet_cf.h) */
+/* BINDTOOL_HEADER_FILE_HASH(1fe8b834b16ecdc732240db0a090fec7) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/fmdet_cf.h>
+// pydoc.h is automatically generated in the build directory
+#include <fmdet_cf_pydoc.h>
+
+void bind_fmdet_cf(py::module& m)
+{
+
+ using fmdet_cf = ::gr::analog::fmdet_cf;
+
+
+ py::class_<fmdet_cf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<fmdet_cf>>(m, "fmdet_cf", D(fmdet_cf))
+
+ .def(py::init(&fmdet_cf::make),
+ py::arg("samplerate"),
+ py::arg("freq_low"),
+ py::arg("freq_high"),
+ py::arg("scl"),
+ D(fmdet_cf, make))
+
+
+ .def("set_scale", &fmdet_cf::set_scale, py::arg("scl"), D(fmdet_cf, set_scale))
+
+
+ .def("set_freq_range",
+ &fmdet_cf::set_freq_range,
+ py::arg("freq_low"),
+ py::arg("freq_high"),
+ D(fmdet_cf, set_freq_range))
+
+
+ .def("freq", &fmdet_cf::freq, D(fmdet_cf, freq))
+
+
+ .def("freq_high", &fmdet_cf::freq_high, D(fmdet_cf, freq_high))
+
+
+ .def("freq_low", &fmdet_cf::freq_low, D(fmdet_cf, freq_low))
+
+
+ .def("scale", &fmdet_cf::scale, D(fmdet_cf, scale))
+
+
+ .def("bias", &fmdet_cf::bias, D(fmdet_cf, bias))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/frequency_modulator_fc_python.cc b/gr-analog/python/analog/bindings/frequency_modulator_fc_python.cc
new file mode 100644
index 0000000000..abf83d2d5e
--- /dev/null
+++ b/gr-analog/python/analog/bindings/frequency_modulator_fc_python.cc
@@ -0,0 +1,59 @@
+/*
+ * 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(frequency_modulator_fc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(550cd0787306aac8324787fffca29dc4) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/frequency_modulator_fc.h>
+// pydoc.h is automatically generated in the build directory
+#include <frequency_modulator_fc_pydoc.h>
+
+void bind_frequency_modulator_fc(py::module& m)
+{
+
+ using frequency_modulator_fc = ::gr::analog::frequency_modulator_fc;
+
+
+ py::class_<frequency_modulator_fc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<frequency_modulator_fc>>(
+ m, "frequency_modulator_fc", D(frequency_modulator_fc))
+
+ .def(py::init(&frequency_modulator_fc::make),
+ py::arg("sensitivity"),
+ D(frequency_modulator_fc, make))
+
+
+ .def("set_sensitivity",
+ &frequency_modulator_fc::set_sensitivity,
+ py::arg("sens"),
+ D(frequency_modulator_fc, set_sensitivity))
+
+
+ .def("sensitivity",
+ &frequency_modulator_fc::sensitivity,
+ D(frequency_modulator_fc, sensitivity))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/noise_source_python.cc b/gr-analog/python/analog/bindings/noise_source_python.cc
new file mode 100644
index 0000000000..53d214c018
--- /dev/null
+++ b/gr-analog/python/analog/bindings/noise_source_python.cc
@@ -0,0 +1,56 @@
+/*
+ * 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(noise_source.h) */
+/* BINDTOOL_HEADER_FILE_HASH(2885ad90e3649ba18aeab38b6d906b82) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/noise_source.h>
+
+template <typename T>
+void bind_noise_source_template(py::module& m, const char* classname)
+{
+ using noise_source = gr::analog::noise_source<T>;
+
+ py::class_<noise_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<noise_source>>(m, classname)
+ .def(py::init(&gr::analog::noise_source<T>::make),
+ py::arg("type"),
+ py::arg("ampl"),
+ py::arg("seed") = 0)
+
+ .def("set_type", &noise_source::set_type, py::arg("type"))
+ .def("set_amplitude", &noise_source::set_amplitude, py::arg("ampl"))
+
+ .def("type", &noise_source::type)
+ .def("amplitude", &noise_source::amplitude);
+}
+
+void bind_noise_source(py::module& m)
+{
+ bind_noise_source_template<std::int16_t>(m, "noise_source_s");
+ bind_noise_source_template<std::int32_t>(m, "noise_source_i");
+ bind_noise_source_template<float>(m, "noise_source_f");
+ bind_noise_source_template<gr_complex>(m, "noise_source_c");
+}
diff --git a/gr-analog/python/analog/bindings/noise_type_python.cc b/gr-analog/python/analog/bindings/noise_type_python.cc
new file mode 100644
index 0000000000..9a81813bb0
--- /dev/null
+++ b/gr-analog/python/analog/bindings/noise_type_python.cc
@@ -0,0 +1,37 @@
+/*
+ * 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(noise_type.h) */
+/* BINDTOOL_HEADER_FILE_HASH(00c3c3c56203c51ca56f93b2e9a0d21a) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/noise_type.h>
+
+void bind_noise_type(py::module& m)
+{
+
+ py::enum_<gr::analog::noise_type_t>(m, "noise_type_t")
+ .value("GR_UNIFORM", gr::analog::GR_UNIFORM) // 200
+ .value("GR_GAUSSIAN", gr::analog::GR_GAUSSIAN) // 201
+ .value("GR_LAPLACIAN", gr::analog::GR_LAPLACIAN) // 202
+ .value("GR_IMPULSE", gr::analog::GR_IMPULSE) // 203
+ .export_values();
+}
diff --git a/gr-analog/python/analog/bindings/phase_modulator_fc_python.cc b/gr-analog/python/analog/bindings/phase_modulator_fc_python.cc
new file mode 100644
index 0000000000..41aec252e2
--- /dev/null
+++ b/gr-analog/python/analog/bindings/phase_modulator_fc_python.cc
@@ -0,0 +1,68 @@
+/*
+ * 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(phase_modulator_fc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(3a3d52817f6d58610adb269a053e8fa8) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/phase_modulator_fc.h>
+// pydoc.h is automatically generated in the build directory
+#include <phase_modulator_fc_pydoc.h>
+
+void bind_phase_modulator_fc(py::module& m)
+{
+
+ using phase_modulator_fc = ::gr::analog::phase_modulator_fc;
+
+
+ py::class_<phase_modulator_fc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<phase_modulator_fc>>(
+ m, "phase_modulator_fc", D(phase_modulator_fc))
+
+ .def(py::init(&phase_modulator_fc::make),
+ py::arg("sensitivity"),
+ D(phase_modulator_fc, make))
+
+
+ .def("sensitivity",
+ &phase_modulator_fc::sensitivity,
+ D(phase_modulator_fc, sensitivity))
+
+
+ .def("phase", &phase_modulator_fc::phase, D(phase_modulator_fc, phase))
+
+
+ .def("set_sensitivity",
+ &phase_modulator_fc::set_sensitivity,
+ py::arg("s"),
+ D(phase_modulator_fc, set_sensitivity))
+
+
+ .def("set_phase",
+ &phase_modulator_fc::set_phase,
+ py::arg("p"),
+ D(phase_modulator_fc, set_phase))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/pll_carriertracking_cc_python.cc b/gr-analog/python/analog/bindings/pll_carriertracking_cc_python.cc
new file mode 100644
index 0000000000..559a2d61cb
--- /dev/null
+++ b/gr-analog/python/analog/bindings/pll_carriertracking_cc_python.cc
@@ -0,0 +1,155 @@
+/*
+ * 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(pll_carriertracking_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(6a2575e904642d50edec70e0439649ed) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/pll_carriertracking_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <pll_carriertracking_cc_pydoc.h>
+
+void bind_pll_carriertracking_cc(py::module& m)
+{
+
+ using pll_carriertracking_cc = ::gr::analog::pll_carriertracking_cc;
+
+
+ py::class_<pll_carriertracking_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pll_carriertracking_cc>>(
+ m, "pll_carriertracking_cc", D(pll_carriertracking_cc))
+
+ .def(py::init(&pll_carriertracking_cc::make),
+ py::arg("loop_bw"),
+ py::arg("max_freq"),
+ py::arg("min_freq"),
+ D(pll_carriertracking_cc, make))
+
+
+ .def("lock_detector",
+ &pll_carriertracking_cc::lock_detector,
+ D(pll_carriertracking_cc, lock_detector))
+
+
+ .def("squelch_enable",
+ &pll_carriertracking_cc::squelch_enable,
+ py::arg("arg0"),
+ D(pll_carriertracking_cc, squelch_enable))
+
+
+ .def("set_lock_threshold",
+ &pll_carriertracking_cc::set_lock_threshold,
+ py::arg("arg0"),
+ D(pll_carriertracking_cc, set_lock_threshold))
+
+
+ .def("set_loop_bandwidth",
+ &pll_carriertracking_cc::set_loop_bandwidth,
+ py::arg("bw"),
+ D(pll_carriertracking_cc, set_loop_bandwidth))
+
+
+ .def("set_damping_factor",
+ &pll_carriertracking_cc::set_damping_factor,
+ py::arg("df"),
+ D(pll_carriertracking_cc, set_damping_factor))
+
+
+ .def("set_alpha",
+ &pll_carriertracking_cc::set_alpha,
+ py::arg("alpha"),
+ D(pll_carriertracking_cc, set_alpha))
+
+
+ .def("set_beta",
+ &pll_carriertracking_cc::set_beta,
+ py::arg("beta"),
+ D(pll_carriertracking_cc, set_beta))
+
+
+ .def("set_frequency",
+ &pll_carriertracking_cc::set_frequency,
+ py::arg("freq"),
+ D(pll_carriertracking_cc, set_frequency))
+
+
+ .def("set_phase",
+ &pll_carriertracking_cc::set_phase,
+ py::arg("phase"),
+ D(pll_carriertracking_cc, set_phase))
+
+
+ .def("set_min_freq",
+ &pll_carriertracking_cc::set_min_freq,
+ py::arg("freq"),
+ D(pll_carriertracking_cc, set_min_freq))
+
+
+ .def("set_max_freq",
+ &pll_carriertracking_cc::set_max_freq,
+ py::arg("freq"),
+ D(pll_carriertracking_cc, set_max_freq))
+
+
+ .def("get_loop_bandwidth",
+ &pll_carriertracking_cc::get_loop_bandwidth,
+ D(pll_carriertracking_cc, get_loop_bandwidth))
+
+
+ .def("get_damping_factor",
+ &pll_carriertracking_cc::get_damping_factor,
+ D(pll_carriertracking_cc, get_damping_factor))
+
+
+ .def("get_alpha",
+ &pll_carriertracking_cc::get_alpha,
+ D(pll_carriertracking_cc, get_alpha))
+
+
+ .def("get_beta",
+ &pll_carriertracking_cc::get_beta,
+ D(pll_carriertracking_cc, get_beta))
+
+
+ .def("get_frequency",
+ &pll_carriertracking_cc::get_frequency,
+ D(pll_carriertracking_cc, get_frequency))
+
+
+ .def("get_phase",
+ &pll_carriertracking_cc::get_phase,
+ D(pll_carriertracking_cc, get_phase))
+
+
+ .def("get_min_freq",
+ &pll_carriertracking_cc::get_min_freq,
+ D(pll_carriertracking_cc, get_min_freq))
+
+
+ .def("get_max_freq",
+ &pll_carriertracking_cc::get_max_freq,
+ D(pll_carriertracking_cc, get_max_freq))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/pll_freqdet_cf_python.cc b/gr-analog/python/analog/bindings/pll_freqdet_cf_python.cc
new file mode 100644
index 0000000000..dd313bb26d
--- /dev/null
+++ b/gr-analog/python/analog/bindings/pll_freqdet_cf_python.cc
@@ -0,0 +1,131 @@
+/*
+ * 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(pll_freqdet_cf.h) */
+/* BINDTOOL_HEADER_FILE_HASH(7960ba805d99b0ab39271abf8b583d97) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/pll_freqdet_cf.h>
+// pydoc.h is automatically generated in the build directory
+#include <pll_freqdet_cf_pydoc.h>
+
+void bind_pll_freqdet_cf(py::module& m)
+{
+
+ using pll_freqdet_cf = ::gr::analog::pll_freqdet_cf;
+
+
+ py::class_<pll_freqdet_cf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pll_freqdet_cf>>(m, "pll_freqdet_cf", D(pll_freqdet_cf))
+
+ .def(py::init(&pll_freqdet_cf::make),
+ py::arg("loop_bw"),
+ py::arg("max_freq"),
+ py::arg("min_freq"),
+ D(pll_freqdet_cf, make))
+
+
+ .def("set_loop_bandwidth",
+ &pll_freqdet_cf::set_loop_bandwidth,
+ py::arg("bw"),
+ D(pll_freqdet_cf, set_loop_bandwidth))
+
+
+ .def("set_damping_factor",
+ &pll_freqdet_cf::set_damping_factor,
+ py::arg("df"),
+ D(pll_freqdet_cf, set_damping_factor))
+
+
+ .def("set_alpha",
+ &pll_freqdet_cf::set_alpha,
+ py::arg("alpha"),
+ D(pll_freqdet_cf, set_alpha))
+
+
+ .def("set_beta",
+ &pll_freqdet_cf::set_beta,
+ py::arg("beta"),
+ D(pll_freqdet_cf, set_beta))
+
+
+ .def("set_frequency",
+ &pll_freqdet_cf::set_frequency,
+ py::arg("freq"),
+ D(pll_freqdet_cf, set_frequency))
+
+
+ .def("set_phase",
+ &pll_freqdet_cf::set_phase,
+ py::arg("phase"),
+ D(pll_freqdet_cf, set_phase))
+
+
+ .def("set_min_freq",
+ &pll_freqdet_cf::set_min_freq,
+ py::arg("freq"),
+ D(pll_freqdet_cf, set_min_freq))
+
+
+ .def("set_max_freq",
+ &pll_freqdet_cf::set_max_freq,
+ py::arg("freq"),
+ D(pll_freqdet_cf, set_max_freq))
+
+
+ .def("get_loop_bandwidth",
+ &pll_freqdet_cf::get_loop_bandwidth,
+ D(pll_freqdet_cf, get_loop_bandwidth))
+
+
+ .def("get_damping_factor",
+ &pll_freqdet_cf::get_damping_factor,
+ D(pll_freqdet_cf, get_damping_factor))
+
+
+ .def("get_alpha", &pll_freqdet_cf::get_alpha, D(pll_freqdet_cf, get_alpha))
+
+
+ .def("get_beta", &pll_freqdet_cf::get_beta, D(pll_freqdet_cf, get_beta))
+
+
+ .def("get_frequency",
+ &pll_freqdet_cf::get_frequency,
+ D(pll_freqdet_cf, get_frequency))
+
+
+ .def("get_phase", &pll_freqdet_cf::get_phase, D(pll_freqdet_cf, get_phase))
+
+
+ .def("get_min_freq",
+ &pll_freqdet_cf::get_min_freq,
+ D(pll_freqdet_cf, get_min_freq))
+
+
+ .def("get_max_freq",
+ &pll_freqdet_cf::get_max_freq,
+ D(pll_freqdet_cf, get_max_freq))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/pll_refout_cc_python.cc b/gr-analog/python/analog/bindings/pll_refout_cc_python.cc
new file mode 100644
index 0000000000..b7aeb7c33b
--- /dev/null
+++ b/gr-analog/python/analog/bindings/pll_refout_cc_python.cc
@@ -0,0 +1,50 @@
+/*
+ * 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(pll_refout_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(75123dd7fcf8b7f7881cf308daf246ae) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/pll_refout_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <pll_refout_cc_pydoc.h>
+
+void bind_pll_refout_cc(py::module& m)
+{
+
+ using pll_refout_cc = ::gr::analog::pll_refout_cc;
+
+
+ py::class_<pll_refout_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pll_refout_cc>>(m, "pll_refout_cc", D(pll_refout_cc))
+
+ .def(py::init(&pll_refout_cc::make),
+ py::arg("loop_bw"),
+ py::arg("max_freq"),
+ py::arg("min_freq"),
+ D(pll_refout_cc, make))
+
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_c_python.cc b/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_c_python.cc
new file mode 100644
index 0000000000..578bfa7251
--- /dev/null
+++ b/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_c_python.cc
@@ -0,0 +1,75 @@
+/*
+ * 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(probe_avg_mag_sqrd_c.h) */
+/* BINDTOOL_HEADER_FILE_HASH(3af9ee51c7982368854ead610a617187) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/probe_avg_mag_sqrd_c.h>
+// pydoc.h is automatically generated in the build directory
+#include <probe_avg_mag_sqrd_c_pydoc.h>
+
+void bind_probe_avg_mag_sqrd_c(py::module& m)
+{
+
+ using probe_avg_mag_sqrd_c = ::gr::analog::probe_avg_mag_sqrd_c;
+
+
+ py::class_<probe_avg_mag_sqrd_c,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<probe_avg_mag_sqrd_c>>(
+ m, "probe_avg_mag_sqrd_c", D(probe_avg_mag_sqrd_c))
+
+ .def(py::init(&probe_avg_mag_sqrd_c::make),
+ py::arg("threshold_db"),
+ py::arg("alpha") = 1.0E-4,
+ D(probe_avg_mag_sqrd_c, make))
+
+
+ .def("unmuted", &probe_avg_mag_sqrd_c::unmuted, D(probe_avg_mag_sqrd_c, unmuted))
+
+
+ .def("level", &probe_avg_mag_sqrd_c::level, D(probe_avg_mag_sqrd_c, level))
+
+
+ .def("threshold",
+ &probe_avg_mag_sqrd_c::threshold,
+ D(probe_avg_mag_sqrd_c, threshold))
+
+
+ .def("set_alpha",
+ &probe_avg_mag_sqrd_c::set_alpha,
+ py::arg("alpha"),
+ D(probe_avg_mag_sqrd_c, set_alpha))
+
+
+ .def("set_threshold",
+ &probe_avg_mag_sqrd_c::set_threshold,
+ py::arg("decibels"),
+ D(probe_avg_mag_sqrd_c, set_threshold))
+
+
+ .def("reset", &probe_avg_mag_sqrd_c::reset, D(probe_avg_mag_sqrd_c, reset))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_cf_python.cc b/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_cf_python.cc
new file mode 100644
index 0000000000..795c385820
--- /dev/null
+++ b/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_cf_python.cc
@@ -0,0 +1,76 @@
+/*
+ * 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(probe_avg_mag_sqrd_cf.h) */
+/* BINDTOOL_HEADER_FILE_HASH(ab00487308fe0e85ef3d09ffe6bae998) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/probe_avg_mag_sqrd_cf.h>
+// pydoc.h is automatically generated in the build directory
+#include <probe_avg_mag_sqrd_cf_pydoc.h>
+
+void bind_probe_avg_mag_sqrd_cf(py::module& m)
+{
+
+ using probe_avg_mag_sqrd_cf = ::gr::analog::probe_avg_mag_sqrd_cf;
+
+
+ py::class_<probe_avg_mag_sqrd_cf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<probe_avg_mag_sqrd_cf>>(
+ m, "probe_avg_mag_sqrd_cf", D(probe_avg_mag_sqrd_cf))
+
+ .def(py::init(&probe_avg_mag_sqrd_cf::make),
+ py::arg("threshold_db"),
+ py::arg("alpha") = 1.0E-4,
+ D(probe_avg_mag_sqrd_cf, make))
+
+
+ .def(
+ "unmuted", &probe_avg_mag_sqrd_cf::unmuted, D(probe_avg_mag_sqrd_cf, unmuted))
+
+
+ .def("level", &probe_avg_mag_sqrd_cf::level, D(probe_avg_mag_sqrd_cf, level))
+
+
+ .def("threshold",
+ &probe_avg_mag_sqrd_cf::threshold,
+ D(probe_avg_mag_sqrd_cf, threshold))
+
+
+ .def("set_alpha",
+ &probe_avg_mag_sqrd_cf::set_alpha,
+ py::arg("alpha"),
+ D(probe_avg_mag_sqrd_cf, set_alpha))
+
+
+ .def("set_threshold",
+ &probe_avg_mag_sqrd_cf::set_threshold,
+ py::arg("decibels"),
+ D(probe_avg_mag_sqrd_cf, set_threshold))
+
+
+ .def("reset", &probe_avg_mag_sqrd_cf::reset, D(probe_avg_mag_sqrd_cf, reset))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_f_python.cc b/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_f_python.cc
new file mode 100644
index 0000000000..f5ae2a3481
--- /dev/null
+++ b/gr-analog/python/analog/bindings/probe_avg_mag_sqrd_f_python.cc
@@ -0,0 +1,75 @@
+/*
+ * 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(probe_avg_mag_sqrd_f.h) */
+/* BINDTOOL_HEADER_FILE_HASH(52cbd8c7cf42b73b7d0cc4172f2209be) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/probe_avg_mag_sqrd_f.h>
+// pydoc.h is automatically generated in the build directory
+#include <probe_avg_mag_sqrd_f_pydoc.h>
+
+void bind_probe_avg_mag_sqrd_f(py::module& m)
+{
+
+ using probe_avg_mag_sqrd_f = ::gr::analog::probe_avg_mag_sqrd_f;
+
+
+ py::class_<probe_avg_mag_sqrd_f,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<probe_avg_mag_sqrd_f>>(
+ m, "probe_avg_mag_sqrd_f", D(probe_avg_mag_sqrd_f))
+
+ .def(py::init(&probe_avg_mag_sqrd_f::make),
+ py::arg("threshold_db"),
+ py::arg("alpha") = 1.0E-4,
+ D(probe_avg_mag_sqrd_f, make))
+
+
+ .def("unmuted", &probe_avg_mag_sqrd_f::unmuted, D(probe_avg_mag_sqrd_f, unmuted))
+
+
+ .def("level", &probe_avg_mag_sqrd_f::level, D(probe_avg_mag_sqrd_f, level))
+
+
+ .def("threshold",
+ &probe_avg_mag_sqrd_f::threshold,
+ D(probe_avg_mag_sqrd_f, threshold))
+
+
+ .def("set_alpha",
+ &probe_avg_mag_sqrd_f::set_alpha,
+ py::arg("alpha"),
+ D(probe_avg_mag_sqrd_f, set_alpha))
+
+
+ .def("set_threshold",
+ &probe_avg_mag_sqrd_f::set_threshold,
+ py::arg("decibels"),
+ D(probe_avg_mag_sqrd_f, set_threshold))
+
+
+ .def("reset", &probe_avg_mag_sqrd_f::reset, D(probe_avg_mag_sqrd_f, reset))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/pwr_squelch_cc_python.cc b/gr-analog/python/analog/bindings/pwr_squelch_cc_python.cc
new file mode 100644
index 0000000000..6ed96bfd76
--- /dev/null
+++ b/gr-analog/python/analog/bindings/pwr_squelch_cc_python.cc
@@ -0,0 +1,89 @@
+/*
+ * 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(pwr_squelch_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(9a039b4f53e3fc5fce917d466fb459c8) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/pwr_squelch_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <pwr_squelch_cc_pydoc.h>
+
+void bind_pwr_squelch_cc(py::module& m)
+{
+
+ using pwr_squelch_cc = ::gr::analog::pwr_squelch_cc;
+
+
+ py::class_<pwr_squelch_cc,
+ gr::analog::squelch_base_cc,
+ std::shared_ptr<pwr_squelch_cc>>(m, "pwr_squelch_cc", D(pwr_squelch_cc))
+
+ .def(py::init(&pwr_squelch_cc::make),
+ py::arg("db"),
+ py::arg("alpha") = 1.0E-4,
+ py::arg("ramp") = 0,
+ py::arg("gate") = false,
+ D(pwr_squelch_cc, make))
+
+
+ .def("squelch_range",
+ &pwr_squelch_cc::squelch_range,
+ D(pwr_squelch_cc, squelch_range))
+
+
+ .def("threshold", &pwr_squelch_cc::threshold, D(pwr_squelch_cc, threshold))
+
+
+ .def("set_threshold",
+ &pwr_squelch_cc::set_threshold,
+ py::arg("db"),
+ D(pwr_squelch_cc, set_threshold))
+
+
+ .def("set_alpha",
+ &pwr_squelch_cc::set_alpha,
+ py::arg("alpha"),
+ D(pwr_squelch_cc, set_alpha))
+
+
+ .def("ramp", &pwr_squelch_cc::ramp, D(pwr_squelch_cc, ramp))
+
+
+ .def("set_ramp",
+ &pwr_squelch_cc::set_ramp,
+ py::arg("ramp"),
+ D(pwr_squelch_cc, set_ramp))
+
+
+ .def("gate", &pwr_squelch_cc::gate, D(pwr_squelch_cc, gate))
+
+
+ .def("set_gate",
+ &pwr_squelch_cc::set_gate,
+ py::arg("gate"),
+ D(pwr_squelch_cc, set_gate))
+
+
+ .def("unmuted", &pwr_squelch_cc::unmuted, D(pwr_squelch_cc, unmuted))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/pwr_squelch_ff_python.cc b/gr-analog/python/analog/bindings/pwr_squelch_ff_python.cc
new file mode 100644
index 0000000000..c6dabb9f07
--- /dev/null
+++ b/gr-analog/python/analog/bindings/pwr_squelch_ff_python.cc
@@ -0,0 +1,89 @@
+/*
+ * 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(pwr_squelch_ff.h) */
+/* BINDTOOL_HEADER_FILE_HASH(e1c00792c96ef3531cb83bd242fc382d) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/pwr_squelch_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <pwr_squelch_ff_pydoc.h>
+
+void bind_pwr_squelch_ff(py::module& m)
+{
+
+ using pwr_squelch_ff = ::gr::analog::pwr_squelch_ff;
+
+
+ py::class_<pwr_squelch_ff,
+ gr::analog::squelch_base_ff,
+ std::shared_ptr<pwr_squelch_ff>>(m, "pwr_squelch_ff", D(pwr_squelch_ff))
+
+ .def(py::init(&pwr_squelch_ff::make),
+ py::arg("db"),
+ py::arg("alpha") = 1.0E-4,
+ py::arg("ramp") = 0,
+ py::arg("gate") = false,
+ D(pwr_squelch_ff, make))
+
+
+ .def("squelch_range",
+ &pwr_squelch_ff::squelch_range,
+ D(pwr_squelch_ff, squelch_range))
+
+
+ .def("threshold", &pwr_squelch_ff::threshold, D(pwr_squelch_ff, threshold))
+
+
+ .def("set_threshold",
+ &pwr_squelch_ff::set_threshold,
+ py::arg("db"),
+ D(pwr_squelch_ff, set_threshold))
+
+
+ .def("set_alpha",
+ &pwr_squelch_ff::set_alpha,
+ py::arg("alpha"),
+ D(pwr_squelch_ff, set_alpha))
+
+
+ .def("ramp", &pwr_squelch_ff::ramp, D(pwr_squelch_ff, ramp))
+
+
+ .def("set_ramp",
+ &pwr_squelch_ff::set_ramp,
+ py::arg("ramp"),
+ D(pwr_squelch_ff, set_ramp))
+
+
+ .def("gate", &pwr_squelch_ff::gate, D(pwr_squelch_ff, gate))
+
+
+ .def("set_gate",
+ &pwr_squelch_ff::set_gate,
+ py::arg("gate"),
+ D(pwr_squelch_ff, set_gate))
+
+
+ .def("unmuted", &pwr_squelch_ff::unmuted, D(pwr_squelch_ff, unmuted))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/python_bindings.cc b/gr-analog/python/analog/bindings/python_bindings.cc
new file mode 100644
index 0000000000..04969f58f7
--- /dev/null
+++ b/gr-analog/python/analog/bindings/python_bindings.cc
@@ -0,0 +1,106 @@
+
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#include <pybind11/pybind11.h>
+
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+#include <numpy/arrayobject.h>
+
+namespace py = pybind11;
+
+void bind_agc(py::module&);
+void bind_agc2(py::module&);
+void bind_agc2_cc(py::module&);
+void bind_agc2_ff(py::module&);
+void bind_agc3_cc(py::module&);
+void bind_agc_cc(py::module&);
+void bind_agc_ff(py::module&);
+void bind_cpfsk_bc(py::module&);
+void bind_cpm(py::module&);
+void bind_ctcss_squelch_ff(py::module&);
+void bind_dpll_bb(py::module&);
+void bind_fastnoise_source(py::module&);
+void bind_feedforward_agc_cc(py::module&);
+void bind_fmdet_cf(py::module&);
+void bind_frequency_modulator_fc(py::module&);
+void bind_noise_source(py::module&);
+void bind_noise_type(py::module&);
+void bind_phase_modulator_fc(py::module&);
+void bind_pll_carriertracking_cc(py::module&);
+void bind_pll_freqdet_cf(py::module&);
+void bind_pll_refout_cc(py::module&);
+void bind_probe_avg_mag_sqrd_c(py::module&);
+void bind_probe_avg_mag_sqrd_cf(py::module&);
+void bind_probe_avg_mag_sqrd_f(py::module&);
+void bind_pwr_squelch_cc(py::module&);
+void bind_pwr_squelch_ff(py::module&);
+void bind_quadrature_demod_cf(py::module&);
+void bind_rail_ff(py::module&);
+void bind_random_uniform_source(py::module&);
+void bind_sig_source(py::module&);
+void bind_sig_source_waveform(py::module&);
+void bind_simple_squelch_cc(py::module&);
+void bind_squelch_base_cc(py::module&);
+void bind_squelch_base_ff(py::module&);
+
+// We need this hack because import_array() returns NULL
+// for newer Python versions.
+// This function is also necessary because it ensures access to the C API
+// and removes a warning.
+void* init_numpy()
+{
+ import_array();
+ return NULL;
+}
+
+PYBIND11_MODULE(analog_python, m)
+{
+ // Initialize the numpy C API
+ // (otherwise we will see segmentation faults)
+ init_numpy();
+
+ // Allow access to base block methods
+ py::module::import("gnuradio.gr");
+
+ bind_agc(m);
+ // bind_agc2(m);
+ bind_agc2_cc(m);
+ bind_agc2_ff(m);
+ bind_agc3_cc(m);
+ bind_agc_cc(m);
+ bind_agc_ff(m);
+ bind_cpfsk_bc(m);
+ bind_cpm(m);
+ bind_dpll_bb(m);
+ bind_fastnoise_source(m);
+ bind_feedforward_agc_cc(m);
+ bind_fmdet_cf(m);
+ bind_frequency_modulator_fc(m);
+ bind_noise_source(m);
+ bind_noise_type(m);
+ bind_phase_modulator_fc(m);
+ bind_pll_carriertracking_cc(m);
+ bind_pll_freqdet_cf(m);
+ bind_pll_refout_cc(m);
+ bind_probe_avg_mag_sqrd_c(m);
+ bind_probe_avg_mag_sqrd_cf(m);
+ bind_probe_avg_mag_sqrd_f(m);
+ bind_quadrature_demod_cf(m);
+ bind_rail_ff(m);
+ bind_random_uniform_source(m);
+ bind_sig_source(m);
+ bind_sig_source_waveform(m);
+ bind_simple_squelch_cc(m);
+ bind_squelch_base_cc(m);
+ bind_squelch_base_ff(m);
+ bind_ctcss_squelch_ff(m);
+ bind_pwr_squelch_cc(m);
+ bind_pwr_squelch_ff(m);
+}
diff --git a/gr-analog/python/analog/bindings/quadrature_demod_cf_python.cc b/gr-analog/python/analog/bindings/quadrature_demod_cf_python.cc
new file mode 100644
index 0000000000..feb9b95f98
--- /dev/null
+++ b/gr-analog/python/analog/bindings/quadrature_demod_cf_python.cc
@@ -0,0 +1,57 @@
+/*
+ * 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(quadrature_demod_cf.h) */
+/* BINDTOOL_HEADER_FILE_HASH(9487660011983c19714d4fb1d05ee929) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/quadrature_demod_cf.h>
+// pydoc.h is automatically generated in the build directory
+#include <quadrature_demod_cf_pydoc.h>
+
+void bind_quadrature_demod_cf(py::module& m)
+{
+
+ using quadrature_demod_cf = ::gr::analog::quadrature_demod_cf;
+
+
+ py::class_<quadrature_demod_cf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<quadrature_demod_cf>>(
+ m, "quadrature_demod_cf", D(quadrature_demod_cf))
+
+ .def(py::init(&quadrature_demod_cf::make),
+ py::arg("gain"),
+ D(quadrature_demod_cf, make))
+
+
+ .def("set_gain",
+ &quadrature_demod_cf::set_gain,
+ py::arg("gain"),
+ D(quadrature_demod_cf, set_gain))
+
+
+ .def("gain", &quadrature_demod_cf::gain, D(quadrature_demod_cf, gain))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/rail_ff_python.cc b/gr-analog/python/analog/bindings/rail_ff_python.cc
new file mode 100644
index 0000000000..34daedee2e
--- /dev/null
+++ b/gr-analog/python/analog/bindings/rail_ff_python.cc
@@ -0,0 +1,57 @@
+/*
+ * 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(rail_ff.h) */
+/* BINDTOOL_HEADER_FILE_HASH(7b21db8f7cc65bf0109647f328caec0e) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/rail_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <rail_ff_pydoc.h>
+
+void bind_rail_ff(py::module& m)
+{
+
+ using rail_ff = ::gr::analog::rail_ff;
+
+
+ py::class_<rail_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<rail_ff>>(m, "rail_ff", D(rail_ff))
+
+ .def(py::init(&rail_ff::make), py::arg("lo"), py::arg("hi"), D(rail_ff, make))
+
+
+ .def("lo", &rail_ff::lo, D(rail_ff, lo))
+
+
+ .def("hi", &rail_ff::hi, D(rail_ff, hi))
+
+
+ .def("set_lo", &rail_ff::set_lo, py::arg("lo"), D(rail_ff, set_lo))
+
+
+ .def("set_hi", &rail_ff::set_hi, py::arg("hi"), D(rail_ff, set_hi))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/random_uniform_source_python.cc b/gr-analog/python/analog/bindings/random_uniform_source_python.cc
new file mode 100644
index 0000000000..ffbc0afcf2
--- /dev/null
+++ b/gr-analog/python/analog/bindings/random_uniform_source_python.cc
@@ -0,0 +1,49 @@
+/*
+ * 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(random_uniform_source.h) */
+/* BINDTOOL_HEADER_FILE_HASH(c68207de4a594de5cf9a5c21341ac131) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/random_uniform_source.h>
+
+template <typename T>
+void bind_random_uniform_source_template(py::module& m, const char* classname)
+{
+ using random_uniform_source = gr::analog::random_uniform_source<T>;
+
+ py::class_<random_uniform_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<random_uniform_source>>(m, classname)
+ .def(py::init(&gr::analog::random_uniform_source<T>::make),
+ py::arg("minimum"),
+ py::arg("maximum"),
+ py::arg("seed"));
+}
+
+void bind_random_uniform_source(py::module& m)
+{
+ bind_random_uniform_source_template<std::uint8_t>(m, "random_uniform_source_b");
+ bind_random_uniform_source_template<std::int16_t>(m, "random_uniform_source_s");
+ bind_random_uniform_source_template<std::int32_t>(m, "random_uniform_source_i");
+}
diff --git a/gr-analog/python/analog/bindings/sig_source_python.cc b/gr-analog/python/analog/bindings/sig_source_python.cc
new file mode 100644
index 0000000000..c002f75aa3
--- /dev/null
+++ b/gr-analog/python/analog/bindings/sig_source_python.cc
@@ -0,0 +1,68 @@
+/*
+ * 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(sig_source.h) */
+/* BINDTOOL_HEADER_FILE_HASH(43a7b6efe653f8ebf2285ea5732b4c81) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/sig_source.h>
+
+template <typename T>
+void bind_sig_source_template(py::module& m, const char* classname)
+{
+ using sig_source = gr::analog::sig_source<T>;
+
+ py::class_<sig_source,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<sig_source>>(m, classname)
+ .def(py::init(&gr::analog::sig_source<T>::make),
+ py::arg("sampling_freq"),
+ py::arg("waveform"),
+ py::arg("wave_freq"),
+ py::arg("ampl"),
+ py::arg("offset") = 0,
+ py::arg("phase") = 0)
+ .def("sampling_freq", &sig_source::sampling_freq)
+ .def("waveform", &sig_source::waveform)
+ .def("frequency", &sig_source::frequency)
+ .def("amplitude", &sig_source::amplitude)
+ .def("offset", &sig_source::offset)
+ .def("phase", &sig_source::phase)
+
+ .def(
+ "set_sampling_freq", &sig_source::set_sampling_freq, py::arg("sampling_freq"))
+ .def("set_waveform", &sig_source::set_waveform, py::arg("waveform"))
+ .def("set_frequency", &sig_source::set_frequency, py::arg("frequency"))
+ .def("set_amplitude", &sig_source::set_amplitude, py::arg("amplitude"))
+ .def("set_offset", &sig_source::set_offset, py::arg("offset"))
+ .def("set_phase", &sig_source::set_phase, py::arg("phase"));
+}
+
+void bind_sig_source(py::module& m)
+{
+ bind_sig_source_template<std::int8_t>(m, "sig_source_b");
+ bind_sig_source_template<std::int16_t>(m, "sig_source_s");
+ bind_sig_source_template<std::int32_t>(m, "sig_source_i");
+ bind_sig_source_template<float>(m, "sig_source_f");
+ bind_sig_source_template<gr_complex>(m, "sig_source_c");
+}
diff --git a/gr-analog/python/analog/bindings/sig_source_waveform_python.cc b/gr-analog/python/analog/bindings/sig_source_waveform_python.cc
new file mode 100644
index 0000000000..be3ae2fab9
--- /dev/null
+++ b/gr-analog/python/analog/bindings/sig_source_waveform_python.cc
@@ -0,0 +1,39 @@
+/*
+ * 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(sig_source_waveform.h) */
+/* BINDTOOL_HEADER_FILE_HASH(d101b492f60925516a86d3c0cab7c105) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/sig_source_waveform.h>
+
+void bind_sig_source_waveform(py::module& m)
+{
+
+ py::enum_<gr::analog::gr_waveform_t>(m, "gr_waveform_t")
+ .value("GR_CONST_WAVE", gr::analog::GR_CONST_WAVE) // 100
+ .value("GR_SIN_WAVE", gr::analog::GR_SIN_WAVE) // 101
+ .value("GR_COS_WAVE", gr::analog::GR_COS_WAVE) // 102
+ .value("GR_SQR_WAVE", gr::analog::GR_SQR_WAVE) // 103
+ .value("GR_TRI_WAVE", gr::analog::GR_TRI_WAVE) // 104
+ .value("GR_SAW_WAVE", gr::analog::GR_SAW_WAVE) // 105
+ .export_values();
+}
diff --git a/gr-analog/python/analog/bindings/simple_squelch_cc_python.cc b/gr-analog/python/analog/bindings/simple_squelch_cc_python.cc
new file mode 100644
index 0000000000..bcf6cdf086
--- /dev/null
+++ b/gr-analog/python/analog/bindings/simple_squelch_cc_python.cc
@@ -0,0 +1,72 @@
+/*
+ * 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(simple_squelch_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(783bde73814b6714237f8eeda6f0e6d8) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/simple_squelch_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <simple_squelch_cc_pydoc.h>
+
+void bind_simple_squelch_cc(py::module& m)
+{
+
+ using simple_squelch_cc = ::gr::analog::simple_squelch_cc;
+
+
+ py::class_<simple_squelch_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<simple_squelch_cc>>(
+ m, "simple_squelch_cc", D(simple_squelch_cc))
+
+ .def(py::init(&simple_squelch_cc::make),
+ py::arg("threshold_db"),
+ py::arg("alpha"),
+ D(simple_squelch_cc, make))
+
+
+ .def("unmuted", &simple_squelch_cc::unmuted, D(simple_squelch_cc, unmuted))
+
+
+ .def("set_alpha",
+ &simple_squelch_cc::set_alpha,
+ py::arg("alpha"),
+ D(simple_squelch_cc, set_alpha))
+
+
+ .def("set_threshold",
+ &simple_squelch_cc::set_threshold,
+ py::arg("decibels"),
+ D(simple_squelch_cc, set_threshold))
+
+
+ .def("threshold", &simple_squelch_cc::threshold, D(simple_squelch_cc, threshold))
+
+
+ .def("squelch_range",
+ &simple_squelch_cc::squelch_range,
+ D(simple_squelch_cc, squelch_range))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/squelch_base_cc_python.cc b/gr-analog/python/analog/bindings/squelch_base_cc_python.cc
new file mode 100644
index 0000000000..568e0cdd20
--- /dev/null
+++ b/gr-analog/python/analog/bindings/squelch_base_cc_python.cc
@@ -0,0 +1,73 @@
+/*
+ * 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(squelch_base_cc.h) */
+/* BINDTOOL_HEADER_FILE_HASH(a9c95bd15eb924264c2ecab3b5e02963) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/squelch_base_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <squelch_base_cc_pydoc.h>
+
+void bind_squelch_base_cc(py::module& m)
+{
+
+ using squelch_base_cc = ::gr::analog::squelch_base_cc;
+
+
+ py::class_<squelch_base_cc,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<squelch_base_cc>>(m, "squelch_base_cc", D(squelch_base_cc))
+
+ // .def(py::init<>(),D(squelch_base_cc,squelch_base_cc,0))
+ // .def(py::init<gr::analog::squelch_base_cc const &>(), py::arg("arg0"),
+ // D(squelch_base_cc,squelch_base_cc,1)
+ // )
+
+
+ .def("ramp", &squelch_base_cc::ramp, D(squelch_base_cc, ramp))
+
+
+ .def("set_ramp",
+ &squelch_base_cc::set_ramp,
+ py::arg("ramp"),
+ D(squelch_base_cc, set_ramp))
+
+
+ .def("gate", &squelch_base_cc::gate, D(squelch_base_cc, gate))
+
+
+ .def("set_gate",
+ &squelch_base_cc::set_gate,
+ py::arg("gate"),
+ D(squelch_base_cc, set_gate))
+
+
+ .def("unmuted", &squelch_base_cc::unmuted, D(squelch_base_cc, unmuted))
+
+
+ .def("squelch_range",
+ &squelch_base_cc::squelch_range,
+ D(squelch_base_cc, squelch_range))
+
+ ;
+}
diff --git a/gr-analog/python/analog/bindings/squelch_base_ff_python.cc b/gr-analog/python/analog/bindings/squelch_base_ff_python.cc
new file mode 100644
index 0000000000..269145fe7d
--- /dev/null
+++ b/gr-analog/python/analog/bindings/squelch_base_ff_python.cc
@@ -0,0 +1,73 @@
+/*
+ * 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(squelch_base_ff.h) */
+/* BINDTOOL_HEADER_FILE_HASH(abb5217747009085c48490ab2cfc2703) */
+/***********************************************************************************/
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/analog/squelch_base_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <squelch_base_ff_pydoc.h>
+
+void bind_squelch_base_ff(py::module& m)
+{
+
+ using squelch_base_ff = ::gr::analog::squelch_base_ff;
+
+
+ py::class_<squelch_base_ff,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<squelch_base_ff>>(m, "squelch_base_ff", D(squelch_base_ff))
+
+ // .def(py::init<>(),D(squelch_base_ff,squelch_base_ff,0))
+ // .def(py::init<gr::analog::squelch_base_ff const &>(), py::arg("arg0"),
+ // D(squelch_base_ff,squelch_base_ff,1)
+ // )
+
+
+ .def("ramp", &squelch_base_ff::ramp, D(squelch_base_ff, ramp))
+
+
+ .def("set_ramp",
+ &squelch_base_ff::set_ramp,
+ py::arg("ramp"),
+ D(squelch_base_ff, set_ramp))
+
+
+ .def("gate", &squelch_base_ff::gate, D(squelch_base_ff, gate))
+
+
+ .def("set_gate",
+ &squelch_base_ff::set_gate,
+ py::arg("gate"),
+ D(squelch_base_ff, set_gate))
+
+
+ .def("unmuted", &squelch_base_ff::unmuted, D(squelch_base_ff, unmuted))
+
+
+ .def("squelch_range",
+ &squelch_base_ff::squelch_range,
+ D(squelch_base_ff, squelch_range))
+
+ ;
+}
diff --git a/gr-analog/python/analog/fm_demod.py b/gr-analog/python/analog/fm_demod.py
index 7f65591962..17ab5feaf9 100644
--- a/gr-analog/python/analog/fm_demod.py
+++ b/gr-analog/python/analog/fm_demod.py
@@ -15,7 +15,7 @@ from gnuradio import gr, filter
from .fm_emph import fm_deemph
from math import pi
-from . import analog_swig as analog
+from . import analog_python as analog
class fm_demod_cf(gr.hier_block2):
diff --git a/gr-analog/python/analog/nbfm_rx.py b/gr-analog/python/analog/nbfm_rx.py
index 144c5f3e1b..2610bcf97c 100644
--- a/gr-analog/python/analog/nbfm_rx.py
+++ b/gr-analog/python/analog/nbfm_rx.py
@@ -17,7 +17,7 @@ import math
from gnuradio import gr
from gnuradio import filter
-from . import analog_swig as analog
+from . import analog_python as analog
from .fm_emph import fm_deemph
diff --git a/gr-analog/python/analog/nbfm_tx.py b/gr-analog/python/analog/nbfm_tx.py
index 5e2a45d6f5..f728a90f95 100644
--- a/gr-analog/python/analog/nbfm_tx.py
+++ b/gr-analog/python/analog/nbfm_tx.py
@@ -17,7 +17,7 @@ import math
from gnuradio import gr, filter
from .fm_emph import fm_preemph
-from . import analog_swig as analog
+from . import analog_python as analog
class nbfm_tx(gr.hier_block2):
diff --git a/gr-analog/python/analog/qa_sig_source.py b/gr-analog/python/analog/qa_sig_source.py
index 54e408a36e..fc88205922 100644
--- a/gr-analog/python/analog/qa_sig_source.py
+++ b/gr-analog/python/analog/qa_sig_source.py
@@ -24,7 +24,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_const_f(self):
tb = self.tb
- expected_result = (1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5)
+ expected_result = [1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5]
src1 = analog.sig_source_f(1e6, analog.GR_CONST_WAVE, 0, 1.5)
op = blocks.head(gr.sizeof_float, 10)
dst1 = blocks.vector_sink_f()
@@ -36,7 +36,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_const_i(self):
tb = self.tb
- expected_result = (1, 1, 1, 1)
+ expected_result = [1, 1, 1, 1]
src1 = analog.sig_source_i(1e6, analog.GR_CONST_WAVE, 0, 1)
op = blocks.head(gr.sizeof_int, 4)
dst1 = blocks.vector_sink_i()
@@ -48,7 +48,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_const_b(self):
tb = self.tb
- expected_result = (1, 1, 1, 1)
+ expected_result = [1, 1, 1, 1]
src1 = analog.sig_source_b(1e6, analog.GR_CONST_WAVE, 0, 1)
op = blocks.head(gr.sizeof_char, 4)
dst1 = blocks.vector_sink_b()
@@ -61,7 +61,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_sine_f(self):
tb = self.tb
sqrt2 = math.sqrt(2) / 2
- expected_result = (0, sqrt2, 1, sqrt2, 0, -sqrt2, -1, -sqrt2, 0)
+ expected_result = [0, sqrt2, 1, sqrt2, 0, -sqrt2, -1, -sqrt2, 0]
src1 = analog.sig_source_f(8, analog.GR_SIN_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_float, 9)
dst1 = blocks.vector_sink_f()
@@ -75,7 +75,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_sine_b(self):
tb = self.tb
sqrt2 = math.sqrt(2) / 2
- temp_result = (0, sqrt2, 1, sqrt2, 0, -sqrt2, -1, -sqrt2, 0)
+ temp_result = [0, sqrt2, 1, sqrt2, 0, -sqrt2, -1, -sqrt2, 0]
amp = 8
expected_result = tuple([int(z * amp) for z in temp_result])
src1 = analog.sig_source_b(8, analog.GR_SIN_WAVE, 1.0, amp)
@@ -92,7 +92,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_cosine_f(self):
tb = self.tb
sqrt2 = math.sqrt(2) / 2
- expected_result = (1, sqrt2, 0, -sqrt2, -1, -sqrt2, 0, sqrt2, 1)
+ expected_result = [1, sqrt2, 0, -sqrt2, -1, -sqrt2, 0, sqrt2, 1]
src1 = analog.sig_source_f(8, analog.GR_COS_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_float, 9)
dst1 = blocks.vector_sink_f()
@@ -106,7 +106,7 @@ class test_sig_source(gr_unittest.TestCase):
tb = self.tb
sqrt2 = math.sqrt(2) / 2
sqrt2j = 1j * math.sqrt(2) / 2
- expected_result = (1, sqrt2 + sqrt2j, 1j, -sqrt2 + sqrt2j, -1, -sqrt2 - sqrt2j, -1j, sqrt2 - sqrt2j, 1)
+ expected_result = [1, sqrt2 + sqrt2j, 1j, -sqrt2 + sqrt2j, -1, -sqrt2 - sqrt2j, -1j, sqrt2 - sqrt2j, 1]
src1 = analog.sig_source_c(8, analog.GR_COS_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_gr_complex, 9)
dst1 = blocks.vector_sink_c()
@@ -118,7 +118,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_sqr_c(self):
tb = self.tb #arg6 is a bit before -PI/2
- expected_result = (1j, 1j, 0, 0, 1, 1, 1+0j, 1+1j, 1j)
+ expected_result = [1j, 1j, 0, 0, 1, 1, 1+0j, 1+1j, 1j]
src1 = analog.sig_source_c(8, analog.GR_SQR_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_gr_complex, 9)
dst1 = blocks.vector_sink_c()
@@ -130,8 +130,8 @@ class test_sig_source(gr_unittest.TestCase):
def test_tri_c(self):
tb = self.tb
- expected_result = (1+.5j, .75+.75j, .5+1j, .25+.75j, 0+.5j,
- .25+.25j, .5+0j, .75+.25j, 1+.5j)
+ expected_result = [1+.5j, .75+.75j, .5+1j, .25+.75j, 0+.5j,
+ .25+.25j, .5+0j, .75+.25j, 1+.5j]
src1 = analog.sig_source_c(8, analog.GR_TRI_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_gr_complex, 9)
dst1 = blocks.vector_sink_c()
@@ -143,8 +143,8 @@ class test_sig_source(gr_unittest.TestCase):
def test_saw_c(self):
tb = self.tb
- expected_result = (.5+.25j, .625+.375j, .75+.5j, .875+.625j,
- 0+.75j, .125+.875j, .25+1j, .375+.125j, .5+.25j)
+ expected_result = [.5+.25j, .625+.375j, .75+.5j, .875+.625j,
+ 0+.75j, .125+.875j, .25+1j, .375+.125j, .5+.25j]
src1 = analog.sig_source_c(8, analog.GR_SAW_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_gr_complex, 9)
dst1 = blocks.vector_sink_c()
@@ -156,7 +156,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_sqr_f(self):
tb = self.tb
- expected_result = (0, 0, 0, 0, 1, 1, 1, 1, 0)
+ expected_result = [0, 0, 0, 0, 1, 1, 1, 1, 0]
src1 = analog.sig_source_f(8, analog.GR_SQR_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_float, 9)
dst1 = blocks.vector_sink_f()
@@ -168,7 +168,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_tri_f(self):
tb = self.tb
- expected_result = (1, .75, .5, .25, 0, .25, .5, .75, 1)
+ expected_result = [1, .75, .5, .25, 0, .25, .5, .75, 1]
src1 = analog.sig_source_f(8, analog.GR_TRI_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_float, 9)
dst1 = blocks.vector_sink_f()
@@ -180,7 +180,7 @@ class test_sig_source(gr_unittest.TestCase):
def test_saw_f(self):
tb = self.tb
- expected_result = (.5, .625, .75, .875, 0, .125, .25, .375, .5)
+ expected_result = [.5, .625, .75, .875, 0, .125, .25, .375, .5]
src1 = analog.sig_source_f(8, analog.GR_SAW_WAVE, 1.0, 1.0)
op = blocks.head(gr.sizeof_float, 9)
dst1 = blocks.vector_sink_f()
diff --git a/gr-analog/python/analog/wfm_rcv.py b/gr-analog/python/analog/wfm_rcv.py
index e9c2f22bae..f523486e9b 100644
--- a/gr-analog/python/analog/wfm_rcv.py
+++ b/gr-analog/python/analog/wfm_rcv.py
@@ -15,7 +15,7 @@ import math
from gnuradio import gr, filter
-from . import analog_swig as analog
+from . import analog_python as analog
from .fm_emph import fm_deemph
diff --git a/gr-analog/python/analog/wfm_rcv_fmdet.py b/gr-analog/python/analog/wfm_rcv_fmdet.py
index f9ad96f2aa..97f91cd38b 100644
--- a/gr-analog/python/analog/wfm_rcv_fmdet.py
+++ b/gr-analog/python/analog/wfm_rcv_fmdet.py
@@ -17,7 +17,7 @@ from gnuradio import gr
from gnuradio import blocks
from gnuradio import filter
-from . import analog_swig as analog
+from . import analog_python as analog
from .fm_emph import fm_deemph
diff --git a/gr-analog/python/analog/wfm_rcv_pll.py b/gr-analog/python/analog/wfm_rcv_pll.py
index 3268ebbce3..bc5e7c27c7 100644
--- a/gr-analog/python/analog/wfm_rcv_pll.py
+++ b/gr-analog/python/analog/wfm_rcv_pll.py
@@ -17,7 +17,7 @@ from gnuradio import gr
from gnuradio import blocks
from gnuradio import filter
-from . import analog_swig as analog
+from . import analog_python as analog
from .fm_emph import fm_deemph
diff --git a/gr-analog/python/analog/wfm_tx.py b/gr-analog/python/analog/wfm_tx.py
index 9158fcf982..ffd27cb3b8 100644
--- a/gr-analog/python/analog/wfm_tx.py
+++ b/gr-analog/python/analog/wfm_tx.py
@@ -17,7 +17,7 @@ import math
from gnuradio import gr
from gnuradio import filter
-from . import analog_swig as analog
+from . import analog_python as analog
from .fm_emph import fm_preemph
diff --git a/gr-analog/swig/CMakeLists.txt b/gr-analog/swig/CMakeLists.txt
deleted file mode 100644
index ec99ab0784..0000000000
--- a/gr-analog/swig/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2012,2019 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-
-########################################################################
-# Setup swig generation
-########################################################################
-include(GrPython)
-include(GrSwig)
-
-set(GR_SWIG_INCLUDE_DIRS $<TARGET_PROPERTY:runtime_swig,INCLUDE_DIRECTORIES>)
-set(GR_SWIG_TARGET_DEPS runtime_swig)
-
-set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/analog_swig_doc.i)
-set(GR_SWIG_DOC_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/analog
- ${CMAKE_CURRENT_BINARY_DIR}/../include/gnuradio/analog
-)
-set(GR_SWIG_DOCS_TARGET_DEPS runtime_swig_swig_doc)
-set(GR_SWIG_LIBRARIES gnuradio-analog gnuradio-filter)
-
-GR_SWIG_MAKE(analog_swig analog_swig.i)
-
-GR_SWIG_INSTALL(
- TARGETS analog_swig
- DESTINATION ${GR_PYTHON_DIR}/gnuradio/analog
-)
-
-install(
- FILES
- analog_swig.i
- ${CMAKE_CURRENT_BINARY_DIR}/analog_swig_doc.i
- DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
-)
diff --git a/gr-analog/swig/analog_swig.i b/gr-analog/swig/analog_swig.i
deleted file mode 100644
index e484014384..0000000000
--- a/gr-analog/swig/analog_swig.i
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright 2012 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#define ANALOG_API
-#define BLOCKS_API
-
-%include "gnuradio.i"
-%include "stdint.i"
-
-//load generated python docstrings
-%include "analog_swig_doc.i"
-
-%{
-#include <gnuradio/blocks/control_loop.h>
-%}
-%include <gnuradio/blocks/control_loop.h>
-
-%{
-#include "gnuradio/analog/cpm.h"
-#include "gnuradio/analog/noise_type.h"
-#include "gnuradio/analog/agc_cc.h"
-#include "gnuradio/analog/agc_ff.h"
-#include "gnuradio/analog/agc2_cc.h"
-#include "gnuradio/analog/agc2_ff.h"
-#include "gnuradio/analog/agc3_cc.h"
-#include "gnuradio/analog/cpfsk_bc.h"
-#include "gnuradio/analog/ctcss_squelch_ff.h"
-#include "gnuradio/analog/dpll_bb.h"
-#include "gnuradio/analog/feedforward_agc_cc.h"
-#include "gnuradio/analog/fmdet_cf.h"
-#include "gnuradio/analog/frequency_modulator_fc.h"
-#include "gnuradio/analog/fastnoise_source.h"
-#include "gnuradio/analog/noise_source.h"
-#include "gnuradio/analog/phase_modulator_fc.h"
-#include "gnuradio/analog/pll_carriertracking_cc.h"
-#include "gnuradio/analog/pll_freqdet_cf.h"
-#include "gnuradio/analog/pll_refout_cc.h"
-#include "gnuradio/analog/probe_avg_mag_sqrd_c.h"
-#include "gnuradio/analog/probe_avg_mag_sqrd_cf.h"
-#include "gnuradio/analog/probe_avg_mag_sqrd_f.h"
-#include "gnuradio/analog/pwr_squelch_cc.h"
-#include "gnuradio/analog/pwr_squelch_ff.h"
-#include "gnuradio/analog/quadrature_demod_cf.h"
-#include "gnuradio/analog/rail_ff.h"
-#include "gnuradio/analog/sig_source.h"
-#include "gnuradio/analog/sig_source_waveform.h"
-#include "gnuradio/analog/simple_squelch_cc.h"
-#include "gnuradio/analog/squelch_base_cc.h"
-#include "gnuradio/analog/squelch_base_ff.h"
-#include "gnuradio/analog/random_uniform_source.h"
-%}
-
-%include "gnuradio/analog/cpm.h"
-%include "gnuradio/analog/noise_type.h"
-%include "gnuradio/analog/agc_cc.h"
-%include "gnuradio/analog/agc_ff.h"
-%include "gnuradio/analog/agc2_cc.h"
-%include "gnuradio/analog/agc2_ff.h"
-%include "gnuradio/analog/agc3_cc.h"
-%include "gnuradio/analog/cpfsk_bc.h"
-%include "gnuradio/analog/ctcss_squelch_ff.h"
-%include "gnuradio/analog/dpll_bb.h"
-%include "gnuradio/analog/feedforward_agc_cc.h"
-%include "gnuradio/analog/fmdet_cf.h"
-%include "gnuradio/analog/frequency_modulator_fc.h"
-%include "gnuradio/analog/fastnoise_source.h"
-%include "gnuradio/analog/noise_source.h"
-%include "gnuradio/analog/phase_modulator_fc.h"
-%include "gnuradio/analog/pll_carriertracking_cc.h"
-%include "gnuradio/analog/pll_freqdet_cf.h"
-%include "gnuradio/analog/pll_refout_cc.h"
-%include "gnuradio/analog/probe_avg_mag_sqrd_c.h"
-%include "gnuradio/analog/probe_avg_mag_sqrd_cf.h"
-%include "gnuradio/analog/probe_avg_mag_sqrd_f.h"
-%include "gnuradio/analog/pwr_squelch_cc.h"
-%include "gnuradio/analog/pwr_squelch_ff.h"
-%include "gnuradio/analog/quadrature_demod_cf.h"
-%include "gnuradio/analog/rail_ff.h"
-%include "gnuradio/analog/sig_source.h"
-%include "gnuradio/analog/sig_source_waveform.h"
-%include "gnuradio/analog/simple_squelch_cc.h"
-%include "gnuradio/analog/squelch_base_cc.h"
-%include "gnuradio/analog/squelch_base_ff.h"
-%include "gnuradio/analog/random_uniform_source.h"
-
-GR_SWIG_BLOCK_MAGIC2(analog, agc_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, agc_ff);
-GR_SWIG_BLOCK_MAGIC2(analog, agc2_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, agc2_ff);
-GR_SWIG_BLOCK_MAGIC2(analog, agc3_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, cpfsk_bc);
-GR_SWIG_BLOCK_MAGIC2(analog, ctcss_squelch_ff);
-GR_SWIG_BLOCK_MAGIC2(analog, dpll_bb);
-GR_SWIG_BLOCK_MAGIC2(analog, feedforward_agc_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, fmdet_cf);
-GR_SWIG_BLOCK_MAGIC2(analog, frequency_modulator_fc);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, fastnoise_source_s, fastnoise_source<std::int16_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, fastnoise_source_i, fastnoise_source<std::int32_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, fastnoise_source_f, fastnoise_source<float>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, fastnoise_source_c, fastnoise_source<gr_complex>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, noise_source_s, noise_source<std::int16_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, noise_source_i, noise_source<std::int32_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, noise_source_f, noise_source<float>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, noise_source_c, noise_source<gr_complex>);
-GR_SWIG_BLOCK_MAGIC2(analog, phase_modulator_fc);
-GR_SWIG_BLOCK_MAGIC2(analog, pll_carriertracking_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, pll_freqdet_cf);
-GR_SWIG_BLOCK_MAGIC2(analog, pll_refout_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, probe_avg_mag_sqrd_c);
-GR_SWIG_BLOCK_MAGIC2(analog, probe_avg_mag_sqrd_cf);
-GR_SWIG_BLOCK_MAGIC2(analog, probe_avg_mag_sqrd_f);
-GR_SWIG_BLOCK_MAGIC2(analog, pwr_squelch_cc);
-GR_SWIG_BLOCK_MAGIC2(analog, pwr_squelch_ff);
-GR_SWIG_BLOCK_MAGIC2(analog, quadrature_demod_cf);
-GR_SWIG_BLOCK_MAGIC2(analog, rail_ff);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, sig_source_b, sig_source<std::int8_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, sig_source_s, sig_source<std::int16_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, sig_source_i, sig_source<std::int32_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, sig_source_f, sig_source<float>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, sig_source_c, sig_source<gr_complex>);
-GR_SWIG_BLOCK_MAGIC2(analog, simple_squelch_cc);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, random_uniform_source_b, random_uniform_source<std::uint8_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, random_uniform_source_s, random_uniform_source<std::int16_t>);
-GR_SWIG_BLOCK_MAGIC2_TMPL(analog, random_uniform_source_i, random_uniform_source<std::int32_t>);