From patchwork Thu Aug 6 12:53:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 9247 X-Patchwork-Delegate: niklas.soderlund@ragnatech.se 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 BDB73BD87A for ; Thu, 6 Aug 2020 12:53:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 7738F60901; Thu, 6 Aug 2020 14:53:42 +0200 (CEST) Received: from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net [195.74.38.228]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A149F60554 for ; Thu, 6 Aug 2020 14:53:41 +0200 (CEST) X-Halon-ID: d9f3e071-d7e3-11ea-92dc-005056917a89 Authorized-sender: niklas@soderlund.pp.se Received: from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de [84.172.82.168]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA id d9f3e071-d7e3-11ea-92dc-005056917a89; Thu, 06 Aug 2020 14:53:40 +0200 (CEST) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: libcamera-devel@lists.libcamera.org Date: Thu, 6 Aug 2020 14:53:28 +0200 Message-Id: <20200806125330.2983325-2-niklas.soderlund@ragnatech.se> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200806125330.2983325-1-niklas.soderlund@ragnatech.se> References: <20200806125330.2983325-1-niklas.soderlund@ragnatech.se> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/3] libcamera: pipeline_handler: Make cameraData() a const operation 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" There is nothing blocking cameraData() from being a constant operation. The assert already enforces that a std::map::at() operation would always succeed. Switch to using at() and mark the method as a const operation. Signed-off-by: Niklas Söderlund Reviewed-by: Kieran Bingham --- include/libcamera/internal/pipeline_handler.h | 2 +- src/libcamera/pipeline_handler.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index 22e629a8401d1e4e..d5321ef56df358d0 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -96,7 +96,7 @@ protected: virtual int queueRequestDevice(Camera *camera, Request *request) = 0; - CameraData *cameraData(const Camera *camera); + CameraData *cameraData(const Camera *camera) const; CameraManager *manager_; diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index ccd45edc847b9e3f..bc9c1d4b09c5437d 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -595,10 +595,10 @@ void PipelineHandler::disconnect() * valid until the pipeline handler is destroyed. It shall not be deleted * manually by the caller. */ -CameraData *PipelineHandler::cameraData(const Camera *camera) +CameraData *PipelineHandler::cameraData(const Camera *camera) const { ASSERT(cameraData_.count(camera)); - return cameraData_[camera].get(); + return cameraData_.at(camera).get(); } /** From patchwork Thu Aug 6 12:53:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 9248 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 C2003BD87A for ; Thu, 6 Aug 2020 12:53:44 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 981486071B; Thu, 6 Aug 2020 14:53:44 +0200 (CEST) Received: from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net [195.74.38.228]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3069960554 for ; Thu, 6 Aug 2020 14:53:42 +0200 (CEST) X-Halon-ID: da49ac4d-d7e3-11ea-92dc-005056917a89 Authorized-sender: niklas@soderlund.pp.se Received: from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de [84.172.82.168]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA id da49ac4d-d7e3-11ea-92dc-005056917a89; Thu, 06 Aug 2020 14:53:41 +0200 (CEST) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: libcamera-devel@lists.libcamera.org Date: Thu, 6 Aug 2020 14:53:29 +0200 Message-Id: <20200806125330.2983325-3-niklas.soderlund@ragnatech.se> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200806125330.2983325-1-niklas.soderlund@ragnatech.se> References: <20200806125330.2983325-1-niklas.soderlund@ragnatech.se> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 2/3] libcamera: pipeline_handler: Mark controls() and properties() as const operations 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Reading the controls and properties do not modify the pipeline's state and can be marked as const operations. Signed-off-by: Niklas Söderlund Reviewed-by: Kieran Bingham --- include/libcamera/internal/pipeline_handler.h | 4 ++-- src/libcamera/pipeline_handler.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h index d5321ef56df358d0..c4bf1cb68e09d754 100644 --- a/include/libcamera/internal/pipeline_handler.h +++ b/include/libcamera/internal/pipeline_handler.h @@ -68,8 +68,8 @@ public: bool lock(); void unlock(); - const ControlInfoMap &controls(Camera *camera); - const ControlList &properties(Camera *camera); + const ControlInfoMap &controls(const Camera *camera) const; + const ControlList &properties(const Camera *camera) const; virtual CameraConfiguration *generateConfiguration(Camera *camera, const StreamRoles &roles) = 0; diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp index bc9c1d4b09c5437d..d239135872344a20 100644 --- a/src/libcamera/pipeline_handler.cpp +++ b/src/libcamera/pipeline_handler.cpp @@ -257,7 +257,7 @@ void PipelineHandler::unlock() * \context This function is \threadsafe. * \return A ControlInfoMap listing the controls support by \a camera */ -const ControlInfoMap &PipelineHandler::controls(Camera *camera) +const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const { CameraData *data = cameraData(camera); return data->controlInfo_; @@ -268,7 +268,7 @@ const ControlInfoMap &PipelineHandler::controls(Camera *camera) * \param[in] camera The camera * \return A ControlList of properties supported by \a camera */ -const ControlList &PipelineHandler::properties(Camera *camera) +const ControlList &PipelineHandler::properties(const Camera *camera) const { CameraData *data = cameraData(camera); return data->properties_; From patchwork Thu Aug 6 12:53:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 9249 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 363D5BD87A for ; Thu, 6 Aug 2020 12:53:45 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id CE44560914; Thu, 6 Aug 2020 14:53:44 +0200 (CEST) Received: from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net [195.74.38.228]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B140F607EB for ; Thu, 6 Aug 2020 14:53:42 +0200 (CEST) X-Halon-ID: daa52812-d7e3-11ea-92dc-005056917a89 Authorized-sender: niklas@soderlund.pp.se Received: from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de [84.172.82.168]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA id daa52812-d7e3-11ea-92dc-005056917a89; Thu, 06 Aug 2020 14:53:41 +0200 (CEST) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: libcamera-devel@lists.libcamera.org Date: Thu, 6 Aug 2020 14:53:30 +0200 Message-Id: <20200806125330.2983325-4-niklas.soderlund@ragnatech.se> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200806125330.2983325-1-niklas.soderlund@ragnatech.se> References: <20200806125330.2983325-1-niklas.soderlund@ragnatech.se> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 3/3] libcamera: camera: Mark controls() and properties() as const operations 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Reading the controls and properties do not modify the camera's state and can be marked as const operations. Signed-off-by: Niklas Söderlund Reviewed-by: Kieran Bingham --- include/libcamera/camera.h | 4 ++-- src/libcamera/camera.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h index 48d88d64a0a94050..272c12c3c47392fc 100644 --- a/include/libcamera/camera.h +++ b/include/libcamera/camera.h @@ -86,8 +86,8 @@ public: int acquire(); int release(); - const ControlInfoMap &controls(); - const ControlList &properties(); + const ControlInfoMap &controls() const; + const ControlList &properties() const; const std::set &streams() const; std::unique_ptr generateConfiguration(const StreamRoles &roles = {}); diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index 820fa1e3065e5f88..1685697b8ebbebcb 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -658,7 +658,7 @@ int Camera::release() * * \return A ControlInfoMap listing the controls supported by the camera */ -const ControlInfoMap &Camera::controls() +const ControlInfoMap &Camera::controls() const { return p_->pipe_->controls(this); } @@ -671,7 +671,7 @@ const ControlInfoMap &Camera::controls() * * \return A ControlList of properties supported by the camera */ -const ControlList &Camera::properties() +const ControlList &Camera::properties() const { return p_->pipe_->properties(this); }