From patchwork Sun Jun 30 23:38:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 1542 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id B6BDF60BC0 for ; Mon, 1 Jul 2019 01:38:42 +0200 (CEST) Received: from pendragon.bb.dnainternet.fi (dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 46D0F255 for ; Mon, 1 Jul 2019 01:38:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1561937922; bh=XtrfrxhYRN2qL+llWtogKdvu3xgUxkuoa2M7LOqi+sM=; h=From:To:Subject:Date:From; b=r8ExGPTw6L2VjLV9evixgx5NSonwB20nXW3JvuewEB6IUCerJocuUhf0rKqB7c3VD jSb4qg/pAF8pVsdnpPELvryGa9cSauFbzq0cHdkmNZqzU6/vtd/rdy8cJnLK4jR/8H YhsKNTOCiB1IQU3RvHUdaio5QkZSK6x7cg8q64zk= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Mon, 1 Jul 2019 02:38:03 +0300 Message-Id: <20190630233817.10130-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 00/14] libcamera Controls X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Jun 2019 23:38:42 -0000 Hello, Here's the third version of the libcamera controls series, taken over from Kieran (with his consent and help). The main API changes since v2 are - The Value class has been renamed to ControlValue - The ControlList class is now indexed by ControlInfo pointer instead of instance - The ControlList class is constructed for a camera, and looks up ControlInfo from that camera - The V4L2ControlInfo class now exposes the min and max values - The Camera has a new method to expose all the controls it supports Notable changes are also file renames (control_definitions.h -> control_ids.h and control_definitions.cpp -> control_types.cpp), dynamic query of supported controls in the UVC pipeline handler, control support in the VIMC pipeline handler and handling of control minimum/maximum values in the qcam proof-of-concept patch. Todo items include - Better documentation for the initial controls - Integer type handling for ControlValue (see patch 04/14) Kieran Bingham (9): libcamera: Use 'files()' function to specify gen-header.sh libcamera: controls: Introduce control-related data types libcamera: camera: Provide a list of ControlInfo libcamera: request: Add a ControlList libcamera: pipeline: uvcvideo: Add controls support libcamera: test: Add ControlValue test libcamera: test: Add ControlInfo test libcamera: test: Add ControlList tests [PoC] QCam: Control demo: A SineWave Brightness Laurent Pinchart (5): libcamera: v4l2_controls: Add min and max to V4L2ControlInfo libcamera: v4l2_device: Add method to retrieve all supported controls libcamera: controls: Extend ControlList to access controls by ID libcamera: controls: Add a set of initial controls libcamera: pipeline: vimc: Add controls support Documentation/Doxyfile.in | 3 +- include/libcamera/camera.h | 3 + include/libcamera/control_ids.h | 41 ++ include/libcamera/controls.h | 138 ++++++ include/libcamera/meson.build | 4 +- include/libcamera/request.h | 3 + src/libcamera/camera.cpp | 12 + src/libcamera/camera_sensor.cpp | 10 +- src/libcamera/controls.cpp | 532 +++++++++++++++++++++++ src/libcamera/gen-controls.awk | 106 +++++ src/libcamera/include/camera_sensor.h | 5 +- src/libcamera/include/pipeline_handler.h | 4 + src/libcamera/include/v4l2_controls.h | 12 +- src/libcamera/include/v4l2_device.h | 9 +- src/libcamera/meson.build | 11 + src/libcamera/pipeline/uvcvideo.cpp | 129 +++++- src/libcamera/pipeline/vimc.cpp | 105 ++++- src/libcamera/pipeline_handler.cpp | 19 + src/libcamera/request.cpp | 15 +- src/libcamera/v4l2_controls.cpp | 19 + src/libcamera/v4l2_device.cpp | 25 +- src/qcam/main_window.cpp | 29 +- src/qcam/main_window.h | 3 + test/controls/control_info.cpp | 62 +++ test/controls/control_list.cpp | 213 +++++++++ test/controls/control_value.cpp | 69 +++ test/controls/meson.build | 13 + test/meson.build | 1 + 28 files changed, 1540 insertions(+), 55 deletions(-) create mode 100644 include/libcamera/control_ids.h create mode 100644 include/libcamera/controls.h create mode 100644 src/libcamera/controls.cpp create mode 100755 src/libcamera/gen-controls.awk create mode 100644 test/controls/control_info.cpp create mode 100644 test/controls/control_list.cpp create mode 100644 test/controls/control_value.cpp create mode 100644 test/controls/meson.build