diff --git a/src/PySendCreate.cpp b/src/PySendCreate.cpp new file mode 100644 index 0000000..c122150 --- /dev/null +++ b/src/PySendCreate.cpp @@ -0,0 +1,27 @@ +#include "PySendCreate.hpp" + +PySendCreate::PySendCreate(const std::string &ndi_name_, + const std::string &groupds_, bool clock_video_, + bool clock_audio_) + : _ndi_name(ndi_name_), _groups(groupds_) { + p_ndi_name = _ndi_name.c_str(); + p_groups = _groups.c_str(); + clock_video = clock_video_; + clock_audio = clock_audio_; +} + +PySendCreate::~PySendCreate() {} + +const std::string &PySendCreate::getNdiName() const { return _ndi_name; } + +void PySendCreate::setNdiName(const std::string &name) { + _ndi_name = name; + p_ndi_name = _ndi_name.c_str(); +} + +const std::string &PySendCreate::getGroups() const { return _groups; } + +void PySendCreate::setGroups(const std::string &groups) { + _groups = groups; + p_groups = _groups.c_str(); +} diff --git a/src/PySendCreate.hpp b/src/PySendCreate.hpp new file mode 100644 index 0000000..873b4ae --- /dev/null +++ b/src/PySendCreate.hpp @@ -0,0 +1,20 @@ +#include + +#include + +class PySendCreate : public NDIlib_send_create_t { +public: + PySendCreate(const std::string &ndi_name_, const std::string &groups_, + bool clock_video_, bool clock_audio_); + virtual ~PySendCreate(); + + const std::string &getNdiName() const; + void setNdiName(const std::string &name); + + const std::string &getGroups() const; + void setGroups(const std::string &groups); + +private: + std::string _ndi_name; + std::string _groups; +}; diff --git a/src/main.cpp b/src/main.cpp index e91d06f..39a4e99 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,6 +3,7 @@ #include "PyAudioFrame.hpp" #include "PyMetadataFrame.hpp" +#include "PySendCreate.hpp" #include "PySource.hpp" #include "PyVideoFrame.hpp" @@ -436,14 +437,16 @@ PYBIND11_MODULE(NDIlib, m) { py::arg("instance"), py::arg("times")); // Processing.NDI.Send - py::class_(m, "SendCreate") - .def(py::init(), + py::class_(m, "SendCreate") + .def(py::init(), py::arg("ndi_name") = nullptr, py::arg("groups") = nullptr, py::arg("clock_video") = true, py::arg("clock_audio") = true) - .def_readwrite("ndi_name", &NDIlib_send_create_t::p_ndi_name) - .def_readwrite("groups", &NDIlib_send_create_t::p_groups) - .def_readwrite("clock_video", &NDIlib_send_create_t::clock_video) - .def_readwrite("clock_audio", &NDIlib_send_create_t::clock_audio); + .def_property("ndi_name", &PySendCreate::getNdiName, + &PySendCreate::setNdiName) + .def_property("groups", &PySendCreate::getGroups, + &PySendCreate::setGroups) + .def_readwrite("clock_video", &PySendCreate::clock_video) + .def_readwrite("clock_audio", &PySendCreate::clock_audio); m.def("send_create", &NDIlib_send_create, py::arg("create_settings") = nullptr);