[PATCH v1] libcamera: camera_manager: Take camera id in `std::string_view`

Barnabás Pőcze barnabas.pocze at ideasonboard.com
Mon Mar 31 17:09:00 CEST 2025


Do not force the caller to have an `std::string` object as a
simple string view is sufficient to do the lookup.

Signed-off-by: Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
---
 include/libcamera/camera_manager.h   | 3 ++-
 src/libcamera/camera_manager.cpp     | 2 +-
 src/py/libcamera/py_camera_manager.h | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
index b50df7825..27835500f 100644
--- a/include/libcamera/camera_manager.h
+++ b/include/libcamera/camera_manager.h
@@ -9,6 +9,7 @@
 
 #include <memory>
 #include <string>
+#include <string_view>
 #include <sys/types.h>
 #include <vector>
 
@@ -31,7 +32,7 @@ public:
 	void stop();
 
 	std::vector<std::shared_ptr<Camera>> cameras() const;
-	std::shared_ptr<Camera> get(const std::string &id);
+	std::shared_ptr<Camera> get(std::string_view id);
 
 	static const std::string &version() { return version_; }
 
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index b28bd0bd2..e62e7193c 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -381,7 +381,7 @@ std::vector<std::shared_ptr<Camera>> CameraManager::cameras() const
  *
  * \return Shared pointer to Camera object or nullptr if camera not found
  */
-std::shared_ptr<Camera> CameraManager::get(const std::string &id)
+std::shared_ptr<Camera> CameraManager::get(std::string_view id)
 {
 	Private *const d = _d();
 
diff --git a/src/py/libcamera/py_camera_manager.h b/src/py/libcamera/py_camera_manager.h
index 3574db236..af69b915e 100644
--- a/src/py/libcamera/py_camera_manager.h
+++ b/src/py/libcamera/py_camera_manager.h
@@ -20,7 +20,7 @@ public:
 	~PyCameraManager();
 
 	pybind11::list cameras();
-	std::shared_ptr<Camera> get(const std::string &name) { return cameraManager_->get(name); }
+	std::shared_ptr<Camera> get(std::string_view name) { return cameraManager_->get(name); }
 
 	static const std::string &version() { return CameraManager::version(); }
 
-- 
2.49.0



More information about the libcamera-devel mailing list