From patchwork Mon Jul 1 20:14:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 1559 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9DFC36157C for ; Mon, 1 Jul 2019 22:15:28 +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 27175524 for ; Mon, 1 Jul 2019 22:15:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1562012128; bh=6YODziS238wcuR0ZVhMScqZbl29GMv0g5MyjHEkqpGQ=; h=From:To:Subject:Date:From; b=DMxpYL5/dIxnoo4oYZ/eQjYYFbz0/zjyAlP7FW7tOXBO8rPljSnletSyak0KkUiyX sCRJQmT2V1pkNnAMj7myWDhnq2HbT45jpo+se5Hp1xW2gPnYKh1OgtdSUj78q70asz qxmDb2ZgYECvt1K+f+svREYghgPH3Vmk3i4r2h7A= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Mon, 1 Jul 2019 23:14:51 +0300 Message-Id: <20190701201504.28487-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v4 00/13] 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: Mon, 01 Jul 2019 20:15:28 -0000 Hello, Here's the fourth version of the libcamera controls series, taken over from Kieran (with his consent and help). Compared to v3, no major rework has occurred. Please see individual patches for a description of the small typo fixes, documentation updates or small API changes. 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 03/13) Kieran Bingham (8): 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 | 2 + include/libcamera/request.h | 3 + src/libcamera/camera.cpp | 12 + src/libcamera/camera_sensor.cpp | 10 +- src/libcamera/controls.cpp | 552 +++++++++++++++++++++++ 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 | 124 ++++- src/libcamera/pipeline/vimc.cpp | 107 ++++- src/libcamera/pipeline_handler.cpp | 19 + src/libcamera/request.cpp | 12 +- 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, 1557 insertions(+), 50 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