[{"id":18679,"web_url":"https://patchwork.libcamera.org/comment/18679/","msgid":"<20210810134456.smrxfe6mu3foe67s@uno.localdomain>","date":"2021-08-10T13:44:56","subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nI'll go write on the blackboard 50 times:\n\n\"I should look at the full series before commenting\"\n\nOn Thu, Aug 05, 2021 at 08:58:48PM +0300, Laurent Pinchart wrote:\n> The PipelineHandler controls() and properties() functions are only used\n> by the Camera class. Now that the controls and properties are stored in\n> the Camera::Private class, we can drop those functions and access the\n> private data directly in Camera::controls() and Camera::properties().\n>\n> Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  include/libcamera/internal/pipeline_handler.h |  3 ---\n>  src/libcamera/camera.cpp                      |  4 ++--\n>  src/libcamera/pipeline_handler.cpp            | 21 -------------------\n>  3 files changed, 2 insertions(+), 26 deletions(-)\n>\n> diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\n> index 2f814753f2ae..79e9839fa0de 100644\n> --- a/include/libcamera/internal/pipeline_handler.h\n> +++ b/include/libcamera/internal/pipeline_handler.h\n> @@ -47,9 +47,6 @@ public:\n>  \tbool lock();\n>  \tvoid unlock();\n>\n> -\tconst ControlInfoMap &controls(const Camera *camera) const;\n> -\tconst ControlList &properties(const Camera *camera) const;\n> -\n>  \tvirtual CameraConfiguration *generateConfiguration(Camera *camera,\n>  \t\tconst StreamRoles &roles) = 0;\n>  \tvirtual int configure(Camera *camera, CameraConfiguration *config) = 0;\n> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> index f0893f89a1b3..a6cc4ea624c0 100644\n> --- a/src/libcamera/camera.cpp\n> +++ b/src/libcamera/camera.cpp\n> @@ -800,7 +800,7 @@ int Camera::release()\n>   */\n>  const ControlInfoMap &Camera::controls() const\n>  {\n> -\treturn _d()->pipe_->controls(this);\n> +\treturn _d()->controlInfo_;\n>  }\n>\n>  /**\n> @@ -813,7 +813,7 @@ const ControlInfoMap &Camera::controls() const\n>   */\n>  const ControlList &Camera::properties() const\n>  {\n> -\treturn _d()->pipe_->properties(this);\n> +\treturn _d()->properties_;\n>  }\n>\n>  /**\n> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> index 28e09bc00771..bf238377c67a 100644\n> --- a/src/libcamera/pipeline_handler.cpp\n> +++ b/src/libcamera/pipeline_handler.cpp\n> @@ -176,27 +176,6 @@ void PipelineHandler::unlock()\n>  \t\tmedia->unlock();\n>  }\n>\n> -/**\n> - * \\brief Retrieve the list of controls for a camera\n> - * \\param[in] camera The camera\n> - * \\context This function is \\threadsafe.\n> - * \\return A ControlInfoMap listing the controls support by \\a camera\n> - */\n> -const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const\n> -{\n> -\treturn camera->_d()->controlInfo_;\n> -}\n> -\n> -/**\n> - * \\brief Retrieve the list of properties for a camera\n> - * \\param[in] camera The camera\n> - * \\return A ControlList of properties supported by \\a camera\n> - */\n> -const ControlList &PipelineHandler::properties(const Camera *camera) const\n> -{\n> -\treturn camera->_d()->properties_;\n> -}\n> -\n>  /**\n>   * \\fn PipelineHandler::generateConfiguration()\n>   * \\brief Generate a camera configuration for a specified camera\n> --\n> Regards,\n>\n> Laurent Pinchart\n>","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 7CD8FBD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 10 Aug 2021 13:44:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 77B8D6884D;\n\tTue, 10 Aug 2021 15:44:10 +0200 (CEST)","from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net\n\t[217.70.183.197])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 146CC687F0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 10 Aug 2021 15:44:09 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 9034C1C0009;\n\tTue, 10 Aug 2021 13:44:08 +0000 (UTC)"],"Date":"Tue, 10 Aug 2021 15:44:56 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210810134456.smrxfe6mu3foe67s@uno.localdomain>","References":"<20210805175848.24188-1-laurent.pinchart@ideasonboard.com>\n\t<20210805175848.24188-12-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210805175848.24188-12-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18711,"web_url":"https://patchwork.libcamera.org/comment/18711/","msgid":"<YRQGKmwdzc/MoZDq@pendragon.ideasonboard.com>","date":"2021-08-11T17:17:30","subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Tue, Aug 10, 2021 at 03:44:56PM +0200, Jacopo Mondi wrote:\n> Hi Laurent,\n> \n> I'll go write on the blackboard 50 times:\n> \n> \"I should look at the full series before commenting\"\n\nI've added this patch in v2 because you've commneted on it in v1 :-)\n\n> On Thu, Aug 05, 2021 at 08:58:48PM +0300, Laurent Pinchart wrote:\n> > The PipelineHandler controls() and properties() functions are only used\n> > by the Camera class. Now that the controls and properties are stored in\n> > the Camera::Private class, we can drop those functions and access the\n> > private data directly in Camera::controls() and Camera::properties().\n> >\n> > Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  include/libcamera/internal/pipeline_handler.h |  3 ---\n> >  src/libcamera/camera.cpp                      |  4 ++--\n> >  src/libcamera/pipeline_handler.cpp            | 21 -------------------\n> >  3 files changed, 2 insertions(+), 26 deletions(-)\n> >\n> > diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\n> > index 2f814753f2ae..79e9839fa0de 100644\n> > --- a/include/libcamera/internal/pipeline_handler.h\n> > +++ b/include/libcamera/internal/pipeline_handler.h\n> > @@ -47,9 +47,6 @@ public:\n> >  \tbool lock();\n> >  \tvoid unlock();\n> >\n> > -\tconst ControlInfoMap &controls(const Camera *camera) const;\n> > -\tconst ControlList &properties(const Camera *camera) const;\n> > -\n> >  \tvirtual CameraConfiguration *generateConfiguration(Camera *camera,\n> >  \t\tconst StreamRoles &roles) = 0;\n> >  \tvirtual int configure(Camera *camera, CameraConfiguration *config) = 0;\n> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > index f0893f89a1b3..a6cc4ea624c0 100644\n> > --- a/src/libcamera/camera.cpp\n> > +++ b/src/libcamera/camera.cpp\n> > @@ -800,7 +800,7 @@ int Camera::release()\n> >   */\n> >  const ControlInfoMap &Camera::controls() const\n> >  {\n> > -\treturn _d()->pipe_->controls(this);\n> > +\treturn _d()->controlInfo_;\n> >  }\n> >\n> >  /**\n> > @@ -813,7 +813,7 @@ const ControlInfoMap &Camera::controls() const\n> >   */\n> >  const ControlList &Camera::properties() const\n> >  {\n> > -\treturn _d()->pipe_->properties(this);\n> > +\treturn _d()->properties_;\n> >  }\n> >\n> >  /**\n> > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> > index 28e09bc00771..bf238377c67a 100644\n> > --- a/src/libcamera/pipeline_handler.cpp\n> > +++ b/src/libcamera/pipeline_handler.cpp\n> > @@ -176,27 +176,6 @@ void PipelineHandler::unlock()\n> >  \t\tmedia->unlock();\n> >  }\n> >\n> > -/**\n> > - * \\brief Retrieve the list of controls for a camera\n> > - * \\param[in] camera The camera\n> > - * \\context This function is \\threadsafe.\n> > - * \\return A ControlInfoMap listing the controls support by \\a camera\n> > - */\n> > -const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const\n> > -{\n> > -\treturn camera->_d()->controlInfo_;\n> > -}\n> > -\n> > -/**\n> > - * \\brief Retrieve the list of properties for a camera\n> > - * \\param[in] camera The camera\n> > - * \\return A ControlList of properties supported by \\a camera\n> > - */\n> > -const ControlList &PipelineHandler::properties(const Camera *camera) const\n> > -{\n> > -\treturn camera->_d()->properties_;\n> > -}\n> > -\n> >  /**\n> >   * \\fn PipelineHandler::generateConfiguration()\n> >   * \\brief Generate a camera configuration for a specified camera","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 5EEFAC3240\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Aug 2021 17:17:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2D34F6884F;\n\tWed, 11 Aug 2021 19:17:35 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 09BE968826\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Aug 2021 19:17:34 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9B50AEE;\n\tWed, 11 Aug 2021 19:17:33 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"YYEdcV0E\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628702253;\n\tbh=rjgkhZJQ4PosVzF3AxpdRrsBdlo4tXNMJt2oUlkNUmA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=YYEdcV0EWpa0TX5BSWCKneOG5+V2tf182mFVNBc8oJIts5cGfhX1S33pRlzo4cwSn\n\t5qIlo9IUle7D7Y9WV7BJ4G3H4HU71TB9hRhyHjHOsafL+fEtiAxf8YbwIx5FUyk+3I\n\tyKfox90zHrX799yGWaHGtx8q21WglBUe0fj8Ewmk=","Date":"Wed, 11 Aug 2021 20:17:30 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YRQGKmwdzc/MoZDq@pendragon.ideasonboard.com>","References":"<20210805175848.24188-1-laurent.pinchart@ideasonboard.com>\n\t<20210805175848.24188-12-laurent.pinchart@ideasonboard.com>\n\t<20210810134456.smrxfe6mu3foe67s@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210810134456.smrxfe6mu3foe67s@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18714,"web_url":"https://patchwork.libcamera.org/comment/18714/","msgid":"<YRQOPMkXstM6KpTH@pendragon.ideasonboard.com>","date":"2021-08-11T17:51:56","subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Tue, Aug 10, 2021 at 03:44:56PM +0200, Jacopo Mondi wrote:\n> Hi Laurent,\n> \n> I'll go write on the blackboard 50 times:\n> \n> \"I should look at the full series before commenting\"\n\nDoes this mean I can get your Reviewed-by ?\n\n> On Thu, Aug 05, 2021 at 08:58:48PM +0300, Laurent Pinchart wrote:\n> > The PipelineHandler controls() and properties() functions are only used\n> > by the Camera class. Now that the controls and properties are stored in\n> > the Camera::Private class, we can drop those functions and access the\n> > private data directly in Camera::controls() and Camera::properties().\n> >\n> > Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  include/libcamera/internal/pipeline_handler.h |  3 ---\n> >  src/libcamera/camera.cpp                      |  4 ++--\n> >  src/libcamera/pipeline_handler.cpp            | 21 -------------------\n> >  3 files changed, 2 insertions(+), 26 deletions(-)\n> >\n> > diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\n> > index 2f814753f2ae..79e9839fa0de 100644\n> > --- a/include/libcamera/internal/pipeline_handler.h\n> > +++ b/include/libcamera/internal/pipeline_handler.h\n> > @@ -47,9 +47,6 @@ public:\n> >  \tbool lock();\n> >  \tvoid unlock();\n> >\n> > -\tconst ControlInfoMap &controls(const Camera *camera) const;\n> > -\tconst ControlList &properties(const Camera *camera) const;\n> > -\n> >  \tvirtual CameraConfiguration *generateConfiguration(Camera *camera,\n> >  \t\tconst StreamRoles &roles) = 0;\n> >  \tvirtual int configure(Camera *camera, CameraConfiguration *config) = 0;\n> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > index f0893f89a1b3..a6cc4ea624c0 100644\n> > --- a/src/libcamera/camera.cpp\n> > +++ b/src/libcamera/camera.cpp\n> > @@ -800,7 +800,7 @@ int Camera::release()\n> >   */\n> >  const ControlInfoMap &Camera::controls() const\n> >  {\n> > -\treturn _d()->pipe_->controls(this);\n> > +\treturn _d()->controlInfo_;\n> >  }\n> >\n> >  /**\n> > @@ -813,7 +813,7 @@ const ControlInfoMap &Camera::controls() const\n> >   */\n> >  const ControlList &Camera::properties() const\n> >  {\n> > -\treturn _d()->pipe_->properties(this);\n> > +\treturn _d()->properties_;\n> >  }\n> >\n> >  /**\n> > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> > index 28e09bc00771..bf238377c67a 100644\n> > --- a/src/libcamera/pipeline_handler.cpp\n> > +++ b/src/libcamera/pipeline_handler.cpp\n> > @@ -176,27 +176,6 @@ void PipelineHandler::unlock()\n> >  \t\tmedia->unlock();\n> >  }\n> >\n> > -/**\n> > - * \\brief Retrieve the list of controls for a camera\n> > - * \\param[in] camera The camera\n> > - * \\context This function is \\threadsafe.\n> > - * \\return A ControlInfoMap listing the controls support by \\a camera\n> > - */\n> > -const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const\n> > -{\n> > -\treturn camera->_d()->controlInfo_;\n> > -}\n> > -\n> > -/**\n> > - * \\brief Retrieve the list of properties for a camera\n> > - * \\param[in] camera The camera\n> > - * \\return A ControlList of properties supported by \\a camera\n> > - */\n> > -const ControlList &PipelineHandler::properties(const Camera *camera) const\n> > -{\n> > -\treturn camera->_d()->properties_;\n> > -}\n> > -\n> >  /**\n> >   * \\fn PipelineHandler::generateConfiguration()\n> >   * \\brief Generate a camera configuration for a specified camera","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 B21AEBD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Aug 2021 17:52:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1DDE46884F;\n\tWed, 11 Aug 2021 19:52:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D897668826\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Aug 2021 19:51:59 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5A0F6EE;\n\tWed, 11 Aug 2021 19:51:59 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ibN7zcqC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1628704319;\n\tbh=N05kB0y9pM2SsfvxPaqJwrN0+0UJuEbKKrcRTOVFykQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ibN7zcqCROmcDA+6yUeI2Qsokv4piIOL0XQjeDCtl9mespFuwRX8SPgK2BycRyVM1\n\tfx8/9tPoxOlWIzVltNhf+7RZY0nhv8CicW2cDZC9+6ai4af5SXX1euRNKv5gnA7X00\n\tIjd6G3EDmvMBlsPIsles8QHvvhEgnsQe5+1URvpM=","Date":"Wed, 11 Aug 2021 20:51:56 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YRQOPMkXstM6KpTH@pendragon.ideasonboard.com>","References":"<20210805175848.24188-1-laurent.pinchart@ideasonboard.com>\n\t<20210805175848.24188-12-laurent.pinchart@ideasonboard.com>\n\t<20210810134456.smrxfe6mu3foe67s@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210810134456.smrxfe6mu3foe67s@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18840,"web_url":"https://patchwork.libcamera.org/comment/18840/","msgid":"<20210816135954.uwai3auzcu4dqtvx@uno.localdomain>","date":"2021-08-16T13:59:54","subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Wed, Aug 11, 2021 at 08:51:56PM +0300, Laurent Pinchart wrote:\n> On Tue, Aug 10, 2021 at 03:44:56PM +0200, Jacopo Mondi wrote:\n> > Hi Laurent,\n> >\n> > I'll go write on the blackboard 50 times:\n> >\n> > \"I should look at the full series before commenting\"\n>\n> Does this mean I can get your Reviewed-by ?\n\nSure, sorry, I thought the existing tag was enough\n\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n   j\n\n>\n> > On Thu, Aug 05, 2021 at 08:58:48PM +0300, Laurent Pinchart wrote:\n> > > The PipelineHandler controls() and properties() functions are only used\n> > > by the Camera class. Now that the controls and properties are stored in\n> > > the Camera::Private class, we can drop those functions and access the\n> > > private data directly in Camera::controls() and Camera::properties().\n> > >\n> > > Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > ---\n> > >  include/libcamera/internal/pipeline_handler.h |  3 ---\n> > >  src/libcamera/camera.cpp                      |  4 ++--\n> > >  src/libcamera/pipeline_handler.cpp            | 21 -------------------\n> > >  3 files changed, 2 insertions(+), 26 deletions(-)\n> > >\n> > > diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\n> > > index 2f814753f2ae..79e9839fa0de 100644\n> > > --- a/include/libcamera/internal/pipeline_handler.h\n> > > +++ b/include/libcamera/internal/pipeline_handler.h\n> > > @@ -47,9 +47,6 @@ public:\n> > >  \tbool lock();\n> > >  \tvoid unlock();\n> > >\n> > > -\tconst ControlInfoMap &controls(const Camera *camera) const;\n> > > -\tconst ControlList &properties(const Camera *camera) const;\n> > > -\n> > >  \tvirtual CameraConfiguration *generateConfiguration(Camera *camera,\n> > >  \t\tconst StreamRoles &roles) = 0;\n> > >  \tvirtual int configure(Camera *camera, CameraConfiguration *config) = 0;\n> > > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > > index f0893f89a1b3..a6cc4ea624c0 100644\n> > > --- a/src/libcamera/camera.cpp\n> > > +++ b/src/libcamera/camera.cpp\n> > > @@ -800,7 +800,7 @@ int Camera::release()\n> > >   */\n> > >  const ControlInfoMap &Camera::controls() const\n> > >  {\n> > > -\treturn _d()->pipe_->controls(this);\n> > > +\treturn _d()->controlInfo_;\n> > >  }\n> > >\n> > >  /**\n> > > @@ -813,7 +813,7 @@ const ControlInfoMap &Camera::controls() const\n> > >   */\n> > >  const ControlList &Camera::properties() const\n> > >  {\n> > > -\treturn _d()->pipe_->properties(this);\n> > > +\treturn _d()->properties_;\n> > >  }\n> > >\n> > >  /**\n> > > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> > > index 28e09bc00771..bf238377c67a 100644\n> > > --- a/src/libcamera/pipeline_handler.cpp\n> > > +++ b/src/libcamera/pipeline_handler.cpp\n> > > @@ -176,27 +176,6 @@ void PipelineHandler::unlock()\n> > >  \t\tmedia->unlock();\n> > >  }\n> > >\n> > > -/**\n> > > - * \\brief Retrieve the list of controls for a camera\n> > > - * \\param[in] camera The camera\n> > > - * \\context This function is \\threadsafe.\n> > > - * \\return A ControlInfoMap listing the controls support by \\a camera\n> > > - */\n> > > -const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const\n> > > -{\n> > > -\treturn camera->_d()->controlInfo_;\n> > > -}\n> > > -\n> > > -/**\n> > > - * \\brief Retrieve the list of properties for a camera\n> > > - * \\param[in] camera The camera\n> > > - * \\return A ControlList of properties supported by \\a camera\n> > > - */\n> > > -const ControlList &PipelineHandler::properties(const Camera *camera) const\n> > > -{\n> > > -\treturn camera->_d()->properties_;\n> > > -}\n> > > -\n> > >  /**\n> > >   * \\fn PipelineHandler::generateConfiguration()\n> > >   * \\brief Generate a camera configuration for a specified camera\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 32B41BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Aug 2021 13:59:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0869268894;\n\tMon, 16 Aug 2021 15:59:09 +0200 (CEST)","from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net\n\t[217.70.183.196])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 26BBE6025D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Aug 2021 15:59:08 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby relay4-d.mail.gandi.net (Postfix) with ESMTPSA id 818BCE000D;\n\tMon, 16 Aug 2021 13:59:07 +0000 (UTC)"],"Date":"Mon, 16 Aug 2021 15:59:54 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210816135954.uwai3auzcu4dqtvx@uno.localdomain>","References":"<20210805175848.24188-1-laurent.pinchart@ideasonboard.com>\n\t<20210805175848.24188-12-laurent.pinchart@ideasonboard.com>\n\t<20210810134456.smrxfe6mu3foe67s@uno.localdomain>\n\t<YRQOPMkXstM6KpTH@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<YRQOPMkXstM6KpTH@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18841,"web_url":"https://patchwork.libcamera.org/comment/18841/","msgid":"<YRpv2x5ficeoGWK8@pendragon.ideasonboard.com>","date":"2021-08-16T14:02:03","subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Mon, Aug 16, 2021 at 03:59:54PM +0200, Jacopo Mondi wrote:\n> On Wed, Aug 11, 2021 at 08:51:56PM +0300, Laurent Pinchart wrote:\n> > On Tue, Aug 10, 2021 at 03:44:56PM +0200, Jacopo Mondi wrote:\n> > > Hi Laurent,\n> > >\n> > > I'll go write on the blackboard 50 times:\n> > >\n> > > \"I should look at the full series before commenting\"\n> >\n> > Does this mean I can get your Reviewed-by ?\n> \n> Sure, sorry, I thought the existing tag was enough\n\nNo worries. I've added Suggested-by myself, I usually refrain from\nadding Reviewed-by without getting an actual review ;-)\n\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> > > On Thu, Aug 05, 2021 at 08:58:48PM +0300, Laurent Pinchart wrote:\n> > > > The PipelineHandler controls() and properties() functions are only used\n> > > > by the Camera class. Now that the controls and properties are stored in\n> > > > the Camera::Private class, we can drop those functions and access the\n> > > > private data directly in Camera::controls() and Camera::properties().\n> > > >\n> > > > Suggested-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > ---\n> > > >  include/libcamera/internal/pipeline_handler.h |  3 ---\n> > > >  src/libcamera/camera.cpp                      |  4 ++--\n> > > >  src/libcamera/pipeline_handler.cpp            | 21 -------------------\n> > > >  3 files changed, 2 insertions(+), 26 deletions(-)\n> > > >\n> > > > diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h\n> > > > index 2f814753f2ae..79e9839fa0de 100644\n> > > > --- a/include/libcamera/internal/pipeline_handler.h\n> > > > +++ b/include/libcamera/internal/pipeline_handler.h\n> > > > @@ -47,9 +47,6 @@ public:\n> > > >  \tbool lock();\n> > > >  \tvoid unlock();\n> > > >\n> > > > -\tconst ControlInfoMap &controls(const Camera *camera) const;\n> > > > -\tconst ControlList &properties(const Camera *camera) const;\n> > > > -\n> > > >  \tvirtual CameraConfiguration *generateConfiguration(Camera *camera,\n> > > >  \t\tconst StreamRoles &roles) = 0;\n> > > >  \tvirtual int configure(Camera *camera, CameraConfiguration *config) = 0;\n> > > > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > > > index f0893f89a1b3..a6cc4ea624c0 100644\n> > > > --- a/src/libcamera/camera.cpp\n> > > > +++ b/src/libcamera/camera.cpp\n> > > > @@ -800,7 +800,7 @@ int Camera::release()\n> > > >   */\n> > > >  const ControlInfoMap &Camera::controls() const\n> > > >  {\n> > > > -\treturn _d()->pipe_->controls(this);\n> > > > +\treturn _d()->controlInfo_;\n> > > >  }\n> > > >\n> > > >  /**\n> > > > @@ -813,7 +813,7 @@ const ControlInfoMap &Camera::controls() const\n> > > >   */\n> > > >  const ControlList &Camera::properties() const\n> > > >  {\n> > > > -\treturn _d()->pipe_->properties(this);\n> > > > +\treturn _d()->properties_;\n> > > >  }\n> > > >\n> > > >  /**\n> > > > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> > > > index 28e09bc00771..bf238377c67a 100644\n> > > > --- a/src/libcamera/pipeline_handler.cpp\n> > > > +++ b/src/libcamera/pipeline_handler.cpp\n> > > > @@ -176,27 +176,6 @@ void PipelineHandler::unlock()\n> > > >  \t\tmedia->unlock();\n> > > >  }\n> > > >\n> > > > -/**\n> > > > - * \\brief Retrieve the list of controls for a camera\n> > > > - * \\param[in] camera The camera\n> > > > - * \\context This function is \\threadsafe.\n> > > > - * \\return A ControlInfoMap listing the controls support by \\a camera\n> > > > - */\n> > > > -const ControlInfoMap &PipelineHandler::controls(const Camera *camera) const\n> > > > -{\n> > > > -\treturn camera->_d()->controlInfo_;\n> > > > -}\n> > > > -\n> > > > -/**\n> > > > - * \\brief Retrieve the list of properties for a camera\n> > > > - * \\param[in] camera The camera\n> > > > - * \\return A ControlList of properties supported by \\a camera\n> > > > - */\n> > > > -const ControlList &PipelineHandler::properties(const Camera *camera) const\n> > > > -{\n> > > > -\treturn camera->_d()->properties_;\n> > > > -}\n> > > > -\n> > > >  /**\n> > > >   * \\fn PipelineHandler::generateConfiguration()\n> > > >   * \\brief Generate a camera configuration for a specified camera","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 E5A3FBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Aug 2021 14:02:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 78568688A2;\n\tMon, 16 Aug 2021 16:02:10 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7F7EB6025D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Aug 2021 16:02:09 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0D3673E5;\n\tMon, 16 Aug 2021 16:02:08 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"alqZNpR7\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1629122529;\n\tbh=6Sph4pSXCt7EHCazimasnd24myOItfCdX8kJQk6Ymrg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=alqZNpR7wC7+L71Li7Uhrm2CnwudLCcVlpQDC0wBBCxvFW7L6XuwzE6GKoTK3Zhkh\n\t+hgWHGjtj1j/k/erY9WruR+eunBd2pRlWJJKrZCA1cTDFwGtsG/g1K842QAUwPQz0i\n\tKQqoiduck/rcHGQBwtpKlqKBmKuzlXvp7qG/8JWs=","Date":"Mon, 16 Aug 2021 17:02:03 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YRpv2x5ficeoGWK8@pendragon.ideasonboard.com>","References":"<20210805175848.24188-1-laurent.pinchart@ideasonboard.com>\n\t<20210805175848.24188-12-laurent.pinchart@ideasonboard.com>\n\t<20210810134456.smrxfe6mu3foe67s@uno.localdomain>\n\t<YRQOPMkXstM6KpTH@pendragon.ideasonboard.com>\n\t<20210816135954.uwai3auzcu4dqtvx@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210816135954.uwai3auzcu4dqtvx@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH v2 11/11] libcamera: pipeline_handler:\n\tDrop controls() and properties() functions","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]