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

Message ID 20200718132324.867815-5-niklas.soderlund@ragnatech.se
State Accepted
Headers show
Series
  • libcamera: camera: Add camera ID
Related show

Commit Message

Niklas Söderlund July 18, 2020, 1:23 p.m. UTC
Before adding a camera to the CameraManager ensure the camera ID is
unique.

Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
---
 src/libcamera/camera_manager.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

Patch

diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index f60491d2c1a7500f..4d23d601e1fc8a28 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -183,6 +183,13 @@  void CameraManager::Private::addCamera(std::shared_ptr<Camera> camera,
 				<< camera->name() << "'";
 			break;
 		}
+
+		if (c->id() == camera->id()) {
+			LOG(Camera, Error)
+				<< "Skipped registering camera with duplicated ID '"
+				<< camera->id() << "'";
+			return;
+		}
 	}
 
 	cameras_.push_back(std::move(camera));