[{"id":558,"web_url":"https://patchwork.libcamera.org/comment/558/","msgid":"<20190124180613.GZ4127@bigcity.dyn.berto.se>","date":"2019-01-24T18:06:14","subject":"Re: [libcamera-devel] [PATCH 07/10] libcamera: camera_manager: Add\n\tmethod to unregister a camera","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your work.\n\nOn 2019-01-24 12:16:48 +0200, Laurent Pinchart wrote:\n> The new removeCamera() method is meant to be used by pipeline handlers\n> to unregister a camera in case of device disconnection.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  include/libcamera/camera_manager.h |  1 +\n>  src/libcamera/camera_manager.cpp   | 21 +++++++++++++++++++++\n>  2 files changed, 22 insertions(+)\n> \n> diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h\n> index 45e72df0ef65..56dbd26f64db 100644\n> --- a/include/libcamera/camera_manager.h\n> +++ b/include/libcamera/camera_manager.h\n> @@ -28,6 +28,7 @@ public:\n>  \tstd::shared_ptr<Camera> get(const std::string &name);\n>  \n>  \tvoid addCamera(std::shared_ptr<Camera> camera);\n> +\tvoid removeCamera(Camera *camera);\n>  \n>  \tstatic CameraManager *instance();\n>  \n> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp\n> index 3eccf20c4ce9..f90201ade18b 100644\n> --- a/src/libcamera/camera_manager.cpp\n> +++ b/src/libcamera/camera_manager.cpp\n> @@ -191,6 +191,27 @@ void CameraManager::addCamera(std::shared_ptr<Camera> camera)\n>  \tcameras_.push_back(std::move(camera));\n>  }\n>  \n> +/**\n> + * \\brief Remove a camera from the camera manager\n> + * \\param[in] camera The camera to be removed\n> + *\n> + * This function is called by pipeline handlers to unregister cameras from the\n> + * camera manager. Unregistered cameras won't be reported anymore by the\n> + * cameras() and get() calls, but references may still exist in applications.\n> + */\n> +void CameraManager::removeCamera(Camera *camera)\n> +{\n> +\tfor (auto iter = cameras_.begin(); iter != cameras_.end(); ++iter) {\n> +\t\tif (iter->get() == camera) {\n> +\t\t\tLOG(Camera, Debug)\n> +\t\t\t\t<< \"Unregistering camera '\"\n> +\t\t\t\t<< camera->name() << \"'\";\n> +\t\t\tcameras_.erase(iter);\n> +\t\t\treturn;\n> +\t\t}\n> +\t}\n> +}\n> +\n>  /**\n>   * \\brief Retrieve the camera manager instance\n>   *\n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com\n\t[IPv6:2a00:1450:4864:20::12a])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E1FB960C82\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jan 2019 19:06:17 +0100 (CET)","by mail-lf1-x12a.google.com with SMTP id b20so4985939lfa.12\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jan 2019 10:06:17 -0800 (PST)","from localhost (89-233-230-99.cust.bredband2.com. [89.233.230.99])\n\tby smtp.gmail.com with ESMTPSA id\n\tq8-v6sm1091790lji.69.2019.01.24.10.06.14\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tThu, 24 Jan 2019 10:06:15 -0800 (PST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to\n\t:user-agent; bh=2+Mm+ABmZaEBEmiWdHeaU1263xouHNtSD+jdNrlLIek=;\n\tb=dCVvjCmOa+bMs6IBhfRi2gU0S4/8tTfdJFi6+xg6r5XpeMvN4Aw2BtcHjeNZsNasfU\n\tIN6Rj1uvvOUqQIw/qYwWZgv2MV2r1qfB1hfMbfIfIQsLFWX1OBqsQiuKGFFXDaqwH3k3\n\teLjGL78LcbO/lVRqaPAQjIU1qD7DZLk4KiDO1CKIaV5mKKp+I5K6o3QAD5udWqs5raxi\n\tGuS47eDNndNouKPA46664T/KGjmp8vvjiM5pBD22OlB1XR4bWwprfME8Y0bge+4KTvTT\n\tOB1BS50eG6/h2O5kGQx/RAG1TMkSLrL1Dz/YNxH3MY9laf59buy/9y1Hyv/xdy2ATNvO\n\tWFvg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to:user-agent;\n\tbh=2+Mm+ABmZaEBEmiWdHeaU1263xouHNtSD+jdNrlLIek=;\n\tb=B61GCbSDSnKbiWDBUsczjBmnyyTVf5wNXlj5S9Y2SBqk01tT1Ut0hlSUUTzjvdHuJR\n\ttpDf1gK0vsj00Ed4yxzGwAeFvdLaSidh0Rv3NoCAdCrsr9PKbftFx+aw5O5QDh0Zsagq\n\tNzVAkqEvt5MRCURqVFE8Fo3c8cmjXiae7L/OXSkbmYNQFlw5vtUnOkaOcFYBrH6TZUzU\n\tc5c4GdqSwSHjL3l0WuBbWpeGUPH9Ub8W1KKXn/a9PzJJG8cS5rGUIxnB9b+zLPcmU9Ka\n\tf4Ik2sp/uyGwpL6rCwT5ObKuG+6dKHd/+Up4WiY15bSyu1x/dE3Ktsui+Zyr2th7PYdn\n\tDmEQ==","X-Gm-Message-State":"AJcUukfOwnp069Ton3YLtndDhwItvvAsXqiHhEA4G2A31+eShmmpxGNw\n\t/NMtwfhvxl/W+reQy0tImaZNnxKhJQw=","X-Google-Smtp-Source":"ALg8bN5R6NbA/R7o/gl3yPkftgVVb08XzpHQI0gBBTDcVloNWvc9p/UymIDIn+zlgvCiEbkGRaPlJQ==","X-Received":"by 2002:a19:54d7:: with SMTP id\n\tb84mr6142873lfl.131.1548353177097; \n\tThu, 24 Jan 2019 10:06:17 -0800 (PST)","Date":"Thu, 24 Jan 2019 19:06:14 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190124180613.GZ4127@bigcity.dyn.berto.se>","References":"<20190124101651.9993-1-laurent.pinchart@ideasonboard.com>\n\t<20190124101651.9993-8-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190124101651.9993-8-laurent.pinchart@ideasonboard.com>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH 07/10] libcamera: camera_manager: Add\n\tmethod to unregister a camera","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 24 Jan 2019 18:06:18 -0000"}}]