My Project
CapturePluginFile.h
Go to the documentation of this file.
1 /*
2  * This file is part of ALVAR, A Library for Virtual and Augmented Reality.
3  *
4  * Copyright 2007-2012 VTT Technical Research Centre of Finland
5  *
6  * Contact: VTT Augmented Reality Team <alvar.info@vtt.fi>
7  * <http://www.vtt.fi/multimedia/alvar.html>
8  *
9  * ALVAR is free software; you can redistribute it and/or modify it under the
10  * terms of the GNU Lesser General Public License as published by the Free
11  * Software Foundation; either version 2.1 of the License, or (at your option)
12  * any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
17  * for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with ALVAR; if not, see
21  * <http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html>.
22  */
23 
24 #include <opencv2/videoio.hpp>
25 
26 #ifndef CAPTUREPLUGINFILE_H
27 # define CAPTUREPLUGINFILE_H
28 
35 # ifdef WIN32
36 # ifdef ALVAR_Capture_Plugin_File_BUILD
37 # define ALVAR_CAPTURE_PLUGIN_FILE_EXPORT __declspec(dllexport)
38 # else
39 # define ALVAR_CAPTURE_PLUGIN_FILE_EXPORT __declspec(dllimport)
40 # endif
41 # else
42 # define ALVAR_CAPTURE_PLUGIN_FILE_EXPORT
43 # endif
44 
45 # include "Capture.h"
46 # include "CapturePlugin.h"
47 
48 # include <opencv2/highgui.hpp>
49 
50 namespace alvar {
51 
55 namespace plugins {
56 
60 class ALVAR_CAPTURE_PLUGIN_FILE_EXPORT CaptureFile : public alvar::Capture
61 {
62 public:
68  CaptureFile(const CaptureDevice captureDevice);
73  bool start();
74  void stop();
75  cv::Mat captureImage();
77  std::string SerializeId();
78  bool Serialize(Serialization *serialization);
79 
80 private:
81  cv::VideoCapture mVideoCapture;
82  cv::Mat mMatrix;
83  cv::Mat mImage;
84 };
85 
89 class ALVAR_CAPTURE_PLUGIN_FILE_EXPORT CapturePluginFile : public alvar::CapturePlugin
90 {
91 public:
97  CapturePluginFile(const std::string &captureType);
103  Capture * createCapture(const CaptureDevice captureDevice);
104 };
105 
106 extern "C" ALVAR_CAPTURE_PLUGIN_FILE_EXPORT void
107 registerPlugin(const std::string &captureType, alvar::CapturePlugin *&capturePlugin);
108 
109 } // namespace plugins
110 } // namespace alvar
111 
112 #endif
This file implements a capture interface.
This file implements a capture plugin interface.
CaptureDevice holder for camera information.
Definition: CaptureDevice.h:45
Capture interface that plugins must implement.
Definition: Capture.h:47
CapturePlugin interface that plugins must implement.
Definition: CapturePlugin.h:45
std::vector< CaptureDevice > CaptureDeviceVector
Vector of CaptureDevices.
Definition: CapturePlugin.h:59
Class for serializing class content to/from file or std::iostream.
Definition: Util.h:371
Implementation of Capture interface for File plugin.
bool Serialize(Serialization *serialization)
Performs serialization of the class members and configuration.
cv::Mat captureImage()
Capture one image from the camera.
void stop()
Stops the camera capture.
bool start()
Starts the camera capture.
bool showSettingsDialog()
Show the settings dialog of the camera.
std::string SerializeId()
The identification of the class for serialization.
CaptureFile(const CaptureDevice captureDevice)
Constructor.
Implementation of CapturePlugin interface for File plugin.
Capture * createCapture(const CaptureDevice captureDevice)
Create Capture class. Transfers onwership to the caller.
CaptureDeviceVector enumerateDevices()
Enumerate capture devices currently available.
CapturePluginFile(const std::string &captureType)
Constructor.
Main ALVAR namespace.
Definition: Alvar.h:174