Skip to content

Commit 0cf02f6

Browse files
Merge pull request #314 from luxonis/develop
Release v2.7.2.0
2 parents 4a36b56 + 4d82a4b commit 0cf02f6

File tree

3 files changed

+37
-10
lines changed

3 files changed

+37
-10
lines changed

depthai-core

Submodule depthai-core updated 41 files

src/DataQueueBindings.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ void DataQueueBindings::bind(pybind11::module& m){
3131
};
3232
py::class_<DataOutputQueue, std::shared_ptr<DataOutputQueue>>(m, "DataOutputQueue", DOC(dai, DataOutputQueue))
3333
.def("getName", &DataOutputQueue::getName, DOC(dai, DataOutputQueue, getName))
34+
.def("isClosed", &DataOutputQueue::isClosed, DOC(dai, DataOutputQueue, isClosed))
35+
.def("close", &DataOutputQueue::close, DOC(dai, DataOutputQueue, close))
3436

3537
.def("addCallback", addCallbackLambda, py::arg("callback"), DOC(dai, DataOutputQueue, addCallback))
3638
.def("addCallback", addCallbackLambda, py::arg("callback"), DOC(dai, DataOutputQueue, addCallback, 2))
@@ -92,6 +94,8 @@ void DataQueueBindings::bind(pybind11::module& m){
9294

9395
// Bind DataInputQueue
9496
py::class_<DataInputQueue, std::shared_ptr<DataInputQueue>>(m, "DataInputQueue", DOC(dai, DataInputQueue))
97+
.def("isClosed", &DataInputQueue::isClosed, DOC(dai, DataInputQueue, isClosed))
98+
.def("close", &DataInputQueue::close, DOC(dai, DataInputQueue, close))
9599
.def("getName", &DataInputQueue::getName, DOC(dai, DataInputQueue, getName))
96100
.def("setBlocking", &DataInputQueue::setBlocking, py::arg("blocking"), DOC(dai, DataInputQueue, setBlocking))
97101
.def("getBlocking", &DataInputQueue::getBlocking, DOC(dai, DataInputQueue, getBlocking))

src/pipeline/NodeBindings.cpp

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "NodeBindings.hpp"
22

33
#include "depthai/pipeline/Node.hpp"
4+
#include "depthai/pipeline/Pipeline.hpp"
45
#include "depthai/pipeline/node/XLinkIn.hpp"
56
#include "depthai/pipeline/node/XLinkOut.hpp"
67
#include "depthai/pipeline/node/ColorCamera.hpp"
@@ -29,23 +30,30 @@ void NodeBindings::bind(pybind11::module& m){
2930

3031
// Base 'Node' class binding
3132
py::class_<Node, std::shared_ptr<Node>> pyNode(m, "Node", DOC(dai, Node));
32-
pyNode
33-
.def_readonly("id", &Node::id, DOC(dai, Node, id))
34-
.def("getName", &Node::getName, DOC(dai, Node, getName))
35-
.def("getOutputs", &Node::getOutputs, DOC(dai, Node, getOutputs))
36-
.def("getInputs", &Node::getInputs, DOC(dai, Node, getInputs))
37-
.def("getAssets", &Node::getAssets, DOC(dai, Node, getAssets))
38-
;
33+
3934

4035
// Node::Input bindings
41-
py::class_<Node::Input>(pyNode, "Input", DOC(dai, Node, Input))
36+
py::class_<Node::Input> pyInput(pyNode, "Input", DOC(dai, Node, Input));
37+
py::enum_<Node::Input::Type>(pyInput, "Type")
38+
.value("SReceiver", Node::Input::Type::SReceiver)
39+
.value("MReceiver", Node::Input::Type::MReceiver)
40+
;
41+
pyInput
42+
.def_property_readonly("name", [](const Node::Input& input){ return input.name; })
43+
.def_property_readonly("type", [](const Node::Input& input){ return input.type; })
4244
.def("setBlocking", &Node::Input::setBlocking, py::arg("blocking"), DOC(dai, Node, Input, setBlocking))
4345
.def("getBlocking", &Node::Input::getBlocking, DOC(dai, Node, Input, getBlocking))
4446
.def("setQueueSize", &Node::Input::setQueueSize, py::arg("size"), DOC(dai, Node, Input, setQueueSize))
4547
.def("getQueueSize", &Node::Input::getQueueSize, DOC(dai, Node, Input, getQueueSize))
4648
;
49+
4750
// Node::Output bindings
48-
py::class_<Node::Output>(pyNode, "Output", DOC(dai, Node, Output))
51+
py::class_<Node::Output> pyOutput(pyNode, "Output", DOC(dai, Node, Output));
52+
py::enum_<Node::Output::Type>(pyOutput, "Type")
53+
.value("MSender", Node::Output::Type::MSender)
54+
.value("SSender", Node::Output::Type::SSender)
55+
;
56+
pyOutput
4957
.def("canConnect", &Node::Output::canConnect, py::arg("in"), DOC(dai, Node, Output, canConnect))
5058
.def("link", &Node::Output::link, py::arg("in"), DOC(dai, Node, Output, link))
5159
.def("unlink", &Node::Output::unlink, py::arg("in"), DOC(dai, Node, Output, unlink))
@@ -61,6 +69,21 @@ void NodeBindings::bind(pybind11::module& m){
6169
.def_property("inputId", [](Node::Connection& conn) { return conn.inputId; }, [](Node::Connection& conn, Node::Id id) {conn.inputId = id; }, DOC(dai, Node, Connection, inputId))
6270
.def_property("inputName", [](Node::Connection& conn) { return conn.inputName; }, [](Node::Connection& conn, std::string name) {conn.inputName = name; }, DOC(dai, Node, Connection, inputName))
6371
;
72+
73+
pyNode
74+
.def_readonly("id", &Node::id, DOC(dai, Node, id))
75+
.def("getName", &Node::getName, DOC(dai, Node, getName))
76+
.def("getOutputs", &Node::getOutputs, DOC(dai, Node, getOutputs))
77+
.def("getInputs", &Node::getInputs, DOC(dai, Node, getInputs))
78+
.def("getAssets", &Node::getAssets, DOC(dai, Node, getAssets))
79+
.def("getOutputRefs", static_cast<std::vector< Node::Output*> (Node::*)()>(&Node::getOutputRefs), DOC(dai, Node, getOutputRefs), py::return_value_policy::reference_internal)
80+
.def("getInputRefs", static_cast<std::vector<Node::Input*> (Node::*)()>(&Node::getInputRefs), DOC(dai, Node, getInputRefs), py::return_value_policy::reference_internal)
81+
.def("getOutputRefs", static_cast<std::vector<const Node::Output*> (Node::*)() const>(&Node::getOutputRefs), DOC(dai, Node, getOutputRefs), py::return_value_policy::reference_internal)
82+
.def("getInputRefs", static_cast<std::vector<const Node::Input*> (Node::*)() const>(&Node::getInputRefs), DOC(dai, Node, getInputRefs), py::return_value_policy::reference_internal)
83+
.def("getParentPipeline", py::overload_cast<>(&Node::getParentPipeline), DOC(dai, Node, getParentPipeline))
84+
.def("getParentPipeline", py::overload_cast<>(&Node::getParentPipeline, py::const_), DOC(dai, Node, getParentPipeline))
85+
;
86+
6487
// MSVC errors out with:
6588
// Error C2326 'void NodeBindings::bind(pybind11::module &)': function cannot access 'dai::Node::Connection::outputId'
6689
// ...

0 commit comments

Comments
 (0)