[{"id":31173,"web_url":"https://patchwork.libcamera.org/comment/31173/","msgid":"<20240911161001.GE4470@pendragon.ideasonboard.com>","date":"2024-09-11T16:10:01","subject":"Re: [PATCH v3 2/3] apps: cam: Print control enum values more nicely","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Paul,\n\nThank you for the patch.\n\nOn Wed, Sep 11, 2024 at 11:35:59AM +0200, Paul Elder wrote:\n> Now that enum names can be obtained from ControlId, use that information\n> to print out the list of supported enum values in --list-controls.\n\nAn example of the new output (shortened to one control) would be nice\nhere.\n\n> Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n> \n> ---\n> Changes in v3:\n> - s/enumName/enumToString/\n> \n> No change in v2\n> ---\n>  src/apps/cam/camera_session.cpp | 12 ++++++++++--\n>  1 file changed, 10 insertions(+), 2 deletions(-)\n> \n> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> index 097dc4792..37de6c9f3 100644\n> --- a/src/apps/cam/camera_session.cpp\n> +++ b/src/apps/cam/camera_session.cpp\n> @@ -159,8 +159,16 @@ CameraSession::~CameraSession()\n>  void CameraSession::listControls() const\n>  {\n>  \tfor (const auto &[id, info] : camera_->controls()) {\n> -\t\tstd::cout << \"Control: \" << id->name() << \": \"\n> -\t\t\t  << info.toString() << std::endl;\n> +\t\tif (info.values().size() == 0) {\n\n\t\tif (info.values().empty()) {\n\n> +\t\t\tstd::cout << \"Control: \" << id->name() << \": \"\n> +\t\t\t\t  << info.toString() << std::endl;\n> +\t\t} else {\n> +\t\t\tstd::cout << \"Control: \" << id->name() << \": \" << std::endl;\n\nExtra space in \": \".\n\n> +\t\t\tfor (const auto &value : info.values()) {\n> +\t\t\t\tint32_t val = value.get<int32_t>();\n> +\t\t\t\tstd::cout << \"  - \" << id->enumToString(val) << \" (\" << val << \")\" << std::endl;\n> +\t\t\t}\n> +\t\t}\n>  \t}\n>  }\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 E28DABF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Sep 2024 16:10:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E0BFC634FC;\n\tWed, 11 Sep 2024 18:10:37 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7D25B618FB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Sep 2024 18:10:35 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(213-229-8-243.static.upcbusiness.at [213.229.8.243])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 89E3DBEB;\n\tWed, 11 Sep 2024 18:09:17 +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=\"aqgl2fDg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1726070957;\n\tbh=AjHor3PXaVgy6Y4Gh4zsUBq7VJBkXm0I8b3mezVx9do=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=aqgl2fDgNuH/A4GO7zHL9yV3Kb5kWE4l3Ahu5TTMLx0J1eXDPxrUEY4PnbyGFU2Vl\n\tMqSdEBnhMkK/5UjYSpTcpl/67ZdtfBg/UmSvIuVhR3zTbQZdOZXV6vMuf7s7N7JpY4\n\tljeGoQ5/YRrS0KW2zJznnoDL/oPCHjimdp/pJfP0=","Date":"Wed, 11 Sep 2024 19:10:01 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, stefan.klug@ideasonboard.com,\n\tUmang Jain <umang.jain@ideasonboard.com>","Subject":"Re: [PATCH v3 2/3] apps: cam: Print control enum values more nicely","Message-ID":"<20240911161001.GE4470@pendragon.ideasonboard.com>","References":"<20240911093600.671979-1-paul.elder@ideasonboard.com>\n\t<20240911093600.671979-3-paul.elder@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240911093600.671979-3-paul.elder@ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":31175,"web_url":"https://patchwork.libcamera.org/comment/31175/","msgid":"<20240911161224.GF4470@pendragon.ideasonboard.com>","date":"2024-09-11T16:12:24","subject":"Re: [PATCH v3 2/3] apps: cam: Print control enum values more nicely","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Sep 11, 2024 at 07:10:01PM +0300, Laurent Pinchart wrote:\n> Hi Paul,\n> \n> Thank you for the patch.\n> \n> On Wed, Sep 11, 2024 at 11:35:59AM +0200, Paul Elder wrote:\n> > Now that enum names can be obtained from ControlId, use that information\n> > to print out the list of supported enum values in --list-controls.\n> \n> An example of the new output (shortened to one control) would be nice\n> here.\n> \n> > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>\n> > Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n> > \n> > ---\n> > Changes in v3:\n> > - s/enumName/enumToString/\n> > \n> > No change in v2\n> > ---\n> >  src/apps/cam/camera_session.cpp | 12 ++++++++++--\n> >  1 file changed, 10 insertions(+), 2 deletions(-)\n> > \n> > diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp\n> > index 097dc4792..37de6c9f3 100644\n> > --- a/src/apps/cam/camera_session.cpp\n> > +++ b/src/apps/cam/camera_session.cpp\n> > @@ -159,8 +159,16 @@ CameraSession::~CameraSession()\n> >  void CameraSession::listControls() const\n> >  {\n> >  \tfor (const auto &[id, info] : camera_->controls()) {\n> > -\t\tstd::cout << \"Control: \" << id->name() << \": \"\n> > -\t\t\t  << info.toString() << std::endl;\n> > +\t\tif (info.values().size() == 0) {\n> \n> \t\tif (info.values().empty()) {\n> \n> > +\t\t\tstd::cout << \"Control: \" << id->name() << \": \"\n> > +\t\t\t\t  << info.toString() << std::endl;\n> > +\t\t} else {\n> > +\t\t\tstd::cout << \"Control: \" << id->name() << \": \" << std::endl;\n> \n> Extra space in \": \".\n> \n> > +\t\t\tfor (const auto &value : info.values()) {\n\nIf you expose the whole map as proposed in the review of 1/3, you could\niterate over the enumerators map, that would be move efficient than\nlooking up each entry.\n\n> > +\t\t\t\tint32_t val = value.get<int32_t>();\n> > +\t\t\t\tstd::cout << \"  - \" << id->enumToString(val) << \" (\" << val << \")\" << std::endl;\n> > +\t\t\t}\n> > +\t\t}\n> >  \t}\n> >  }\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 180A2C324C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 11 Sep 2024 16:13:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CA5CB634F4;\n\tWed, 11 Sep 2024 18:12:59 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 84989618FB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 11 Sep 2024 18:12:58 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(213-229-8-243.static.upcbusiness.at [213.229.8.243])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D21AEBEB;\n\tWed, 11 Sep 2024 18:11:40 +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=\"kjjfVUeG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1726071101;\n\tbh=sUo1EYOqw1F7Jnc2MuH3S51Dbe1CJ5tQciS7LP/wcFk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=kjjfVUeGCv67Wn7/pQnAxk5uA/9zfvc/+fwdY+OodamQEfqtUjMZwgxbijfa0JXYu\n\tZDjZZwet5ORRGFDpir8c0FNWIllchYkdegKAZWi7yzWqeJqPh6CaeYcVLBrdy+hgC/\n\tUvvj0KqeIFHVqULy+3yWZFejyauihfyjrWSeAAwk=","Date":"Wed, 11 Sep 2024 19:12:24 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org, stefan.klug@ideasonboard.com,\n\tUmang Jain <umang.jain@ideasonboard.com>","Subject":"Re: [PATCH v3 2/3] apps: cam: Print control enum values more nicely","Message-ID":"<20240911161224.GF4470@pendragon.ideasonboard.com>","References":"<20240911093600.671979-1-paul.elder@ideasonboard.com>\n\t<20240911093600.671979-3-paul.elder@ideasonboard.com>\n\t<20240911161001.GE4470@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20240911161001.GE4470@pendragon.ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]