From patchwork Wed Apr 19 08:58:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 18542 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id BA424C32A5 for ; Wed, 19 Apr 2023 08:58:35 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DBF95627C4; Wed, 19 Apr 2023 10:58:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1681894713; bh=H6kBlsFt1NnH5Lv5onqRluHkOb6OG781rOzuvIckdeA=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=Y53fj45Y8qvTP1MaFD3lXRf0md7RyXrXoj2uWPTV66hJgAEodVctYDQYLE2FukV7q ZlJMuDXBxDvdkQ1IFEqhK0QlebJfaObQ/qusvdy94zSJPrmvoft2nU5YsMx4PL1H20 YuWKQ7qwhjm3nZ2nikTydqE4Dy9R/vfTbZilu0J0DH4WJylAKWlmsHJcJtCwJVtHnB 37EQeX00B0P/xTSrZr7VvUz8P5c/hGtRA5Gd+/bwiix1kiB5LP9dGx+xQmK9E5CHKN bjKF41id9EtdQclVloedSzsv0Jn+sHYpbEdToLcAlD2fNmO3vhRaQZ+MXXWjVs7NlU bgQUh7rqCZWyA== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 0823F627AB for ; Wed, 19 Apr 2023 10:58:31 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="GLOUqCqX"; dkim-atps=neutral Received: from Monstersaurus.tail69b4.ts.net (aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net [82.37.23.78]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6D5D612F; Wed, 19 Apr 2023 10:58:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1681894704; bh=H6kBlsFt1NnH5Lv5onqRluHkOb6OG781rOzuvIckdeA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GLOUqCqXZQ+LWqzB5/IEyxRHLEW+aoI7uifbbt+tCnd06KGZidqrLTMLQrHfBaGaE uavzna/4OizKqRWWTGFceNUrlMXrSp4adYrSuW/SVEHWZxLGJ2a430zsrzAaZnfi8x /wIk6ZyC2AkzroAS05RJYWargy6Oi5+lrIVzYOy8= To: libcamera devel Date: Wed, 19 Apr 2023 09:58:21 +0100 Message-Id: <20230419085821.2682901-4-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230419085821.2682901-1-kieran.bingham@ideasonboard.com> References: <20230419085821.2682901-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 3/3] libcamera: pipeline: Register device numbers with camera X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Kieran Bingham via libcamera-devel From: Kieran Bingham Reply-To: Kieran Bingham Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Register the identified device numbers with each camera as the Devices property. This facilitates camera daemons or other systems to identify which devices are being managed by libcamera, and can prevent duplication of camera resources. Signed-off-by: Kieran Bingham --- src/libcamera/pipeline_handler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index f72613b8e515..66e7def51cd1 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include "libcamera/internal/camera.h" #include "libcamera/internal/device_enumerator.h" @@ -624,6 +625,13 @@ void PipelineHandler::registerCamera(std::shared_ptr camera) } } + /* + * Store the associated devices as a property of the camera to allow + * systems to identify which devices are managed by libcamera. + */ + Camera::Private *data = camera->_d(); + data->properties_.set(properties::Devices, devnums); + manager_->addCamera(std::move(camera), devnums); }