From cb56cc77233f9a6c9132109f2c1409b21a3c7f2c Mon Sep 17 00:00:00 2001 From: ja-ha <33382963+ja-ha@users.noreply.github.com> Date: Mon, 14 Mar 2022 09:39:36 +0100 Subject: [PATCH] Fix route naming and groups --- src/main.cpp | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 45d7655..424ce87 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -604,9 +604,29 @@ PYBIND11_MODULE(NDIlib, m) { // Processing.NDI.Routing py::class_(m, "RoutingCreate") .def(py::init(), - py::arg("ndi_name") = nullptr, py::arg("groups") = nullptr) - .def_readwrite("ndi_name", &NDIlib_routing_create_t::p_ndi_name) - .def_readwrite("groups", &NDIlib_routing_create_t::p_groups); + py::arg("p_ndi_name") = nullptr, py::arg("p_groups") = nullptr) + .def_property( + "ndi_name", + [](const NDIlib_routing_create_t &self) { + auto ustr = PyUnicode_DecodeLocale(self.p_ndi_name, nullptr); + return py::reinterpret_steal(ustr); + }, + [](NDIlib_routing_create_t &self, const char *name) { + static std::unordered_map strs; + strs[&self] = py::str(name); + self.p_ndi_name = strs[&self].c_str(); + }) + .def_property( + "groups", + [](const NDIlib_routing_create_t &self) { + auto ustr = PyUnicode_DecodeLocale(self.p_groups, nullptr); + return py::reinterpret_steal(ustr); + }, + [](NDIlib_routing_create_t &self, const std::string &groups) { + static std::unordered_map strs; + strs[&self] = py::str(groups); + self.p_groups = strs[&self].c_str(); + }); m.def("routing_create", &NDIlib_routing_create, py::arg("create_settings"));