Show a patch.

GET /api/1.1/patches/12936/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 12936,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/12936/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/12936/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20210712215645.30478-24-laurent.pinchart@ideasonboard.com>",
    "date": "2021-07-12T21:56:38",
    "name": "[libcamera-devel,v2,23/30] cam: Move camera session creation and monitoring setup to run()",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "5180065a783b0713109e7c4b870ac28121226705",
    "submitter": {
        "id": 2,
        "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api",
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/12936/mbox/",
    "series": [
        {
            "id": 2229,
            "url": "https://patchwork.libcamera.org/api/1.1/series/2229/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2229",
            "date": "2021-07-12T21:56:15",
            "name": "Multi-camera support in the cam application",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/2229/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/12936/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/12936/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 4B0FDC3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 12 Jul 2021 21:57:57 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E15A268521;\n\tMon, 12 Jul 2021 23:57:56 +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 8E34668513\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 12 Jul 2021 23:57:43 +0200 (CEST)",
            "from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2A392CC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 12 Jul 2021 23:57:43 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"ADx5p1oa\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1626127063;\n\tbh=axJWEf8Y922RXJb0H+KNMyUQkg0I2E+veG4L1mqU0xY=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=ADx5p1oadgAGwS80xE8E5u6o3YpHDOKnKXb3BnzYZqJ1WQQyDo6ya2+U651HLckXj\n\tjKC8Q1VojQkJ96uq/arRqK90XdFYRxxcRrJLo6TPTVeeThFWtLSX7ROSRpjIiI+MrI\n\tVomqxOO/g57DKUKK+ymUnDhl9T+9rz2HNf4HtHPY=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Tue, 13 Jul 2021 00:56:38 +0300",
        "Message-Id": "<20210712215645.30478-24-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.31.1",
        "In-Reply-To": "<20210712215645.30478-1-laurent.pinchart@ideasonboard.com>",
        "References": "<20210712215645.30478-1-laurent.pinchart@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v2 23/30] cam: Move camera session\n\tcreation and monitoring setup to run()",
        "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>"
    },
    "content": "Move creation of the camera session and setup of the hotplug monitoring\nfrom the init() function to the run() function, to group all the code\nthat performs operations based on command line options in a single\nplace. The cleanup() call on session creation failure isn't required\nanymore, as the cleanup() function is called unconditionally upon return\nfrom run().\n\nThis change allows merging two different code blocks related to hotplug\nmonitoring.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n src/cam/main.cpp | 38 ++++++++++++++++++--------------------\n 1 file changed, 18 insertions(+), 20 deletions(-)",
    "diff": "diff --git a/src/cam/main.cpp b/src/cam/main.cpp\nindex 03e62f305f24..cba0793ac39b 100644\n--- a/src/cam/main.cpp\n+++ b/src/cam/main.cpp\n@@ -84,26 +84,6 @@ int CamApp::init(int argc, char **argv)\n \t\treturn ret;\n \t}\n \n-\tif (options_.isSet(OptCamera)) {\n-\t\tsession_ = std::make_unique<CameraSession>(cm_.get(), options_);\n-\t\tif (!session_->isValid()) {\n-\t\t\tstd::cout << \"Failed to create camera session\" << std::endl;\n-\t\t\tcleanup();\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\n-\t\tstd::cout << \"Using camera \" << session_->camera()->id()\n-\t\t\t  << std::endl;\n-\n-\t\tsession_->captureDone.connect(this, &CamApp::captureDone);\n-\t}\n-\n-\tif (options_.isSet(OptMonitor)) {\n-\t\tcm_->cameraAdded.connect(this, &CamApp::cameraAdded);\n-\t\tcm_->cameraRemoved.connect(this, &CamApp::cameraRemoved);\n-\t\tstd::cout << \"Monitoring new hotplug and unplug events\" << std::endl;\n-\t}\n-\n \treturn 0;\n }\n \n@@ -275,6 +255,19 @@ int CamApp::run()\n \t\t}\n \t}\n \n+\tif (options_.isSet(OptCamera)) {\n+\t\tsession_ = std::make_unique<CameraSession>(cm_.get(), options_);\n+\t\tif (!session_->isValid()) {\n+\t\t\tstd::cout << \"Failed to create camera session\" << std::endl;\n+\t\t\treturn -EINVAL;\n+\t\t}\n+\n+\t\tstd::cout << \"Using camera \" << session_->camera()->id()\n+\t\t\t  << std::endl;\n+\n+\t\tsession_->captureDone.connect(this, &CamApp::captureDone);\n+\t}\n+\n \tif (options_.isSet(OptListControls)) {\n \t\tret = listControls();\n \t\tif (ret)\n@@ -312,7 +305,12 @@ int CamApp::run()\n \t}\n \n \tif (options_.isSet(OptMonitor)) {\n+\t\tstd::cout << \"Monitoring new hotplug and unplug events\" << std::endl;\n \t\tstd::cout << \"Press Ctrl-C to interrupt\" << std::endl;\n+\n+\t\tcm_->cameraAdded.connect(this, &CamApp::cameraAdded);\n+\t\tcm_->cameraRemoved.connect(this, &CamApp::cameraRemoved);\n+\n \t\tloop_.exec();\n \t}\n \n",
    "prefixes": [
        "libcamera-devel",
        "v2",
        "23/30"
    ]
}