[PATCH v2 3/3] py: Add bindings for ControlId vendor information

Paul Elder paul.elder at ideasonboard.com
Wed Oct 16 13:19:43 CEST 2024


Add python bindings for quering vendor information from a ControlId.
While at it, update __repr__ so that it also prints the vendor.

Example usage:
>>> cid
libcamera.ControlId(20, libcamera.Saturation, ControlType.Float)
>>> cid.vendor
'libcamera'

Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
---
Changes in v2:
- reorder code so vendor comes immediately after name
- update repr
---
 src/py/libcamera/py_main.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/py/libcamera/py_main.cpp b/src/py/libcamera/py_main.cpp
index 983b76f6e998..09b6f9db0650 100644
--- a/src/py/libcamera/py_main.cpp
+++ b/src/py/libcamera/py_main.cpp
@@ -399,11 +399,12 @@ PYBIND11_MODULE(_libcamera, m)
 	pyControlId
 		.def_property_readonly("id", &ControlId::id)
 		.def_property_readonly("name", &ControlId::name)
+		.def_property_readonly("vendor", &ControlId::vendor)
 		.def_property_readonly("type", &ControlId::type)
 		.def("__str__", [](const ControlId &self) { return self.name(); })
 		.def("__repr__", [](const ControlId &self) {
-			return py::str("libcamera.ControlId({}, {}, {})")
-				.format(self.id(), self.name(), self.type());
+			return py::str("libcamera.ControlId({}, {}.{}, {})")
+				.format(self.id(), self.vendor(), self.name(), self.type());
 		})
 		.def("enumerators", &ControlId::enumerators);
 
-- 
2.39.2



More information about the libcamera-devel mailing list