[{"id":24491,"web_url":"https://patchwork.libcamera.org/comment/24491/","msgid":"<166008146806.2423137.474144980610233936@Monstersaurus>","date":"2022-08-09T21:44:28","subject":"Re: [libcamera-devel] [PATCH v7 4/8] qcam: CamSelectDialog: Display\n\tLocation and Model propety of camera","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Utkarsh Tiwari (2022-08-09 21:50:38)\n> The camera selection dialog currently only displays the camera Id.\n> Display the camera location and camera model if available.\n> \n> Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n> Difference :\n>         1. Now use value_or for optional\n>         2. Not use lambda and make a private member function\n>  src/qcam/cam_select_dialog.cpp | 52 ++++++++++++++++++++++++++++++++++\n>  src/qcam/cam_select_dialog.h   | 10 +++++++\n>  2 files changed, 62 insertions(+)\n> \n> diff --git a/src/qcam/cam_select_dialog.cpp b/src/qcam/cam_select_dialog.cpp\n> index d8982800..f97ad6eb 100644\n> --- a/src/qcam/cam_select_dialog.cpp\n> +++ b/src/qcam/cam_select_dialog.cpp\n> @@ -7,6 +7,7 @@\n>  \n>  #include \"cam_select_dialog.h\"\n>  \n> +#include <memory>\n>  #include <string>\n>  \n>  #include <libcamera/camera.h>\n> @@ -30,6 +31,14 @@ CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManag\n>         for (const auto &cam : cm_->cameras())\n>                 cameraIdComboBox_->addItem(QString::fromStdString(cam->id()));\n>  \n> +       /* Set camera information labels. */\n> +       cameraLocation_ = new QLabel;\n> +       cameraModel_ = new QLabel;\n> +\n> +       handleCameraChange();\n> +       connect(cameraIdComboBox_, &QComboBox::currentTextChanged,\n> +               this, &CameraSelectorDialog::handleCameraChange);\n> +\n>         /* Setup the QDialogButton Box */\n>         QDialogButtonBox *buttonBox =\n>                 new QDialogButtonBox(QDialogButtonBox::Ok |\n> @@ -41,7 +50,10 @@ CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager *cameraManag\n>                 this, &QDialog::reject);\n>  \n>         /* Set the layout. */\n> +\n>         layout->addRow(\"Camera:\", cameraIdComboBox_);\n> +       layout->addRow(\"Location:\", cameraLocation_);\n> +       layout->addRow(\"Model:\", cameraModel_);\n>         layout->addWidget(buttonBox);\n>  }\n>  \n> @@ -63,3 +75,43 @@ void CameraSelectorDialog::cameraRemoved(libcamera::Camera *camera)\n>  \n>         cameraIdComboBox_->removeItem(cameraIndex);\n>  }\n> +\n> +/* Camera Information */\n> +void CameraSelectorDialog::handleCameraChange()\n> +{\n> +       updateCamInfo(cm_->get(getCameraId()));\n> +}\n> +\n> +void CameraSelectorDialog::updateCamInfo(const std::shared_ptr<libcamera::Camera> &camera)\n> +{\n> +       if (!camera)\n> +               return;\n> +\n> +       const libcamera::ControlList &cameraProperties = camera->properties();\n> +\n> +       const auto &location =\n> +               cameraProperties.get(libcamera::properties::Location);\n> +       if (location) {\n> +               switch (*location) {\n> +               case libcamera::properties::CameraLocationFront:\n> +                       cameraLocation_->setText(\"Internal front camera\");\n> +                       break;\n> +               case libcamera::properties::CameraLocationBack:\n> +                       cameraLocation_->setText(\"Internal back camera\");\n> +                       break;\n> +               case libcamera::properties::CameraLocationExternal:\n> +                       cameraLocation_->setText(\"External camera\");\n> +                       break;\n> +               default:\n> +                       cameraLocation_->setText(\"Unknown\");\n> +               }\n> +       } else {\n> +               cameraLocation_->setText(\"Unknown\");\n> +       }\n> +\n> +       const auto &model = cameraProperties\n> +                                   .get(libcamera::properties::Model)\n> +                                   .value_or(\"Unknown\");\n> +\n> +       cameraModel_->setText(QString::fromStdString(model));\n> +}\n> diff --git a/src/qcam/cam_select_dialog.h b/src/qcam/cam_select_dialog.h\n> index 567083ae..359df811 100644\n> --- a/src/qcam/cam_select_dialog.h\n> +++ b/src/qcam/cam_select_dialog.h\n> @@ -11,11 +11,14 @@\n>  \n>  #include <libcamera/camera.h>\n>  #include <libcamera/camera_manager.h>\n> +#include <libcamera/controls.h>\n> +#include <libcamera/property_ids.h>\n>  \n>  #include <QComboBox>\n>  #include <QDialog>\n>  #include <QDialogButtonBox>\n>  #include <QFormLayout>\n> +#include <QLabel>\n>  #include <QString>\n>  \n>  class CameraSelectorDialog : public QDialog\n> @@ -33,9 +36,16 @@ public:\n>         void cameraAdded(libcamera::Camera *camera);\n>  \n>         void cameraRemoved(libcamera::Camera *camera);\n> +\n> +       /* Camera Information */\n> +       void updateCamInfo(const std::shared_ptr<libcamera::Camera> &camera);\n> +       void handleCameraChange();\n> +\n>  private:\n>         libcamera::CameraManager *cm_;\n>  \n>         /* UI elements. */\n>         QComboBox *cameraIdComboBox_;\n> +       QLabel *cameraLocation_;\n> +       QLabel *cameraModel_;\n\nDo these actually need to be pointers? What happens if they are\nallcoated as part of the CameraSelectorDialog ? - then we wouldn't need\nto call 'new' and they wouldn't be leaked (well, the lifetime would be\ndirectly associated with the CameraSelectorDialog at least)\n\n\n\n>  };\n> -- \n> 2.25.1\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 2E1C2C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  9 Aug 2022 21:44:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 807C563326;\n\tTue,  9 Aug 2022 23:44:32 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D6CB861FAA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  9 Aug 2022 23:44:30 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5BE6D481;\n\tTue,  9 Aug 2022 23:44:30 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660081472;\n\tbh=U+5nXoRu/zYFqr9/790mhfzS8N3f3mHMZ5NdtUQ2Bhc=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=mRVNHltsEXa6WjRHsfOdQrnJSMdCU5ibR3ISLtK0F7Nm3mh9AoE2/sIIetOW9vdqd\n\tYQlOq7DfnI7YoWkT608YHpKh1SXHl+HeAzEMByGWRjX8M/VOVp2Gnn71YUKfo2GxW9\n\tdOXNEw80ADFmQGlfuy4cYQzPf2SBjomKobCWvuRAOHJAo6AL/z+ZMOAyPwCraak/r6\n\tUTmpnf5/oLrZIIKGX6neY9Dsjb7NIS89FpWsgllQDauDdqe75oqDHHc0CvxggpDWgc\n\tvFhdkGuSUUUulRAPCVgECJX1MKdQuVRlgROqs7CL9yAW6nWpiUK4UpKeSZJlV5XmCD\n\tCH4j8raUwETzw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660081470;\n\tbh=U+5nXoRu/zYFqr9/790mhfzS8N3f3mHMZ5NdtUQ2Bhc=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=sNekTwOStVyj/ms/u0WUcYx0F/csgDNI30AfgMQnPU15eZMAxAszB8Fq8rEduUVdd\n\tS/0Uj0qUtevY+nT5DdGvDu+is+l5h7mokwlErXarBS7miB+K1cmnoejcksOfwMQ43W\n\tzQkISp6bXmLON90cWhEdh/KzUcEV5Y5va6/erW4E="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"sNekTwOS\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220809205042.344923-5-utkarsh02t@gmail.com>","References":"<20220809205042.344923-1-utkarsh02t@gmail.com>\n\t<20220809205042.344923-5-utkarsh02t@gmail.com>","To":"Utkarsh Tiwari <utkarsh02t@gmail.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 09 Aug 2022 22:44:28 +0100","Message-ID":"<166008146806.2423137.474144980610233936@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v7 4/8] qcam: CamSelectDialog: Display\n\tLocation and Model propety of camera","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":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24494,"web_url":"https://patchwork.libcamera.org/comment/24494/","msgid":"<CAHbe+E0-=WE321R92nEdPP0A_PRsr-7Lp71kBsB2ZHmqaJbqmg@mail.gmail.com>","date":"2022-08-09T21:51:58","subject":"Re: [libcamera-devel] [PATCH v7 4/8] qcam: CamSelectDialog: Display\n\tLocation and Model propety of camera","submitter":{"id":114,"url":"https://patchwork.libcamera.org/api/people/114/","name":"Utkarsh Tiwari","email":"utkarsh02t@gmail.com"},"content":"Hi Kieran thanks for the review\n\nOn Wed, 10 Aug, 2022, 03:14 Kieran Bingham, <kieran.bingham@ideasonboard.com>\nwrote:\n\n> Quoting Utkarsh Tiwari (2022-08-09 21:50:38)\n> > The camera selection dialog currently only displays the camera Id.\n> > Display the camera location and camera model if available.\n> >\n> > Signed-off-by: Utkarsh Tiwari <utkarsh02t@gmail.com>\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > ---\n> > Difference :\n> >         1. Now use value_or for optional\n> >         2. Not use lambda and make a private member function\n> >  src/qcam/cam_select_dialog.cpp | 52 ++++++++++++++++++++++++++++++++++\n> >  src/qcam/cam_select_dialog.h   | 10 +++++++\n> >  2 files changed, 62 insertions(+)\n> >\n> > diff --git a/src/qcam/cam_select_dialog.cpp\n> b/src/qcam/cam_select_dialog.cpp\n> > index d8982800..f97ad6eb 100644\n> > --- a/src/qcam/cam_select_dialog.cpp\n> > +++ b/src/qcam/cam_select_dialog.cpp\n> > @@ -7,6 +7,7 @@\n> >\n> >  #include \"cam_select_dialog.h\"\n> >\n> > +#include <memory>\n> >  #include <string>\n> >\n> >  #include <libcamera/camera.h>\n> > @@ -30,6 +31,14 @@\n> CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager\n> *cameraManag\n> >         for (const auto &cam : cm_->cameras())\n> >\n>  cameraIdComboBox_->addItem(QString::fromStdString(cam->id()));\n> >\n> > +       /* Set camera information labels. */\n> > +       cameraLocation_ = new QLabel;\n> > +       cameraModel_ = new QLabel;\n> > +\n> > +       handleCameraChange();\n> > +       connect(cameraIdComboBox_, &QComboBox::currentTextChanged,\n> > +               this, &CameraSelectorDialog::handleCameraChange);\n> > +\n> >         /* Setup the QDialogButton Box */\n> >         QDialogButtonBox *buttonBox =\n> >                 new QDialogButtonBox(QDialogButtonBox::Ok |\n> > @@ -41,7 +50,10 @@\n> CameraSelectorDialog::CameraSelectorDialog(libcamera::CameraManager\n> *cameraManag\n> >                 this, &QDialog::reject);\n> >\n> >         /* Set the layout. */\n> > +\n> >         layout->addRow(\"Camera:\", cameraIdComboBox_);\n> > +       layout->addRow(\"Location:\", cameraLocation_);\n> > +       layout->addRow(\"Model:\", cameraModel_);\n> >         layout->addWidget(buttonBox);\n> >  }\n> >\n> > @@ -63,3 +75,43 @@ void\n> CameraSelectorDialog::cameraRemoved(libcamera::Camera *camera)\n> >\n> >         cameraIdComboBox_->removeItem(cameraIndex);\n> >  }\n> > +\n> > +/* Camera Information */\n> > +void CameraSelectorDialog::handleCameraChange()\n> > +{\n> > +       updateCamInfo(cm_->get(getCameraId()));\n> > +}\n> > +\n> > +void CameraSelectorDialog::updateCamInfo(const\n> std::shared_ptr<libcamera::Camera> &camera)\n> > +{\n> > +       if (!camera)\n> > +               return;\n> > +\n> > +       const libcamera::ControlList &cameraProperties =\n> camera->properties();\n> > +\n> > +       const auto &location =\n> > +               cameraProperties.get(libcamera::properties::Location);\n> > +       if (location) {\n> > +               switch (*location) {\n> > +               case libcamera::properties::CameraLocationFront:\n> > +                       cameraLocation_->setText(\"Internal front\n> camera\");\n> > +                       break;\n> > +               case libcamera::properties::CameraLocationBack:\n> > +                       cameraLocation_->setText(\"Internal back camera\");\n> > +                       break;\n> > +               case libcamera::properties::CameraLocationExternal:\n> > +                       cameraLocation_->setText(\"External camera\");\n> > +                       break;\n> > +               default:\n> > +                       cameraLocation_->setText(\"Unknown\");\n> > +               }\n> > +       } else {\n> > +               cameraLocation_->setText(\"Unknown\");\n> > +       }\n> > +\n> > +       const auto &model = cameraProperties\n> > +                                   .get(libcamera::properties::Model)\n> > +                                   .value_or(\"Unknown\");\n> > +\n> > +       cameraModel_->setText(QString::fromStdString(model));\n> > +}\n> > diff --git a/src/qcam/cam_select_dialog.h b/src/qcam/cam_select_dialog.h\n> > index 567083ae..359df811 100644\n> > --- a/src/qcam/cam_select_dialog.h\n> > +++ b/src/qcam/cam_select_dialog.h\n> > @@ -11,11 +11,14 @@\n> >\n> >  #include <libcamera/camera.h>\n> >  #include <libcamera/camera_manager.h>\n> > +#include <libcamera/controls.h>\n> > +#include <libcamera/property_ids.h>\n> >\n> >  #include <QComboBox>\n> >  #include <QDialog>\n> >  #include <QDialogButtonBox>\n> >  #include <QFormLayout>\n> > +#include <QLabel>\n> >  #include <QString>\n> >\n> >  class CameraSelectorDialog : public QDialog\n> > @@ -33,9 +36,16 @@ public:\n> >         void cameraAdded(libcamera::Camera *camera);\n> >\n> >         void cameraRemoved(libcamera::Camera *camera);\n> > +\n> > +       /* Camera Information */\n> > +       void updateCamInfo(const std::shared_ptr<libcamera::Camera>\n> &camera);\n> > +       void handleCameraChange();\n> > +\n> >  private:\n> >         libcamera::CameraManager *cm_;\n> >\n> >         /* UI elements. */\n> >         QComboBox *cameraIdComboBox_;\n> > +       QLabel *cameraLocation_;\n> > +       QLabel *cameraModel_;\n>\n> Do these actually need to be pointers? What happens if they are\n> allcoated as part of the CameraSelectorDialog ? - then we wouldn't need\n> to call 'new' and they wouldn't be leaked (well, the lifetime would be\n> directly associated with the CameraSelectorDialog at least)\n>\nActually yes, the layout needs a pointer to the widget. Also the widget\nto which the layout belongs takes the ownership of the widget. And when\nit gets destroyed these are too.\n\n> >  };\n> > --\n> > 2.25.1\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 3A224BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  9 Aug 2022 21:52:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 93B2B6332B;\n\tTue,  9 Aug 2022 23:52:13 +0200 (CEST)","from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com\n\t[IPv6:2607:f8b0:4864:20::1032])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5E6DB61FAA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  9 Aug 2022 23:52:12 +0200 (CEST)","by mail-pj1-x1032.google.com with SMTP id ha11so12969262pjb.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 09 Aug 2022 14:52:12 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660081933;\n\tbh=2DtiyhvKlj6Xxbrmi5VIjiBO9KTUArxpl2wUbvEKHZ0=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=K++HCb4ZbstFh6VpqkKoLAm8KZwAl+qSEPL86S6sWNyOKsyOSHXxk3rhm1XGExp5T\n\t36/XiCgLKPdnql2cWHZSajbvNU6RGm1NfYIUvR9AqKPddTqfAzXHEAPcSxqH8omy08\n\tJtbSnOLmQYuEZk8UWVTETfaAmI7zGeRKHfz5KBKaEaFV8F33Gocyxs+IxOJuhFIELp\n\tFUdAvNdZebCzddZaDAeez/8miD2QQxXxBjfce+/u1EnD9MrapaVHlTybgMnAyV2TTs\n\tMIcBxGboVf+fyux1Us+BVplvratEtOkQC0dui/MZuoH+7mqCHFSHS4NbvOUYTQCxG4\n\tatpE7Bwf7uLGg==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc;\n\tbh=CTKcYYriIVPC2E5cX0FH15xYpFmquUh2pFRzi7hESQs=;\n\tb=Y4WXBXtzzEfOXvRW/sV5xAPnrNrGQGfFJJKVKLQNbUA6GB6IC0gsoV34VVRz+rPsxv\n\t4kQfK0ff9qvzpQD41zEM4efbwcGaC/W1sSRC5BTCA3gp6I3EtlLbb4SyESbiBd8Iv17u\n\t26aFyk36UTJxUKtySHuRFcqh+RTkBgtMvTkBgoAZEkETEahRL3xqEoQySEz4kYFdGF9J\n\tz34V2/gpIWa2xjvO6ZRXMNSw5LC/eYGw0QApPsdoK7eIEg/XVEjmT89wWmAZybbNlas1\n\tbGAJ7vjCP3mKskQNssrGp64eyiruIUHyq5sH7IkoO/ZzxL1i6ffJu9Pb6AiQMu538ByA\n\tnlYQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"Y4WXBXtz\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc;\n\tbh=CTKcYYriIVPC2E5cX0FH15xYpFmquUh2pFRzi7hESQs=;\n\tb=u8CPsmhUwyRMS31fVHD6DvBpCdBuEy7Ncdj/oepGtCwNW0xBNA3qcOxc6uEFluyGrl\n\tG9IBB8NWh23eIX1npm0nedmbiSm2AYMwHYLQVJG1LWh2fdcpeZq9y5H0CBOZpDzECQaR\n\t++ZcdONWZw8WqZM16mr/f3QMdPuQyJGQVRk2hRqspHWq81fUVpQzG4tB45MCYIpvyV66\n\tghDEwsfLAmqxqBOP/fA0ZGj72V0aWrvRNbubH+jnm2mihHwgbFc6pJXIMBPCpUMwfmKB\n\t9j6a683ChKkYWZk8Egfn/LL/Zd0V80t4sUpejakBPNptlJfKQNnGlCEkdvDYZ3Zvd+Ef\n\tTWOQ==","X-Gm-Message-State":"ACgBeo0boZSefszSOPwEAmT+Zvkmg+X8LeYtBUis+ZblwauEYwGmzRb6\n\tZMt7YS9wuVW3Pp2dBr88c5FaFRORw2FHV6qJeMQ8y612","X-Google-Smtp-Source":"AA6agR5gdub9bFDRoB+296zh6p5lYbtq860m0Zv3wFXEH3gb20lFS+U54vntHFyWuVpdDUfsUNtQL+sOtfjj3FbwmQU=","X-Received":"by 2002:a17:902:70c7:b0:170:9030:2665 with SMTP id\n\tl7-20020a17090270c700b0017090302665mr15985679plt.73.1660081930848;\n\tTue, 09 Aug 2022 14:52:10 -0700 (PDT)","MIME-Version":"1.0","References":"<20220809205042.344923-1-utkarsh02t@gmail.com>\n\t<20220809205042.344923-5-utkarsh02t@gmail.com>\n\t<166008146806.2423137.474144980610233936@Monstersaurus>","In-Reply-To":"<166008146806.2423137.474144980610233936@Monstersaurus>","Date":"Wed, 10 Aug 2022 03:21:58 +0530","Message-ID":"<CAHbe+E0-=WE321R92nEdPP0A_PRsr-7Lp71kBsB2ZHmqaJbqmg@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"multipart/alternative; boundary=\"000000000000c94ea805e5d5f1c3\"","Subject":"Re: [libcamera-devel] [PATCH v7 4/8] qcam: CamSelectDialog: Display\n\tLocation and Model propety of camera","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":"Utkarsh Tiwari via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Utkarsh Tiwari <utkarsh02t@gmail.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]