From ce561473cb6ed102a969defe037a65bd3df09d63 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 18 Mar 2019 17:45:29 +0100 Subject: video/opencv: add header --- video-opencv/camera-impl.hpp | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 video-opencv/camera-impl.hpp (limited to 'video-opencv/camera-impl.hpp') diff --git a/video-opencv/camera-impl.hpp b/video-opencv/camera-impl.hpp new file mode 100644 index 00000000..f756fb19 --- /dev/null +++ b/video-opencv/camera-impl.hpp @@ -0,0 +1,51 @@ +/* Copyright (c) 2019 Stanislaw Halik + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + */ + +#pragma once + +#include "video/camera.hpp" + +#include + +#include +#include + +namespace opencv_camera_impl { + +using namespace video::impl; + +struct cam; + +struct metadata : camera_ +{ + metadata(); + std::vector camera_names() const override; + std::unique_ptr make_camera(const QString& name) override; + bool can_show_dialog(const QString& camera_name) override; + bool show_dialog(const QString& camera_name) override; +}; + +struct cam final : camera +{ + cam(int idx); + ~cam() override; + + bool start(const info& args) override; + void stop() override; + bool is_open() override; + std::tuple get_frame() override; + bool show_dialog() override; + + bool get_frame_(); + + std::optional cap; + cv::Mat mat; + frame frame_; + int idx = -1; +}; + +} // ns opencv_camera_impl -- cgit v1.2.3