CapturePluginDSCapture.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 #ifndef CAPTUREPLUGINDSCAPTURE_H
25 #define CAPTUREPLUGINDSCAPTURE_H
26 
36 #ifdef WIN32
37  #ifdef ALVAR_Capture_Plugin_DSCapture_BUILD
38  #define ALVAR_CAPTURE_PLUGIN_DSCAPTURE_EXPORT __declspec(dllexport)
39  #else
40  #define ALVAR_CAPTURE_PLUGIN_DSCAPTURE_EXPORT __declspec(dllimport)
41  #endif
42 #else
43  #define ALVAR_CAPTURE_PLUGIN_DSCAPTURE_EXPORT
44 #endif
45 
46 #include "Capture.h"
47 #include "CapturePlugin.h"
48 
49 #include "dscapture.h"
50 
51 namespace alvar {
52 
56 namespace plugins {
57 
65  : public alvar::Capture
66 {
67  class VideoSampler : public IVideoCallback {
68  public:
70  VideoSampler(CaptureDSCapture *_parent) : parent(_parent) {}
71  void OnVideoSample(BYTE* pBuffer, DWORD dwDataLen, REFERENCE_TIME t_start) {
72  parent->OnVideoSample(pBuffer, dwDataLen, t_start);
73  }
74  bool operator=(const VideoSampler &vs) { return parent == vs.parent; }
75  } sampler;
76  friend class VideoSampler;
77 
78  void OnVideoSample(BYTE* pBuffer, DWORD dwDataLen, REFERENCE_TIME t_start);
79 
80 public:
81 
87  CaptureDSCapture(const CaptureDevice captureDevice);
92  bool start();
93  void stop();
94  IplImage *captureImage();
95  bool showSettingsDialog();
96  std::string SerializeId();
97  bool Serialize(Serialization *serialization);
98 
99 
100 private:
101  CDSCapture *m_pDSCapture;
102  int m_nBpp;
107  IplImage *mReturnFrame;
108  CRITICAL_SECTION crit;
109  unsigned int buffer_size;
110  HANDLE next_event;
111 };
112 
120  : public alvar::CapturePlugin
121 {
122 public:
128  CapturePluginDSCapture(const std::string &captureType);
133  CaptureDeviceVector enumerateDevices();
134  Capture *createCapture(const CaptureDevice captureDevice);
135 };
136 
137 extern "C" ALVAR_CAPTURE_PLUGIN_DSCAPTURE_EXPORT void registerPlugin(const std::string &captureType, alvar::CapturePlugin *&capturePlugin);
138 
139 } // namespace plugins
140 } // namespace alvar
141 
142 #endif
Main ALVAR namespace.
Definition: Alvar.h:174
void OnVideoSample(BYTE *pBuffer, DWORD dwDataLen, REFERENCE_TIME t_start)
void OnVideoSample(BYTE *pBuffer, DWORD dwDataLen, REFERENCE_TIME t_start)
unsigned char BYTE
CaptureDevice holder for camera information.
Definition: CaptureDevice.h:44
This file implements a capture plugin interface.
#define ALVAR_CAPTURE_PLUGIN_DSCAPTURE_EXPORT
void registerPlugin(const std::string &captureType, alvar::CapturePlugin *&capturePlugin)
CapturePlugin interface that plugins must implement.
Definition: CapturePlugin.h:44
Implementation of CapturePlugin interface for DSCapture plugin.
Implementation of Capture interface for DSCapture plugin.
Capture interface that plugins must implement.
Definition: Capture.h:46
Class for serializing class content to/from file or std::iostream.
Definition: Util.h:352
std::vector< CaptureDevice > CaptureDeviceVector
Vector of CaptureDevices.
Definition: CapturePlugin.h:60
This file implements a capture interface.


ar_track_alvar
Author(s): Scott Niekum
autogenerated on Mon Jun 10 2019 12:47:04