[{"id":24692,"web_url":"https://patchwork.libcamera.org/comment/24692/","msgid":"<Yv6p85Wow4oL586C@pendragon.ideasonboard.com>","date":"2022-08-18T21:06:59","subject":"Re: [libcamera-devel] [PATCH v3 17/17] py: Add hotplug-monitor.py","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Tomi,\n\nThank you for the patch.\n\nOn Fri, Jul 01, 2022 at 11:45:21AM +0300, Tomi Valkeinen wrote:\n> Add a simple example script which waits for camera hotplug events.\n> \n> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/py/examples/hotplug-monitor.py | 39 ++++++++++++++++++++++++++++++\n>  1 file changed, 39 insertions(+)\n>  create mode 100644 src/py/examples/hotplug-monitor.py\n> \n> diff --git a/src/py/examples/hotplug-monitor.py b/src/py/examples/hotplug-monitor.py\n> new file mode 100644\n> index 00000000..5f42970c\n> --- /dev/null\n> +++ b/src/py/examples/hotplug-monitor.py\n> @@ -0,0 +1,39 @@\n> +#!/usr/bin/env python3\n> +\n> +# SPDX-License-Identifier: GPL-2.0-or-later\n> +# Copyright (C) 2022, Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n> +\n> +import libcamera as libcam\n> +import selectors\n> +import sys\n> +\n> +\n> +def main():\n> +    cm = libcam.CameraManager.singleton()\n> +\n> +    sel = selectors.DefaultSelector()\n> +    sel.register(cm.event_fd, selectors.EVENT_READ)\n> +\n> +    print('Waiting for camera hotplug events... (CTRL-C to exit)')\n> +\n> +    while True:\n> +        try:\n> +            events = sel.select()\n> +            if not events:\n> +                continue\n> +        except KeyboardInterrupt:\n> +            break\n> +\n> +        events = cm.get_events()\n> +\n> +        for ev in events:\n> +            if ev.type == libcam.Event.Type.CameraAdded:\n> +                print('Camera added:', ev.camera)\n> +            elif ev.type == libcam.Event.Type.CameraRemoved:\n> +                print('Camera removed:', ev.camera)\n> +\n> +    return 0\n> +\n> +\n> +if __name__ == '__main__':\n> +    sys.exit(main())","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 0A5D2C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Aug 2022 21:07:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B436561FC0;\n\tThu, 18 Aug 2022 23:07:03 +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 9147661FA7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Aug 2022 23:07:02 +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 3B20B8B;\n\tThu, 18 Aug 2022 23:07:02 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660856823;\n\tbh=hr9GXcNIhplgRPy2CvGORZVSR7pdwPnMXUb37GSYfbw=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=D/0Xdb4Gr3McsJ7K6/jDn29RMUcxY7Gy/mPQY+Vr2+nPuR1jVca0PoQhahPX0rcKB\n\t9MEfWbllTvmbX9JVpTJDLj8wROz5gStvSkblV92RDvdwpkTLQuHDTSifdqPFHWpbz+\n\tl5admu6mJkMz7gQI3DM3a1wdkklcCz58Tccrm0AHjf+C2dexDv6fsCnjNZdL9g1GFj\n\tYK6xXuky6M4Aja+WwRCQ+4PIFQSF+yL1DX0qFaWKzDhySzbxD5j1Q9SOwu/Wv8ThzI\n\tppkTNzsbVSs0Ug5dzIAmuu21a9/sRu2hUWcBvgA8TXRYdmHJ/gjvtljLu65xaTN5l9\n\th+wh40/Jof0Lg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660856822;\n\tbh=hr9GXcNIhplgRPy2CvGORZVSR7pdwPnMXUb37GSYfbw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=R7RPuh9TZwtbjTtv5RoP1VImO3V47YVcQhFF6kXql6gkQWoo/Wj/CWjtg6AVvOsjF\n\tHozrR1jjA+0B/6yf0DUN9goLqbPfA7LP/gVJbM6DSDoILcoXDAb5kHVbc/LAGq41hL\n\t7uEtn4Qi1VYc3aWEt9zjWxDgSaUWKG+pYbaIdR4k="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"R7RPuh9T\"; dkim-atps=neutral","Date":"Fri, 19 Aug 2022 00:06:59 +0300","To":"Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>","Message-ID":"<Yv6p85Wow4oL586C@pendragon.ideasonboard.com>","References":"<20220701084521.31831-1-tomi.valkeinen@ideasonboard.com>\n\t<20220701084521.31831-18-tomi.valkeinen@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220701084521.31831-18-tomi.valkeinen@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 17/17] py: Add hotplug-monitor.py","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]