From d18d25bde3064a537d4b080488941fffd61e1739 Mon Sep 17 00:00:00 2001 From: Jacopo Mondi Date: Mon, 21 Jan 2019 13:18:48 +0100 Subject: libcamera: v4l2_device: Add MediaEntity contructor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Construct a V4L2Device from a MediaEntity device node path. While at there mark constructor as explicit to avoid copy-construction. Reviewed-by: Niklas Söderlund Reviewed-by: Laurent Pinchart Signed-off-by: Jacopo Mondi --- src/libcamera/include/v4l2_device.h | 4 +++- src/libcamera/v4l2_device.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h index 474c05b5..c6f3d9a0 100644 --- a/src/libcamera/include/v4l2_device.h +++ b/src/libcamera/include/v4l2_device.h @@ -32,10 +32,12 @@ struct V4L2Capability final : v4l2_capability { bool hasStreaming() const { return capabilities & V4L2_CAP_STREAMING; } }; +class MediaEntity; class V4L2Device { public: - V4L2Device(const std::string &devnode); + explicit V4L2Device(const std::string &devnode); + explicit V4L2Device(const MediaEntity &entity); V4L2Device(const V4L2Device &) = delete; ~V4L2Device(); diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp index 59c5ac98..5809fc62 100644 --- a/src/libcamera/v4l2_device.cpp +++ b/src/libcamera/v4l2_device.cpp @@ -12,6 +12,7 @@ #include #include "log.h" +#include "media_object.h" #include "v4l2_device.h" /** @@ -94,6 +95,17 @@ V4L2Device::V4L2Device(const std::string &devnode) { } +/** + * \brief Construct a V4L2Device from a MediaEntity + * \param entity The MediaEntity to build the device from + * + * Construct a V4L2Device from a MediaEntity's device node path. + */ +V4L2Device::V4L2Device(const MediaEntity &entity) + : V4L2Device(entity.devnode()) +{ +} + V4L2Device::~V4L2Device() { close(); -- cgit v1.2.1