From patchwork Sun Feb 23 23:03:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 22832 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 3BA03BDB13 for ; Sun, 23 Feb 2025 23:04:51 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 83147686D0; Mon, 24 Feb 2025 00:04:50 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="OOeTzBRX"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4B95D686D0 for ; Mon, 24 Feb 2025 00:04:34 +0100 (CET) Received: from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi [81.175.209.231]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 3CBA682A for ; Mon, 24 Feb 2025 00:03:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1740351788; bh=6tckMhzC0uVNDmkxqvJVwatpEZglEX66035geRe0AIo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=OOeTzBRXIgImeP1BOEX1zKU65maV2jWzv7avV+fhKGpqLgWtrpn2VQvoCIE0kSXtA KRzuoG15SOcMos4T7GZ6NQwt7SAB0aok7XgB0nI9r0XcI5eNnafmC7Ubicj1gDyj7p 7WgQ8zS4xwLTJhsZONt+KcPb7TSwnrq5yIq0XcsA= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH 10/15] libipa: awb: Provide read-only accessor to modes_ Date: Mon, 24 Feb 2025 01:03:58 +0200 Message-ID: <20250223230403.1226-11-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.45.3 In-Reply-To: <20250223230403.1226-1-laurent.pinchart@ideasonboard.com> References: <20250223230403.1226-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 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" Derived classes don't need to modify the modes_ member variable. Make it private and provide a read-only accessor. Signed-off-by: Laurent Pinchart --- src/ipa/libipa/awb.cpp | 6 +++--- src/ipa/libipa/awb.h | 6 +++++- src/ipa/libipa/awb_bayes.cpp | 6 +++--- src/ipa/libipa/awb_bayes.h | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/ipa/libipa/awb.cpp b/src/ipa/libipa/awb.cpp index 04cf2d55ed00..0f54655d3234 100644 --- a/src/ipa/libipa/awb.cpp +++ b/src/ipa/libipa/awb.cpp @@ -250,9 +250,9 @@ int AwbAlgorithm::parseModeConfigs(const YamlObject &tuningData, */ /** - * \var AwbAlgorithm::modes_ - * \brief Map of all configured modes - * \sa AwbAlgorithm::parseModeConfigs + * \fn AwbAlgorithm::modes() + * \brief Get the available AWB modes + * \return The map of available AWB modes */ } /* namespace ipa */ diff --git a/src/ipa/libipa/awb.h b/src/ipa/libipa/awb.h index 36c05c37f5e9..017b7a0c3dc1 100644 --- a/src/ipa/libipa/awb.h +++ b/src/ipa/libipa/awb.h @@ -54,9 +54,13 @@ protected: double ctLo; }; - std::map modes_; + const std::map &modes() const + { + return modes_; + } private: + std::map modes_; ControlInfoMap::Map controls_; }; diff --git a/src/ipa/libipa/awb_bayes.cpp b/src/ipa/libipa/awb_bayes.cpp index 9287b884cb95..97bd256526a4 100644 --- a/src/ipa/libipa/awb_bayes.cpp +++ b/src/ipa/libipa/awb_bayes.cpp @@ -170,7 +170,7 @@ int AwbBayes::init(const YamlObject &tuningData) << "Failed to parse mode parameter from tuning file"; return ret; } - currentMode_ = &modes_[controls::AwbAuto]; + currentMode_ = &modes().at(controls::AwbAuto); transversePos_ = tuningData["transversePos"].get(0.01); transverseNeg_ = tuningData["transverseNeg"].get(0.01); @@ -256,8 +256,8 @@ void AwbBayes::handleControls(const ControlList &controls) { auto mode = controls.get(controls::AwbMode); if (mode) { - auto it = modes_.find(static_cast(*mode)); - if (it != modes_.end()) + auto it = modes().find(static_cast(*mode)); + if (it != modes().end()) currentMode_ = &it->second; else LOG(Awb, Error) << "Unsupported AWB mode " << *mode; diff --git a/src/ipa/libipa/awb_bayes.h b/src/ipa/libipa/awb_bayes.h index 23bf88061118..b74201b542fb 100644 --- a/src/ipa/libipa/awb_bayes.h +++ b/src/ipa/libipa/awb_bayes.h @@ -59,7 +59,7 @@ private: double transversePos_; double transverseNeg_; - ModeConfig *currentMode_ = nullptr; + const ModeConfig *currentMode_ = nullptr; }; } /* namespace ipa */