[libcamera-devel,v6,9/9] libcamera: camera_manager: Enforce unique camera IDs

Message ID 20200803211733.1037019-10-niklas.soderlund@ragnatech.se
State Superseded
Headers show
Series
  • libcamera: Generate unique and stable camera IDs
Related show

Commit Message

Niklas Söderlund Aug. 3, 2020, 9:17 p.m. UTC
The camera ID is documented that it should be unique but it's not
enforced. Change this by refusing to add cameras to the CameraManager
that would create two cameras with the exact same ID.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
---
* Changes since v5
- Rename 'name' to 'id'.
- Make error Fatal.

* Changes since v4
- Update string in error message.

* Changes since v3
- Update commit message.
---
 src/libcamera/camera_manager.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Patch

diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index 76543b6aac8df9c4..47d56256abd6d490 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -182,10 +182,10 @@  void CameraManager::Private::addCamera(std::shared_ptr<Camera> camera,
 
 	for (std::shared_ptr<Camera> c : cameras_) {
 		if (c->id() == camera->id()) {
-			LOG(Camera, Warning)
-				<< "Registering camera with duplicate ID '"
+			LOG(Camera, Fatal)
+				<< "Trying to register a camera with a duplicated ID '"
 				<< camera->id() << "'";
-			break;
+			return;
 		}
 	}