diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-01-21 13:18:48 +0100 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2019-01-22 14:14:04 +0100 |
commit | d18d25bde3064a537d4b080488941fffd61e1739 (patch) | |
tree | cdd7c76dbb588d66974b860973df1518035223dc /src | |
parent | f5e48ebf447ec15ba653fa3524e9b9de8e5eb736 (diff) |
libcamera: v4l2_device: Add MediaEntity contructor
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 <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/libcamera/include/v4l2_device.h | 4 | ||||
-rw-r--r-- | src/libcamera/v4l2_device.cpp | 12 |
2 files changed, 15 insertions, 1 deletions
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 <unistd.h> #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(); |