|
| 1 | +#include "NodeBindings.hpp" |
| 2 | +#include "Common.hpp" |
| 3 | + |
| 4 | +#include "depthai/pipeline/Pipeline.hpp" |
| 5 | +#include "depthai/pipeline/Node.hpp" |
| 6 | +#include "depthai/pipeline/node/ColorCamera.hpp" |
| 7 | + |
| 8 | +void bind_colorcamera(pybind11::module& m, void* pCallstack){ |
| 9 | + |
| 10 | + using namespace dai; |
| 11 | + using namespace dai::node; |
| 12 | + |
| 13 | + // Node and Properties declare upfront |
| 14 | + py::class_<ColorCameraProperties> colorCameraProperties(m, "ColorCameraProperties", DOC(dai, ColorCameraProperties)); |
| 15 | + py::enum_<ColorCameraProperties::SensorResolution> colorCameraPropertiesSensorResolution(colorCameraProperties, "SensorResolution", DOC(dai, ColorCameraProperties, SensorResolution)); |
| 16 | + py::enum_<ColorCameraProperties::ColorOrder> colorCameraPropertiesColorOrder(colorCameraProperties, "ColorOrder", DOC(dai, ColorCameraProperties, ColorOrder)); |
| 17 | + auto colorCamera = ADD_NODE(ColorCamera); |
| 18 | + |
| 19 | + /////////////////////////////////////////////////////////////////////// |
| 20 | + /////////////////////////////////////////////////////////////////////// |
| 21 | + /////////////////////////////////////////////////////////////////////// |
| 22 | + // Call the rest of the type defines, then perform the actual bindings |
| 23 | + Callstack* callstack = (Callstack*) pCallstack; |
| 24 | + auto cb = callstack->top(); |
| 25 | + callstack->pop(); |
| 26 | + cb(m, pCallstack); |
| 27 | + // Actual bindings |
| 28 | + /////////////////////////////////////////////////////////////////////// |
| 29 | + /////////////////////////////////////////////////////////////////////// |
| 30 | + /////////////////////////////////////////////////////////////////////// |
| 31 | + |
| 32 | + // ColorCamera Properties |
| 33 | + colorCameraPropertiesSensorResolution |
| 34 | + .value("THE_1080_P", ColorCameraProperties::SensorResolution::THE_1080_P) |
| 35 | + .value("THE_4_K", ColorCameraProperties::SensorResolution::THE_4_K) |
| 36 | + .value("THE_12_MP", ColorCameraProperties::SensorResolution::THE_12_MP) |
| 37 | + .value("THE_13_MP", ColorCameraProperties::SensorResolution::THE_13_MP) |
| 38 | + .value("THE_720_P", ColorCameraProperties::SensorResolution::THE_720_P) |
| 39 | + .value("THE_800_P", ColorCameraProperties::SensorResolution::THE_800_P) |
| 40 | + ; |
| 41 | + |
| 42 | + colorCameraPropertiesColorOrder |
| 43 | + .value("BGR", ColorCameraProperties::ColorOrder::BGR) |
| 44 | + .value("RGB", ColorCameraProperties::ColorOrder::RGB) |
| 45 | + ; |
| 46 | + |
| 47 | + colorCameraProperties |
| 48 | + .def_readwrite("initialControl", &ColorCameraProperties::initialControl) |
| 49 | + .def_readwrite("boardSocket", &ColorCameraProperties::boardSocket) |
| 50 | + .def_readwrite("imageOrientation", &ColorCameraProperties::imageOrientation) |
| 51 | + .def_readwrite("colorOrder", &ColorCameraProperties::colorOrder) |
| 52 | + .def_readwrite("interleaved", &ColorCameraProperties::interleaved) |
| 53 | + .def_readwrite("fp16", &ColorCameraProperties::fp16) |
| 54 | + .def_readwrite("previewHeight", &ColorCameraProperties::previewHeight) |
| 55 | + .def_readwrite("previewWidth", &ColorCameraProperties::previewWidth) |
| 56 | + .def_readwrite("videoHeight", &ColorCameraProperties::videoHeight) |
| 57 | + .def_readwrite("videoWidth", &ColorCameraProperties::videoWidth) |
| 58 | + .def_readwrite("stillHeight", &ColorCameraProperties::stillHeight) |
| 59 | + .def_readwrite("stillWidth", &ColorCameraProperties::stillWidth) |
| 60 | + .def_readwrite("resolution", &ColorCameraProperties::resolution) |
| 61 | + .def_readwrite("fps", &ColorCameraProperties::fps) |
| 62 | + .def_readwrite("sensorCropX", &ColorCameraProperties::sensorCropX) |
| 63 | + .def_readwrite("sensorCropY", &ColorCameraProperties::sensorCropY) |
| 64 | + .def_readwrite("previewKeepAspectRatio", &ColorCameraProperties::previewKeepAspectRatio) |
| 65 | + .def_readwrite("ispScale", &ColorCameraProperties::ispScale) |
| 66 | + .def_readwrite("numFramesPoolRaw", &ColorCameraProperties::numFramesPoolRaw) |
| 67 | + .def_readwrite("numFramesPoolIsp", &ColorCameraProperties::numFramesPoolIsp) |
| 68 | + .def_readwrite("numFramesPoolVideo", &ColorCameraProperties::numFramesPoolVideo) |
| 69 | + .def_readwrite("numFramesPoolPreview", &ColorCameraProperties::numFramesPoolPreview) |
| 70 | + .def_readwrite("numFramesPoolStill", &ColorCameraProperties::numFramesPoolStill) |
| 71 | + ; |
| 72 | + |
| 73 | + // ColorCamera node |
| 74 | + colorCamera |
| 75 | + .def_readonly("inputConfig", &ColorCamera::inputConfig, DOC(dai, node, ColorCamera, inputConfig)) |
| 76 | + .def_readonly("inputControl", &ColorCamera::inputControl, DOC(dai, node, ColorCamera, inputControl)) |
| 77 | + .def_readonly("initialControl", &ColorCamera::initialControl, DOC(dai, node, ColorCamera, initialControl)) |
| 78 | + .def_readonly("video", &ColorCamera::video, DOC(dai, node, ColorCamera, video)) |
| 79 | + .def_readonly("preview", &ColorCamera::preview, DOC(dai, node, ColorCamera, preview)) |
| 80 | + .def_readonly("still", &ColorCamera::still, DOC(dai, node, ColorCamera, still)) |
| 81 | + .def_readonly("isp", &ColorCamera::isp, DOC(dai, node, ColorCamera, isp)) |
| 82 | + .def_readonly("raw", &ColorCamera::raw, DOC(dai, node, ColorCamera, raw)) |
| 83 | + .def("setCamId", [](ColorCamera& c, int64_t id) { |
| 84 | + // Issue an deprecation warning |
| 85 | + PyErr_WarnEx(PyExc_DeprecationWarning, "setCamId() is deprecated, use setBoardSocket() instead.", 1); |
| 86 | + HEDLEY_DIAGNOSTIC_PUSH |
| 87 | + HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED |
| 88 | + c.setCamId(id); |
| 89 | + HEDLEY_DIAGNOSTIC_POP |
| 90 | + }) |
| 91 | + .def("getCamId", [](ColorCamera& c) { |
| 92 | + // Issue an deprecation warning |
| 93 | + PyErr_WarnEx(PyExc_DeprecationWarning, "getCamId() is deprecated, use getBoardSocket() instead.", 1); |
| 94 | + HEDLEY_DIAGNOSTIC_PUSH |
| 95 | + HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED |
| 96 | + return c.getCamId(); |
| 97 | + HEDLEY_DIAGNOSTIC_POP |
| 98 | + }) |
| 99 | + .def("setBoardSocket", &ColorCamera::setBoardSocket, py::arg("boardSocket"), DOC(dai, node, ColorCamera, setBoardSocket)) |
| 100 | + .def("getBoardSocket", &ColorCamera::getBoardSocket, DOC(dai, node, ColorCamera, getBoardSocket)) |
| 101 | + .def("setImageOrientation", &ColorCamera::setImageOrientation, py::arg("imageOrientation"), DOC(dai, node, ColorCamera, setImageOrientation)) |
| 102 | + .def("getImageOrientation", &ColorCamera::getImageOrientation, DOC(dai, node, ColorCamera, getImageOrientation)) |
| 103 | + .def("setColorOrder", &ColorCamera::setColorOrder, py::arg("colorOrder"), DOC(dai, node, ColorCamera, setColorOrder)) |
| 104 | + .def("getColorOrder", &ColorCamera::getColorOrder, DOC(dai, node, ColorCamera, getColorOrder)) |
| 105 | + .def("setInterleaved", &ColorCamera::setInterleaved, py::arg("interleaved"), DOC(dai, node, ColorCamera, setInterleaved)) |
| 106 | + .def("getInterleaved", &ColorCamera::getInterleaved, DOC(dai, node, ColorCamera, getInterleaved)) |
| 107 | + .def("setFp16", &ColorCamera::setFp16, py::arg("fp16"), DOC(dai, node, ColorCamera, setFp16)) |
| 108 | + .def("getFp16", &ColorCamera::getFp16, DOC(dai, node, ColorCamera, getFp16)) |
| 109 | + .def("setPreviewSize", static_cast<void(ColorCamera::*)(int,int)>(&ColorCamera::setPreviewSize), py::arg("width"), py::arg("height"), DOC(dai, node, ColorCamera, setPreviewSize)) |
| 110 | + .def("setPreviewSize", static_cast<void(ColorCamera::*)(std::tuple<int,int>)>(&ColorCamera::setPreviewSize), py::arg("size"), DOC(dai, node, ColorCamera, setPreviewSize, 2)) |
| 111 | + .def("setVideoSize", static_cast<void(ColorCamera::*)(int,int)>(&ColorCamera::setVideoSize), py::arg("width"), py::arg("height"), DOC(dai, node, ColorCamera, setVideoSize)) |
| 112 | + .def("setVideoSize", static_cast<void(ColorCamera::*)(std::tuple<int,int>)>(&ColorCamera::setVideoSize), py::arg("size"), DOC(dai, node, ColorCamera, setVideoSize, 2)) |
| 113 | + .def("setStillSize", static_cast<void(ColorCamera::*)(int,int)>(&ColorCamera::setStillSize), py::arg("width"), py::arg("height"), DOC(dai, node, ColorCamera, setStillSize)) |
| 114 | + .def("setStillSize", static_cast<void(ColorCamera::*)(std::tuple<int,int>)>(&ColorCamera::setStillSize), py::arg("size"), DOC(dai, node, ColorCamera, setStillSize, 2)) |
| 115 | + .def("setResolution", &ColorCamera::setResolution, py::arg("resolution"), DOC(dai, node, ColorCamera, setResolution)) |
| 116 | + .def("getResolution", &ColorCamera::getResolution, DOC(dai, node, ColorCamera, getResolution)) |
| 117 | + .def("setFps", &ColorCamera::setFps, py::arg("fps"), DOC(dai, node, ColorCamera, setFps)) |
| 118 | + .def("getFps", &ColorCamera::getFps, DOC(dai, node, ColorCamera, getFps)) |
| 119 | + .def("getPreviewSize", &ColorCamera::getPreviewSize, DOC(dai, node, ColorCamera, getPreviewSize)) |
| 120 | + .def("getPreviewWidth", &ColorCamera::getPreviewWidth, DOC(dai, node, ColorCamera, getPreviewWidth)) |
| 121 | + .def("getPreviewHeight", &ColorCamera::getPreviewHeight, DOC(dai, node, ColorCamera, getPreviewHeight)) |
| 122 | + .def("getVideoSize", &ColorCamera::getVideoSize, DOC(dai, node, ColorCamera, getVideoSize)) |
| 123 | + .def("getVideoWidth", &ColorCamera::getVideoWidth, DOC(dai, node, ColorCamera, getVideoWidth)) |
| 124 | + .def("getVideoHeight", &ColorCamera::getVideoHeight, DOC(dai, node, ColorCamera, getVideoHeight)) |
| 125 | + .def("getStillSize", &ColorCamera::getStillSize, DOC(dai, node, ColorCamera, getStillSize)) |
| 126 | + .def("getStillWidth", &ColorCamera::getStillWidth, DOC(dai, node, ColorCamera, getStillWidth)) |
| 127 | + .def("getStillHeight", &ColorCamera::getStillHeight, DOC(dai, node, ColorCamera, getStillHeight)) |
| 128 | + .def("getResolutionSize", &ColorCamera::getResolutionSize, DOC(dai, node, ColorCamera, getResolutionSize)) |
| 129 | + .def("getResolutionWidth", &ColorCamera::getResolutionWidth, DOC(dai, node, ColorCamera, getResolutionWidth)) |
| 130 | + .def("getResolutionHeight", &ColorCamera::getResolutionHeight, DOC(dai, node, ColorCamera, getResolutionHeight)) |
| 131 | + .def("sensorCenterCrop", &ColorCamera::sensorCenterCrop, DOC(dai, node, ColorCamera, sensorCenterCrop)) |
| 132 | + .def("setSensorCrop", &ColorCamera::setSensorCrop, py::arg("x"), py::arg("y"), DOC(dai, node, ColorCamera, setSensorCrop)) |
| 133 | + .def("getSensorCrop", &ColorCamera::getSensorCrop, DOC(dai, node, ColorCamera, getSensorCrop)) |
| 134 | + .def("getSensorCropX", &ColorCamera::getSensorCropX, DOC(dai, node, ColorCamera, getSensorCropX)) |
| 135 | + .def("getSensorCropY", &ColorCamera::getSensorCropY, DOC(dai, node, ColorCamera, getSensorCropY)) |
| 136 | + |
| 137 | + .def("setWaitForConfigInput", [](ColorCamera& cam, bool wait){ |
| 138 | + // Issue a deprecation warning |
| 139 | + PyErr_WarnEx(PyExc_DeprecationWarning, "Use 'inputConfig.setWaitForMessage()' instead", 1); |
| 140 | + HEDLEY_DIAGNOSTIC_PUSH |
| 141 | + HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED |
| 142 | + cam.setWaitForConfigInput(wait); |
| 143 | + HEDLEY_DIAGNOSTIC_POP |
| 144 | + }, py::arg("wait"), DOC(dai, node, ColorCamera, setWaitForConfigInput)) |
| 145 | + |
| 146 | + .def("getWaitForConfigInput", [](ColorCamera& cam){ |
| 147 | + // Issue a deprecation warning |
| 148 | + PyErr_WarnEx(PyExc_DeprecationWarning, "Use 'inputConfig.setWaitForMessage()' instead", 1); |
| 149 | + HEDLEY_DIAGNOSTIC_PUSH |
| 150 | + HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED |
| 151 | + return cam.getWaitForConfigInput(); |
| 152 | + HEDLEY_DIAGNOSTIC_POP |
| 153 | + }, DOC(dai, node, ColorCamera, getWaitForConfigInput)) |
| 154 | + |
| 155 | + .def("setPreviewKeepAspectRatio", &ColorCamera::setPreviewKeepAspectRatio, py::arg("keep"), DOC(dai, node, ColorCamera, setPreviewKeepAspectRatio)) |
| 156 | + .def("getPreviewKeepAspectRatio", &ColorCamera::getPreviewKeepAspectRatio, DOC(dai, node, ColorCamera, getPreviewKeepAspectRatio)) |
| 157 | + .def("setIspScale", static_cast<void(ColorCamera::*)(int,int)>(&ColorCamera::setIspScale), py::arg("numerator"), py::arg("denominator"), DOC(dai, node, ColorCamera, setIspScale)) |
| 158 | + .def("setIspScale", static_cast<void(ColorCamera::*)(std::tuple<int,int>)>(&ColorCamera::setIspScale), py::arg("scale"), DOC(dai, node, ColorCamera, setIspScale, 2)) |
| 159 | + .def("setIspScale", static_cast<void(ColorCamera::*)(int,int,int,int)>(&ColorCamera::setIspScale), py::arg("horizNum"), py::arg("horizDenom"), py::arg("vertNum"), py::arg("vertDenom"), DOC(dai, node, ColorCamera, setIspScale, 3)) |
| 160 | + .def("setIspScale", static_cast<void(ColorCamera::*)(std::tuple<int,int>,std::tuple<int,int>)>(&ColorCamera::setIspScale), py::arg("horizScale"), py::arg("vertScale"), DOC(dai, node, ColorCamera, setIspScale, 4)) |
| 161 | + .def("getIspSize", &ColorCamera::getIspSize, DOC(dai, node, ColorCamera, getIspSize)) |
| 162 | + .def("getIspWidth", &ColorCamera::getIspWidth, DOC(dai, node, ColorCamera, getIspWidth)) |
| 163 | + .def("getIspHeight", &ColorCamera::getIspHeight, DOC(dai, node, ColorCamera, getIspHeight)) |
| 164 | + |
| 165 | + .def("setPreviewNumFramesPool", &ColorCamera::setPreviewNumFramesPool, DOC(dai, node, ColorCamera, setPreviewNumFramesPool)) |
| 166 | + .def("setVideoNumFramesPool", &ColorCamera::setVideoNumFramesPool, DOC(dai, node, ColorCamera, setVideoNumFramesPool)) |
| 167 | + .def("setStillNumFramesPool", &ColorCamera::setStillNumFramesPool, DOC(dai, node, ColorCamera, setStillNumFramesPool)) |
| 168 | + .def("setRawNumFramesPool", &ColorCamera::setRawNumFramesPool, DOC(dai, node, ColorCamera, setRawNumFramesPool)) |
| 169 | + .def("setIspNumFramesPool", &ColorCamera::setIspNumFramesPool, DOC(dai, node, ColorCamera, setIspNumFramesPool)) |
| 170 | + .def("setNumFramesPool", &ColorCamera::setNumFramesPool, py::arg("raw"), py::arg("isp"), py::arg("preview"), py::arg("video"), py::arg("still"), DOC(dai, node, ColorCamera, setNumFramesPool)) |
| 171 | + |
| 172 | + .def("getPreviewNumFramesPool", &ColorCamera::getPreviewNumFramesPool, DOC(dai, node, ColorCamera, getPreviewNumFramesPool)) |
| 173 | + .def("getVideoNumFramesPool", &ColorCamera::getVideoNumFramesPool, DOC(dai, node, ColorCamera, getVideoNumFramesPool)) |
| 174 | + .def("getStillNumFramesPool", &ColorCamera::getStillNumFramesPool, DOC(dai, node, ColorCamera, getStillNumFramesPool)) |
| 175 | + .def("getRawNumFramesPool", &ColorCamera::getRawNumFramesPool, DOC(dai, node, ColorCamera, getRawNumFramesPool)) |
| 176 | + .def("getIspNumFramesPool", &ColorCamera::getIspNumFramesPool, DOC(dai, node, ColorCamera, getIspNumFramesPool)) |
| 177 | + ; |
| 178 | + // ALIAS |
| 179 | + daiNodeModule.attr("ColorCamera").attr("Properties") = colorCameraProperties; |
| 180 | + |
| 181 | +} |
0 commit comments