diff options
Diffstat (limited to 'video-opencv/impl-metadata.cpp')
-rw-r--r-- | video-opencv/impl-metadata.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/video-opencv/impl-metadata.cpp b/video-opencv/impl-metadata.cpp new file mode 100644 index 00000000..84b11822 --- /dev/null +++ b/video-opencv/impl-metadata.cpp @@ -0,0 +1,42 @@ +#include "impl.hpp" +#include "camera-names.hpp" +#include "video-property-page.hpp" + +namespace opencv_camera_impl { + +metadata::metadata() = default; + +std::unique_ptr<camera> metadata::make_camera(const QString& name) +{ + int idx = camera_name_to_index(name); + if (idx != -1) + return std::make_unique<cam>(idx); + else + return nullptr; +} + +std::vector<QString> metadata::camera_names() const +{ + return get_camera_names(); +} + +bool metadata::can_show_dialog(const QString& camera_name) +{ + return camera_name_to_index(camera_name) != -1; +} + +bool metadata::show_dialog(const QString& camera_name) +{ + int idx = camera_name_to_index(camera_name); + if (idx != -1) + { + video_property_page::show(idx); + return true; + } + else + return false; +} + +OTR_REGISTER_CAMERA(metadata) + +} // ns opencv_camera_impl |