summaryrefslogtreecommitdiff
path: root/gr-analog/python/analog/bindings/cpm_python.cc
blob: 83786019b0e7707ba9aa01b33eea92bb3548add8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
 * Copyright 2020 Free Software Foundation, Inc.
 *
 * This file is part of GNU Radio
 *
 * SPDX-License-Identifier: GPL-3.0-or-later
 *
 */

/* This file is automatically generated using bindtool */

#include <pybind11/complex.h>
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>

namespace py = pybind11;

#include <gnuradio/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));
}