{"id":591,"url":"https://patchwork.libcamera.org/api/patches/591/?format=json","web_url":"https://patchwork.libcamera.org/patch/591/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20190220131757.14004-4-jacopo@jmondi.org>","date":"2019-02-20T13:17:55","name":"[libcamera-devel,3/5] libcamera: ipu3: Break-out ipu3 header file","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"6c6998dca7d2453e19a411eb2fe218c0a71713c9","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/?format=json","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/591/mbox/","series":[{"id":186,"url":"https://patchwork.libcamera.org/api/series/186/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=186","date":"2019-02-20T13:17:52","name":"libcamera: IPU3: create CIO2 and IMGU devices","version":1,"mbox":"https://patchwork.libcamera.org/series/186/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/591/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/591/checks/","tags":{},"headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net\n\t[217.70.183.194])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ABBC1601E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Feb 2019 14:17:41 +0100 (CET)","from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 46D8C40016;\n\tWed, 20 Feb 2019 13:17:41 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 20 Feb 2019 14:17:55 +0100","Message-Id":"<20190220131757.14004-4-jacopo@jmondi.org>","X-Mailer":"git-send-email 2.20.1","In-Reply-To":"<20190220131757.14004-1-jacopo@jmondi.org>","References":"<20190220131757.14004-1-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH 3/5] libcamera: ipu3: Break-out ipu3\n\theader file","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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":"Wed, 20 Feb 2019 13:17:41 -0000"},"content":"As the class grows, break out the class definitions in a separate header\nfile, which can be used by other ipu3-related cpp files that will be\nadded in next commits.\n\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\n---\n src/libcamera/pipeline/ipu3/ipu3.cpp | 56 +-----------------\n src/libcamera/pipeline/ipu3/ipu3.h   | 85 ++++++++++++++++++++++++++++\n 2 files changed, 86 insertions(+), 55 deletions(-)\n create mode 100644 src/libcamera/pipeline/ipu3/ipu3.h","diff":"diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex 9065073913a2..07029dd763c9 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -14,6 +14,7 @@\n \n #include \"device_enumerator.h\"\n #include \"log.h\"\n+#include \"ipu3.h\"\n #include \"media_device.h\"\n #include \"pipeline_handler.h\"\n #include \"utils.h\"\n@@ -24,61 +25,6 @@ namespace libcamera {\n \n LOG_DEFINE_CATEGORY(IPU3)\n \n-class PipelineHandlerIPU3 : public PipelineHandler\n-{\n-public:\n-\tPipelineHandlerIPU3(CameraManager *manager);\n-\t~PipelineHandlerIPU3();\n-\n-\tstd::map<Stream *, StreamConfiguration>\n-\tstreamConfiguration(Camera *camera,\n-\t\t\t    std::vector<Stream *> &streams) override;\n-\tint configureStreams(Camera *camera,\n-\t\t\t     std::map<Stream *, StreamConfiguration> &config) override;\n-\n-\tint allocateBuffers(Camera *camera, Stream *stream) override;\n-\tint freeBuffers(Camera *camera, Stream *stream) override;\n-\n-\tint start(const Camera *camera) override;\n-\tvoid stop(const Camera *camera) override;\n-\n-\tint queueRequest(const Camera *camera, Request *request) override;\n-\n-\tbool match(DeviceEnumerator *enumerator);\n-\n-private:\n-\tclass IPU3CameraData : public CameraData\n-\t{\n-\tpublic:\n-\t\tIPU3CameraData()\n-\t\t\t: cio2_(nullptr), csi2_(nullptr), sensor_(nullptr) {}\n-\n-\t\t~IPU3CameraData()\n-\t\t{\n-\t\t\tdelete cio2_;\n-\t\t\tdelete csi2_;\n-\t\t\tdelete sensor_;\n-\t\t}\n-\n-\t\tV4L2Device *cio2_;\n-\t\tV4L2Subdevice *csi2_;\n-\t\tV4L2Subdevice *sensor_;\n-\n-\t\tStream stream_;\n-\t};\n-\n-\tIPU3CameraData *cameraData(const Camera *camera)\n-\t{\n-\t\treturn static_cast<IPU3CameraData *>(\n-\t\t\tPipelineHandler::cameraData(camera));\n-\t}\n-\n-\tvoid registerCameras();\n-\n-\tstd::shared_ptr<MediaDevice> cio2_;\n-\tstd::shared_ptr<MediaDevice> imgu_;\n-};\n-\n PipelineHandlerIPU3::PipelineHandlerIPU3(CameraManager *manager)\n \t: PipelineHandler(manager), cio2_(nullptr), imgu_(nullptr)\n {\ndiff --git a/src/libcamera/pipeline/ipu3/ipu3.h b/src/libcamera/pipeline/ipu3/ipu3.h\nnew file mode 100644\nindex 000000000000..48c2a3e16980\n--- /dev/null\n+++ b/src/libcamera/pipeline/ipu3/ipu3.h\n@@ -0,0 +1,85 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2019, Google Inc.\n+ *\n+ * ipu3.h - Pipeline handler for Intel IPU3\n+ */\n+\n+#ifndef __LIBCAMERA_PIPELINE_IPU3_H__\n+#define __LIBCAMERA_PIPELINE_IPU3_H__\n+\n+#include <memory>\n+#include <vector>\n+\n+#include <libcamera/camera.h>\n+#include <libcamera/request.h>\n+#include <libcamera/stream.h>\n+\n+#include \"device_enumerator.h\"\n+#include \"media_device.h\"\n+#include \"pipeline_handler.h\"\n+#include \"v4l2_device.h\"\n+#include \"v4l2_subdevice.h\"\n+\n+namespace libcamera {\n+\n+class PipelineHandlerIPU3 : public PipelineHandler\n+{\n+public:\n+\tPipelineHandlerIPU3(CameraManager *manager);\n+\t~PipelineHandlerIPU3();\n+\n+\tstd::map<Stream *, StreamConfiguration>\n+\tstreamConfiguration(Camera *camera,\n+\t\t\t    std::vector<Stream *> &streams) override;\n+\tint configureStreams(Camera *camera,\n+\t\t\t     std::map<Stream *, StreamConfiguration> &config) override;\n+\n+\tint allocateBuffers(Camera *camera, Stream *stream) override;\n+\tint freeBuffers(Camera *camera, Stream *stream) override;\n+\n+\tint start(const Camera *camera) override;\n+\tvoid stop(const Camera *camera) override;\n+\n+\tint queueRequest(const Camera *camera, Request *request) override;\n+\n+\tbool match(DeviceEnumerator *enumerator);\n+\n+private:\n+\tclass IPU3CameraData : public CameraData\n+\t{\n+\tpublic:\n+\t\tIPU3CameraData()\n+\t\t\t: cio2_(nullptr), csi2_(nullptr), sensor_(nullptr) {}\n+\n+\t\t~IPU3CameraData()\n+\t\t{\n+\t\t\tdelete cio2_;\n+\t\t\tdelete csi2_;\n+\t\t\tdelete sensor_;\n+\t\t}\n+\n+\t\tV4L2Device *cio2_;\n+\t\tV4L2Subdevice *csi2_;\n+\t\tV4L2Subdevice *sensor_;\n+\n+\t\tStream stream_;\n+\t};\n+\n+\tIPU3CameraData *cameraData(const Camera *camera)\n+\t{\n+\t\treturn static_cast<IPU3CameraData *>(\n+\t\t\tPipelineHandler::cameraData(camera));\n+\t}\n+\n+\tvoid registerCameras();\n+\n+\tstd::shared_ptr<MediaDevice> cio2_;\n+\tstd::shared_ptr<MediaDevice> imgu_;\n+\tIMGUDevice imgu0_;\n+\tIMGUDevice imgu1_;\n+};\n+\n+} /* namespace libcamera */\n+\n+#endif /* __LIBCAMERA_PIPELINE_IPU3_H__ */\n","prefixes":["libcamera-devel","3/5"]}