From patchwork Sun Oct 13 23:27:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 2182 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 185F561563 for ; Mon, 14 Oct 2019 01:28:03 +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 765F633A for ; Mon, 14 Oct 2019 01:28:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1571009282; bh=+NsxXDkr9tDoVQk0IFpz0L/4ul7KL6ZL6I0NeBBjNAw=; h=From:To:Subject:Date:From; b=fVhto4hYWXWPYzi32jwLEBmJDMp0gHBb7SRVJJZuiaEOASgBsnuUdQ6anoWQY1X4c H99PHJ+328liISwiKrxuKO+77MJ41rVuiHHFAjJeS9INJm/VEyKn8w59WUy3ixZHrz FmMMA/ApdpDPsmwu4l51dyrnqPssxipFQQrre4OQ= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Mon, 14 Oct 2019 02:27:46 +0300 Message-Id: <20191013232755.3292-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 00/10] Merge V4L2ControlInfoMap and ControlInfoMap X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Oct 2019 23:28:03 -0000 Hello, The subject says it all :-) This series is (hopefully) the last step in the generalisation of control support. It removes V4L2ControlInfo, V4L2ControlInfoMap and V4L2ControlList classes, and move their features to core control classes (after generalising them properly of course). The only two remaining control classes specific to V4L2 are V4L2ControlId and V4L2ControlRange, only for the purpose of constructing a ControlId and ControlRange respectively from a struct v4l2_query_ext_ctrl. Thanks to Jacopo for his initial work on this topic, which I have taken, reworked and extended. Please see individual patches for details. Jacopo Mondi (1): libcamera: v4l2_controls: Move V4L2ControlId out of V4L2ControlInfo Laurent Pinchart (9): libcamera: v4l2_controls: Remove V4L2ControlInfo::size() libcamera: controls: Prevent copies of ControlId class libcamera: v4l2_controls: Index V4L2ControlInfoMap by ControlId * test: v4l2_videodevice: controls: Use correct control range in check libcamera: v4l2_controls: Replace V4L2ControlInfo with V4L2ControlRange libcamera: v4l2_controls: Store a ControlRange in V4L2ControlInfoMap libcamera: v4l2_controls: Derive V4L2ControlInfoMap from ControlInfoMap libcamera: controls: Merge ControlInfoMap and V4L2ControlInfoMap libcamera: v4l2_controls: Remove V4L2ControlList class include/ipa/ipa_interface.h | 2 +- include/libcamera/controls.h | 53 +++++++- src/ipa/ipa_vimc.cpp | 2 +- src/ipa/rkisp1/rkisp1.cpp | 16 +-- src/libcamera/camera_sensor.cpp | 2 +- src/libcamera/controls.cpp | 149 ++++++++++++++++++++++- src/libcamera/include/camera_sensor.h | 4 +- src/libcamera/include/v4l2_controls.h | 50 +------- src/libcamera/include/v4l2_device.h | 9 +- src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 11 +- src/libcamera/pipeline/uvcvideo.cpp | 18 +-- src/libcamera/pipeline/vimc.cpp | 17 +-- src/libcamera/proxy/ipa_proxy_linux.cpp | 2 +- src/libcamera/v4l2_controls.cpp | 97 ++------------- src/libcamera/v4l2_device.cpp | 40 +++--- test/v4l2_videodevice/controls.cpp | 28 ++--- 17 files changed, 289 insertions(+), 213 deletions(-)