uhd/host/python/pyuhd.cpp
Martin Braun 1fe98e8701 uhd: Replace usage of boost smart pointers with C++11 counterparts
This removes the following Boost constructs:
- boost::shared_ptr, boost::weak_ptr
- boost::enable_shared_from_this
- boost::static_pointer_cast, boost::dynamic_pointer_cast

The appropriate includes were also removed. All C++11 versions of these
require #include <memory>.
Note that the stdlib and Boost versions have the exact same syntax, they
only differ in the namespace (boost vs. std). The modifications were all
done using sed, with the exception of boost::scoped_ptr, which was
replaced by std::unique_ptr.

References to boost::smart_ptr were also removed.

boost::intrusive_ptr is not removed in this commit, since it does not
have a 1:1 mapping to a C++11 construct.
2019-11-26 12:21:32 -08:00

76 lines
1.9 KiB
C++

//
// Copyright 2017-2018 Ettus Research, a National Instruments Company
// Copyright 2019 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#include <pybind11/pybind11.h>
#include <pybind11/complex.h>
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include <numpy/arrayobject.h>
namespace py = pybind11;
#include "stream_python.hpp"
#include "types/types_python.hpp"
#include "types/serial_python.hpp"
#include "types/time_spec_python.hpp"
#include "types/metadata_python.hpp"
#include "types/sensors_python.hpp"
#include "types/filters_python.hpp"
#include "types/tune_python.hpp"
#include "usrp/fe_connection_python.hpp"
#include "usrp/dboard_iface_python.hpp"
#include "usrp/subdev_spec_python.hpp"
#include "usrp/multi_usrp_python.hpp"
// 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.
#if PY_MAJOR_VERSION >= 3
void* init_numpy()
{
import_array();
return NULL;
}
#else
void init_numpy()
{
import_array();
}
#endif
PYBIND11_MODULE(libpyuhd, m)
{
// Initialize the numpy C API
// (otherwise we will see segmentation faults)
init_numpy();
// Register types submodule
auto types_module = m.def_submodule("types", "UHD Types");
export_types(types_module);
export_time_spec(types_module);
export_spi_config(types_module);
export_metadata(types_module);
export_sensors(types_module);
export_tune(types_module);
// Register usrp submodule
auto usrp_module = m.def_submodule("usrp", "USRP Objects");
export_multi_usrp(usrp_module);
export_subdev_spec(usrp_module);
export_dboard_iface(usrp_module);
export_fe_connection(usrp_module);
export_stream(usrp_module);
// Register filters submodule
auto filters_module = m.def_submodule("filters", "Filter Submodule");
export_filters(filters_module);
}