From patchwork Wed Feb 20 13:17:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 591 Return-Path: Received: from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net [217.70.183.194]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id ABBC1601E3 for ; Wed, 20 Feb 2019 14:17:41 +0100 (CET) X-Originating-IP: 2.224.242.101 Received: from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101]) (Authenticated sender: jacopo@jmondi.org) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id 46D8C40016; Wed, 20 Feb 2019 13:17:41 +0000 (UTC) From: Jacopo Mondi 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 Subject: [libcamera-devel] [PATCH 3/5] libcamera: ipu3: Break-out ipu3 header file 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: Wed, 20 Feb 2019 13:17:41 -0000 As the class grows, break out the class definitions in a separate header file, which can be used by other ipu3-related cpp files that will be added in next commits. Signed-off-by: Jacopo Mondi --- src/libcamera/pipeline/ipu3/ipu3.cpp | 56 +----------------- src/libcamera/pipeline/ipu3/ipu3.h | 85 ++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 55 deletions(-) create mode 100644 src/libcamera/pipeline/ipu3/ipu3.h diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 9065073913a2..07029dd763c9 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -14,6 +14,7 @@ #include "device_enumerator.h" #include "log.h" +#include "ipu3.h" #include "media_device.h" #include "pipeline_handler.h" #include "utils.h" @@ -24,61 +25,6 @@ namespace libcamera { LOG_DEFINE_CATEGORY(IPU3) -class PipelineHandlerIPU3 : public PipelineHandler -{ -public: - PipelineHandlerIPU3(CameraManager *manager); - ~PipelineHandlerIPU3(); - - std::map - streamConfiguration(Camera *camera, - std::vector &streams) override; - int configureStreams(Camera *camera, - std::map &config) override; - - int allocateBuffers(Camera *camera, Stream *stream) override; - int freeBuffers(Camera *camera, Stream *stream) override; - - int start(const Camera *camera) override; - void stop(const Camera *camera) override; - - int queueRequest(const Camera *camera, Request *request) override; - - bool match(DeviceEnumerator *enumerator); - -private: - class IPU3CameraData : public CameraData - { - public: - IPU3CameraData() - : cio2_(nullptr), csi2_(nullptr), sensor_(nullptr) {} - - ~IPU3CameraData() - { - delete cio2_; - delete csi2_; - delete sensor_; - } - - V4L2Device *cio2_; - V4L2Subdevice *csi2_; - V4L2Subdevice *sensor_; - - Stream stream_; - }; - - IPU3CameraData *cameraData(const Camera *camera) - { - return static_cast( - PipelineHandler::cameraData(camera)); - } - - void registerCameras(); - - std::shared_ptr cio2_; - std::shared_ptr imgu_; -}; - PipelineHandlerIPU3::PipelineHandlerIPU3(CameraManager *manager) : PipelineHandler(manager), cio2_(nullptr), imgu_(nullptr) { diff --git a/src/libcamera/pipeline/ipu3/ipu3.h b/src/libcamera/pipeline/ipu3/ipu3.h new file mode 100644 index 000000000000..48c2a3e16980 --- /dev/null +++ b/src/libcamera/pipeline/ipu3/ipu3.h @@ -0,0 +1,85 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * ipu3.h - Pipeline handler for Intel IPU3 + */ + +#ifndef __LIBCAMERA_PIPELINE_IPU3_H__ +#define __LIBCAMERA_PIPELINE_IPU3_H__ + +#include +#include + +#include +#include +#include + +#include "device_enumerator.h" +#include "media_device.h" +#include "pipeline_handler.h" +#include "v4l2_device.h" +#include "v4l2_subdevice.h" + +namespace libcamera { + +class PipelineHandlerIPU3 : public PipelineHandler +{ +public: + PipelineHandlerIPU3(CameraManager *manager); + ~PipelineHandlerIPU3(); + + std::map + streamConfiguration(Camera *camera, + std::vector &streams) override; + int configureStreams(Camera *camera, + std::map &config) override; + + int allocateBuffers(Camera *camera, Stream *stream) override; + int freeBuffers(Camera *camera, Stream *stream) override; + + int start(const Camera *camera) override; + void stop(const Camera *camera) override; + + int queueRequest(const Camera *camera, Request *request) override; + + bool match(DeviceEnumerator *enumerator); + +private: + class IPU3CameraData : public CameraData + { + public: + IPU3CameraData() + : cio2_(nullptr), csi2_(nullptr), sensor_(nullptr) {} + + ~IPU3CameraData() + { + delete cio2_; + delete csi2_; + delete sensor_; + } + + V4L2Device *cio2_; + V4L2Subdevice *csi2_; + V4L2Subdevice *sensor_; + + Stream stream_; + }; + + IPU3CameraData *cameraData(const Camera *camera) + { + return static_cast( + PipelineHandler::cameraData(camera)); + } + + void registerCameras(); + + std::shared_ptr cio2_; + std::shared_ptr imgu_; + IMGUDevice imgu0_; + IMGUDevice imgu1_; +}; + +} /* namespace libcamera */ + +#endif /* __LIBCAMERA_PIPELINE_IPU3_H__ */