{"id":16777,"url":"https://patchwork.libcamera.org/api/patches/16777/?format=json","web_url":"https://patchwork.libcamera.org/patch/16777/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20220726124549.1646-5-naush@raspberrypi.com>","date":"2022-07-26T12:45:36","name":"[libcamera-devel,04/17] DNI: ipa: raspberrypi: Code refactoring to match style guidelines","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"f8f63fdc15875b37c3ea40cbd46cb77eab71e335","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/?format=json","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/16777/mbox/","series":[{"id":3325,"url":"https://patchwork.libcamera.org/api/series/3325/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=3325","date":"2022-07-26T12:45:32","name":"Raspberry Pi IPA code refactor","version":1,"mbox":"https://patchwork.libcamera.org/series/3325/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/16777/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/16777/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B5ECAC3275\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Jul 2022 12:46:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3A03863323;\n\tTue, 26 Jul 2022 14:46:04 +0200 (CEST)","from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com\n\t[IPv6:2a00:1450:4864:20::42e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F21BD63319\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jul 2022 14:45:59 +0200 (CEST)","by mail-wr1-x42e.google.com with SMTP id q18so9567158wrx.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jul 2022 05:45:59 -0700 (PDT)","from naush-laptop.localdomain ([93.93.133.154])\n\tby smtp.gmail.com with ESMTPSA id\n\ty17-20020adfd091000000b0021e87ec980bsm5948460wrh.84.2022.07.26.05.45.57\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 26 Jul 2022 05:45:58 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1658839564;\n\tbh=oEWRyRbyLHxq6LFJOxT8d2X2oKGyLFH3Fzs/ju41rTQ=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=B2T3Um7C7gQL+ZTYwyTobOa+HP7ZAfufShS6Xf/RNeK+vcbRca4svBzccXbdQn+rv\n\thmL6jBbikp7oR6bjfHJpVRUTkmRlR6KD6w4C6O7FhqO/KzKwiX5fhIUHEfIXTIi2hl\n\to8dSe1/SCfOJQnbnVvM8aPrb7d8R5sIppNNCu0UK+G6155tVUCLVrFrJYVfIPHGhjc\n\tVqtu5b4TywhNb2ijsk9uw80AZZ/NnSl1p5tKwB9w9coTcXayUwM+mLOGQ2FH1wGj/y\n\tgU2Xc2KNOH3X+scKqqmEiqKbPM1KpkTXHZ7gTttoP8Kc0cAW3xxdEdPijEB48Gh0vV\n\thFHEPDGgQm9mQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references\n\t:mime-version:content-transfer-encoding;\n\tbh=gYLDbh2GP4m2hCvp53O4AJR2v4fto8jA2l+PNoYLPQ8=;\n\tb=gBons4uTH79KFYqMo1fcqcnXf8kx9xl8r+rnrjdiduDqiWRM/11Q1g2PAuaQaYW+LL\n\tEzV8aA3JrKJCgua+IWx4/ahDqNpfW1fPvrrAO6oLVfJA/mEdQKetfE/K461yivpduLYZ\n\ti7QEVhcfaKb6DZFMS9biEPmV1W2RqNN3G4+g3OBxsF1+bGBWyrzOhwUCKeh7/J5dXWGm\n\t0HXheQ111aq5RED7r9tzWsS2R1OTVddwRMPd6mRlY4UJGsFrw3xczxlKELpkvf5FHyza\n\tqxvr/zF67HnUvFvuxW1RN9mYhVjQ+/zlcP0X4/u0COa6zFfDi3EALdsL3zmHL2WtxZAl\n\tDWXg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"gBons4uT\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-transfer-encoding;\n\tbh=gYLDbh2GP4m2hCvp53O4AJR2v4fto8jA2l+PNoYLPQ8=;\n\tb=NvhlkeIlvw5Vy5Q7DdSWyVU7Ap3mPCEY9i4OXzyPua8FR2Qdb62rEMiNukzyEOdqCR\n\tw/42iHNFduxiGxzgo46/jA8U7PLHWa4fTt7CfyojKE5sYPl9VCELIiBddSaXo8RT/A3H\n\tkzccQI/7jTycv9DjWDoSkfrJGKe7SX6YZQTVZ0CCcUNy7a/j+PG0l+nu1md+8+F6iD3f\n\t2mt11j82UvhGIBofRzGjjY18OvwouBHwBQv5M4YLyZjBnIeJGiFdiQQ2R0p80Pe9TOwP\n\tBQHa5iWCnwoPuIxVudZnOXI42bCaR1c+pkpjN6lskdLyIo7kWrzwQvn20CH2RuHhJSP2\n\tV+Nw==","X-Gm-Message-State":"AJIora+6hzs/MFcslIdPTV3yPplfQiIXU7CTM+RIa7jofdtol8PtQOg3\n\tjcHhAavZtXn+egX1To6GE91odnImIPRGQQ==","X-Google-Smtp-Source":"AGRyM1s2wu5irgG03/3lZkbUjulq/hnA5c588n2wQsLXe8g0IO324+92IHtzrJ0FkFDySBfzXNT9zQ==","X-Received":"by 2002:a5d:6850:0:b0:21e:6194:acb8 with SMTP id\n\to16-20020a5d6850000000b0021e6194acb8mr10828045wrw.499.1658839558861; \n\tTue, 26 Jul 2022 05:45:58 -0700 (PDT)","To":"libcamera-devel@lists.libcamera.org","Date":"Tue, 26 Jul 2022 13:45:36 +0100","Message-Id":"<20220726124549.1646-5-naush@raspberrypi.com>","X-Mailer":"git-send-email 2.25.1","In-Reply-To":"<20220726124549.1646-1-naush@raspberrypi.com>","References":"<20220726124549.1646-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 04/17] DNI: ipa: raspberrypi: Code\n\trefactoring to match style guidelines","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Refactor the source files under src/ipa/raspberrypi/controller/c* to match the\nrecommended formatting guidelines for the libcamera project. The vast majority\nof changes in this commit comprise of switching from snake_case to CamelCase,\nand starting class member functions with a lower case character.\n\nSigned-off-by: Naushir Patuck <naush@raspberrypi.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/ipa/raspberrypi/controller/camera_mode.h  | 16 ++--\n .../raspberrypi/controller/ccm_algorithm.hpp  |  2 +-\n .../controller/contrast_algorithm.hpp         |  4 +-\n src/ipa/raspberrypi/controller/controller.cpp | 74 ++++++++++---------\n src/ipa/raspberrypi/controller/controller.hpp | 22 +++---\n 5 files changed, 60 insertions(+), 58 deletions(-)","diff":"diff --git a/src/ipa/raspberrypi/controller/camera_mode.h b/src/ipa/raspberrypi/controller/camera_mode.h\nindex e2b82828d4b6..8b81ca9df725 100644\n--- a/src/ipa/raspberrypi/controller/camera_mode.h\n+++ b/src/ipa/raspberrypi/controller/camera_mode.h\n@@ -26,21 +26,21 @@ struct CameraMode {\n \t// size in pixels of frames in this mode\n \tuint16_t width, height;\n \t// size of full resolution uncropped frame (\"sensor frame\")\n-\tuint16_t sensor_width, sensor_height;\n+\tuint16_t sensorWidth, sensorHeight;\n \t// binning factor (1 = no binning, 2 = 2-pixel binning etc.)\n-\tuint8_t bin_x, bin_y;\n+\tuint8_t binX, binY;\n \t// location of top left pixel in the sensor frame\n-\tuint16_t crop_x, crop_y;\n-\t// scaling factor (so if uncropped, width*scale_x is sensor_width)\n-\tdouble scale_x, scale_y;\n+\tuint16_t cropX, cropY;\n+\t// scaling factor (so if uncropped, width*scaleX is sensorWidth)\n+\tdouble scaleX, scaleY;\n \t// scaling of the noise compared to the native sensor mode\n-\tdouble noise_factor;\n+\tdouble noiseFactor;\n \t// line time\n-\tlibcamera::utils::Duration line_length;\n+\tlibcamera::utils::Duration lineLength;\n \t// any camera transform *not* reflected already in the camera tuning\n \tlibcamera::Transform transform;\n \t// minimum and maximum fame lengths in units of lines\n-\tuint32_t min_frame_length, max_frame_length;\n+\tuint32_t minFrameLength, maxFrameLength;\n \t// sensitivity of this mode\n \tdouble sensitivity;\n };\ndiff --git a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\nindex 33d0e30dc856..b8b5879ba99c 100644\n--- a/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n+++ b/src/ipa/raspberrypi/controller/ccm_algorithm.hpp\n@@ -15,7 +15,7 @@ class CcmAlgorithm : public Algorithm\n public:\n \tCcmAlgorithm(Controller *controller) : Algorithm(controller) {}\n \t// A CCM algorithm must provide the following:\n-\tvirtual void SetSaturation(double saturation) = 0;\n+\tvirtual void setSaturation(double saturation) = 0;\n };\n \n } // namespace RPiController\ndiff --git a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\nindex 7f03bba52844..c76f3cd759ba 100644\n--- a/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n+++ b/src/ipa/raspberrypi/controller/contrast_algorithm.hpp\n@@ -15,8 +15,8 @@ class ContrastAlgorithm : public Algorithm\n public:\n \tContrastAlgorithm(Controller *controller) : Algorithm(controller) {}\n \t// A contrast algorithm must provide the following:\n-\tvirtual void SetBrightness(double brightness) = 0;\n-\tvirtual void SetContrast(double contrast) = 0;\n+\tvirtual void setBrightness(double brightness) = 0;\n+\tvirtual void setContrast(double contrast) = 0;\n };\n \n } // namespace RPiController\ndiff --git a/src/ipa/raspberrypi/controller/controller.cpp b/src/ipa/raspberrypi/controller/controller.cpp\nindex d3433ad2e7e8..e0b152c74384 100644\n--- a/src/ipa/raspberrypi/controller/controller.cpp\n+++ b/src/ipa/raspberrypi/controller/controller.cpp\n@@ -19,85 +19,87 @@ using namespace libcamera;\n LOG_DEFINE_CATEGORY(RPiController)\n \n Controller::Controller()\n-\t: switch_mode_called_(false) {}\n+\t: switchModeCalled_(false)\n+{\n+}\n \n-Controller::Controller(char const *json_filename)\n-\t: switch_mode_called_(false)\n+Controller::Controller(char const *jsonFilename)\n+\t: switchModeCalled_(false)\n {\n-\tRead(json_filename);\n-\tInitialise();\n+\tread(jsonFilename);\n+\tinitialise();\n }\n \n Controller::~Controller() {}\n \n-void Controller::Read(char const *filename)\n+void Controller::read(char const *filename)\n {\n \tboost::property_tree::ptree root;\n \tboost::property_tree::read_json(filename, root);\n-\tfor (auto const &key_and_value : root) {\n-\t\tAlgorithm *algo = CreateAlgorithm(key_and_value.first.c_str());\n+\tfor (auto const &keyAndValue : root) {\n+\t\tAlgorithm *algo = createAlgorithm(keyAndValue.first.c_str());\n \t\tif (algo) {\n-\t\t\talgo->Read(key_and_value.second);\n+\t\t\talgo->read(keyAndValue.second);\n \t\t\talgorithms_.push_back(AlgorithmPtr(algo));\n \t\t} else\n \t\t\tLOG(RPiController, Warning)\n-\t\t\t\t<< \"No algorithm found for \\\"\" << key_and_value.first << \"\\\"\";\n+\t\t\t\t<< \"No algorithm found for \\\"\" << keyAndValue.first << \"\\\"\";\n \t}\n }\n \n-Algorithm *Controller::CreateAlgorithm(char const *name)\n+Algorithm *Controller::createAlgorithm(char const *name)\n {\n-\tauto it = GetAlgorithms().find(std::string(name));\n-\treturn it != GetAlgorithms().end() ? (*it->second)(this) : nullptr;\n+\tauto it = getAlgorithms().find(std::string(name));\n+\treturn it != getAlgorithms().end() ? (*it->second)(this) : nullptr;\n }\n \n-void Controller::Initialise()\n+void Controller::initialise()\n {\n \tfor (auto &algo : algorithms_)\n-\t\talgo->Initialise();\n+\t\talgo->initialise();\n }\n \n-void Controller::SwitchMode(CameraMode const &camera_mode, Metadata *metadata)\n+void Controller::switchMode(CameraMode const &cameraMode, Metadata *metadata)\n {\n \tfor (auto &algo : algorithms_)\n-\t\talgo->SwitchMode(camera_mode, metadata);\n-\tswitch_mode_called_ = true;\n+\t\talgo->switchMode(cameraMode, metadata);\n+\tswitchModeCalled_ = true;\n }\n \n-void Controller::Prepare(Metadata *image_metadata)\n+void Controller::prepare(Metadata *imageMetadata)\n {\n-\tassert(switch_mode_called_);\n+\tassert(switchModeCalled_);\n \tfor (auto &algo : algorithms_)\n-\t\tif (!algo->IsPaused())\n-\t\t\talgo->Prepare(image_metadata);\n+\t\tif (!algo->isPaused())\n+\t\t\talgo->prepare(imageMetadata);\n }\n \n-void Controller::Process(StatisticsPtr stats, Metadata *image_metadata)\n+void Controller::process(StatisticsPtr stats, Metadata *imageMetadata)\n {\n-\tassert(switch_mode_called_);\n+\tassert(switchModeCalled_);\n \tfor (auto &algo : algorithms_)\n-\t\tif (!algo->IsPaused())\n-\t\t\talgo->Process(stats, image_metadata);\n+\t\tif (!algo->isPaused())\n+\t\t\talgo->process(stats, imageMetadata);\n }\n \n-Metadata &Controller::GetGlobalMetadata()\n+Metadata &Controller::getGlobalMetadata()\n {\n-\treturn global_metadata_;\n+\treturn globalMetadata_;\n }\n \n-Algorithm *Controller::GetAlgorithm(std::string const &name) const\n+Algorithm *Controller::getAlgorithm(std::string const &name) const\n {\n \t// The passed name must be the entire algorithm name, or must match the\n \t// last part of it with a period (.) just before.\n-\tsize_t name_len = name.length();\n+\tsize_t nameLen = name.length();\n \tfor (auto &algo : algorithms_) {\n-\t\tchar const *algo_name = algo->Name();\n-\t\tsize_t algo_name_len = strlen(algo_name);\n-\t\tif (algo_name_len >= name_len &&\n+\t\tchar const *algoName = algo->name();\n+\t\tsize_t algoNameLen = strlen(algoName);\n+\t\tif (algoNameLen >= nameLen &&\n \t\t    strcasecmp(name.c_str(),\n-\t\t\t       algo_name + algo_name_len - name_len) == 0 &&\n-\t\t    (name_len == algo_name_len ||\n-\t\t     algo_name[algo_name_len - name_len - 1] == '.'))\n+\t\t\t       algoName + algoNameLen - nameLen) == 0 &&\n+\t\t    (nameLen == algoNameLen ||\n+\t\t     algoName[algoNameLen - nameLen - 1] == '.'))\n \t\t\treturn algo.get();\n \t}\n \treturn nullptr;\ndiff --git a/src/ipa/raspberrypi/controller/controller.hpp b/src/ipa/raspberrypi/controller/controller.hpp\nindex 3b50ae770d11..a5e1eb38ab9d 100644\n--- a/src/ipa/raspberrypi/controller/controller.hpp\n+++ b/src/ipa/raspberrypi/controller/controller.hpp\n@@ -34,21 +34,21 @@ class Controller\n {\n public:\n \tController();\n-\tController(char const *json_filename);\n+\tController(char const *jsonFilename);\n \t~Controller();\n-\tAlgorithm *CreateAlgorithm(char const *name);\n-\tvoid Read(char const *filename);\n-\tvoid Initialise();\n-\tvoid SwitchMode(CameraMode const &camera_mode, Metadata *metadata);\n-\tvoid Prepare(Metadata *image_metadata);\n-\tvoid Process(StatisticsPtr stats, Metadata *image_metadata);\n-\tMetadata &GetGlobalMetadata();\n-\tAlgorithm *GetAlgorithm(std::string const &name) const;\n+\tAlgorithm *createAlgorithm(char const *name);\n+\tvoid read(char const *filename);\n+\tvoid initialise();\n+\tvoid switchMode(CameraMode const &cameraMode, Metadata *metadata);\n+\tvoid prepare(Metadata *imageMetadata);\n+\tvoid process(StatisticsPtr stats, Metadata *imageMetadata);\n+\tMetadata &getGlobalMetadata();\n+\tAlgorithm *getAlgorithm(std::string const &name) const;\n \n protected:\n-\tMetadata global_metadata_;\n+\tMetadata globalMetadata_;\n \tstd::vector<AlgorithmPtr> algorithms_;\n-\tbool switch_mode_called_;\n+\tbool switchModeCalled_;\n };\n \n } // namespace RPiController\n","prefixes":["libcamera-devel","04/17"]}