Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/2042/?format=api
{ "id": 2042, "url": "https://patchwork.libcamera.org/api/1.1/covers/2042/?format=api", "web_url": "https://patchwork.libcamera.org/cover/2042/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20190928152238.23752-1-laurent.pinchart@ideasonboard.com>", "date": "2019-09-28T15:22:26", "name": "[libcamera-devel,00/12] Improve the application-facing controls API", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/2042/mbox/", "series": [ { "id": 511, "url": "https://patchwork.libcamera.org/api/1.1/series/511/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=511", "date": "2019-09-28T15:22:26", "name": "Improve the application-facing controls API", "version": 1, "mbox": "https://patchwork.libcamera.org/series/511/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/2042/comments/", "headers": { "Return-Path": "<laurent.pinchart@ideasonboard.com>", "Received": [ "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0E41760BBA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 28 Sep 2019 17:22:56 +0200 (CEST)", "from pendragon.bb.dnainternet.fi\n\t(dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi\n\t[IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8454F53B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 28 Sep 2019 17:22:55 +0200 (CEST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1569684175;\n\tbh=lSG25A/EZgMLaNsWWlurCam/UVT7fgzQ4Ywo3Ip7jPE=;\n\th=From:To:Subject:Date:From;\n\tb=bPLoNhin/qAdON4CCAlNPtRTCihKHmynsHZ2FunPxUNtGRuiGmBW51qUCN6uNjj2z\n\tOf8iXdtLwB0TDuiCAycxXbIqyLSEubN8xHmFmySpUTgAepbAg55c/JXVhpeKih8EoI\n\tF/WGR5kc4wtKI8y5avvK2izoMdEBIahKPo9FDBAI=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Sat, 28 Sep 2019 18:22:26 +0300", "Message-Id": "<20190928152238.23752-1-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.21.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH 00/12] Improve the application-facing\n\tcontrols API", "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>", "X-List-Received-Date": "Sat, 28 Sep 2019 15:22:56 -0000" }, "content": "Hello,\n\nThis patch series attempts to improbe the application-facing controls\nAPI by making it more intuitive. The main goal is to allow accessing\ncontrols stored in requests with a simple and type-safe API:\n\n Request *req = ...;\n ControlList &controls = req->controls();\n controls->set(controls::AwbEnable, false);\n controls->set(controls::ManualExposure, 1000);\n\n ...\n\n int32_t exposure = controls->get(controls::ManualExposure);\n\nThe first 4 patches achieve this goal.\n\nThe next 5 patches rework the control-related classes further to make\nControlType, ControlValue and ControlRange shared between libcamera\ncontrols and V4L2 controls.\n\nFinally, the last 3 patches introduce a ControlValidator class to remove\nthe direct dependency from ControlList to Camera. A default Camera-based\nvalidator is provided, and more validators are expected, in particular\nfor IPAs where no Camera object is available.\n\nLaurent Pinchart (12):\n libcamera: controls: Rename ControlValueType to ControlType\n libcamera: controls: Make ControlValue get/set accessors template\n methods\n libcamera: controls: Use explicit 32-bit integer types\n libcamera: controls: Improve the API towards applications\n libcamera: controls: Remove the unused ControlList::update() method\n libcamera: controls: Remove ControlInfo::id\n libcamera: controls: Rename ControlInfo to ControlRange\n libcamera: v4l2_controls: Use the ControlValue class for data storage\n libcamera: v4l2_controls: Use the ControlRange class for control info\n libcamera: Add ControlValidator\n libcamera: Add ControlValidator implementation for Camera\n libcamera: controls: Use ControlValidator to validate ControlList\n\n include/libcamera/control_ids.h | 45 +-\n include/libcamera/controls.h | 145 +++---\n include/libcamera/request.h | 7 +-\n src/libcamera/camera_controls.cpp | 53 +++\n src/libcamera/control_ids.cpp | 72 +++\n src/libcamera/control_validator.cpp | 45 ++\n src/libcamera/controls.cpp | 518 ++++++++++------------\n src/libcamera/gen-controls.awk | 106 -----\n src/libcamera/include/camera_controls.h | 30 ++\n src/libcamera/include/control_validator.h | 27 ++\n src/libcamera/include/meson.build | 2 +\n src/libcamera/include/v4l2_controls.h | 21 +-\n src/libcamera/meson.build | 13 +-\n src/libcamera/pipeline/uvcvideo.cpp | 52 +--\n src/libcamera/pipeline/vimc.cpp | 36 +-\n src/libcamera/request.cpp | 14 +-\n src/libcamera/v4l2_controls.cpp | 40 +-\n src/libcamera/v4l2_device.cpp | 8 +-\n test/controls/control_info.cpp | 62 ---\n test/controls/control_list.cpp | 96 ++--\n test/controls/control_range.cpp | 51 +++\n test/controls/control_value.cpp | 12 +-\n test/controls/meson.build | 2 +-\n 23 files changed, 746 insertions(+), 711 deletions(-)\n create mode 100644 src/libcamera/camera_controls.cpp\n create mode 100644 src/libcamera/control_ids.cpp\n create mode 100644 src/libcamera/control_validator.cpp\n delete mode 100755 src/libcamera/gen-controls.awk\n create mode 100644 src/libcamera/include/camera_controls.h\n create mode 100644 src/libcamera/include/control_validator.h\n delete mode 100644 test/controls/control_info.cpp\n create mode 100644 test/controls/control_range.cpp" }