15
15
// Map of python node classes and call to pipeline to create it
16
16
extern std::vector<std::pair<py::handle, std::function<std::shared_ptr<dai::Node>(dai::Pipeline&, py::object class_)>>> pyNodeCreateMap;
17
17
extern py::handle daiNodeModule;
18
+ extern py::handle daiNodeInternalModule;
18
19
19
20
template <typename T, typename DERIVED = dai::DeviceNode>
20
21
py::class_<T, DERIVED, std::shared_ptr<T>> addNode (const char * name, const char * docstring = nullptr ) {
@@ -23,6 +24,13 @@ py::class_<T, DERIVED, std::shared_ptr<T>> addNode(const char* name, const char*
23
24
return node;
24
25
}
25
26
27
+ template <typename T, typename DERIVED = dai::DeviceNode>
28
+ py::class_<T, DERIVED, std::shared_ptr<T>> addNodeInternal (const char * name, const char * docstring = nullptr ) {
29
+ auto node = py::class_<T, DERIVED, std::shared_ptr<T>>(daiNodeInternalModule, name, docstring);
30
+ pyNodeCreateMap.push_back (std::make_pair (node, [](dai::Pipeline& p, py::object class_) { return p.create <T>(); }));
31
+ return node;
32
+ }
33
+
26
34
template <typename T, typename DERIVED = dai::DeviceNode>
27
35
py::class_<T, DERIVED, std::shared_ptr<T>> addNodeAbstract (const char * name, const char * docstring = nullptr ) {
28
36
auto node = py::class_<T, DERIVED, std::shared_ptr<T>>(daiNodeModule, name, docstring);
@@ -36,7 +44,8 @@ py::class_<T, DERIVED, std::shared_ptr<T>> addNodeAbstract(const char* name, con
36
44
// Macro helpers
37
45
#define ADD_NODE (NodeName ) addNode<NodeName>(#NodeName, DOC(dai, node, NodeName))
38
46
#define ADD_NODE_DERIVED (NodeName, Derived ) addNode<NodeName, Derived>(#NodeName, DOC(dai, node, NodeName))
47
+ #define ADD_NODE_INTERNAL (NodeName ) addNodeInternal<NodeName>(#NodeName, DOC(dai, node, internal, NodeName))
39
48
#define ADD_NODE_ABSTRACT (NodeName ) addNodeAbstract<NodeName>(#NodeName, DOC(dai, node, NodeName))
40
49
#define ADD_NODE_DERIVED_ABSTRACT (NodeName, Derived ) addNodeAbstract<NodeName, Derived>(#NodeName, DOC(dai, node, NodeName))
41
50
#define ADD_NODE_DOC (NodeName, docstring ) addNode<NodeName>(#NodeName, docstring)
42
- #define ADD_NODE_DERIVED_DOC (NodeName, Derived, docstring ) addNode<NodeName, Derived>(#NodeName, docstring)
51
+ #define ADD_NODE_DERIVED_DOC (NodeName, Derived, docstring ) addNode<NodeName, Derived>(#NodeName, docstring)
0 commit comments