Visual Servoing Platform  version 3.5.0 under development (2022-02-15)
vpDirectShowGrabber.cpp
1 /****************************************************************************
2  *
3  * ViSP, open source Visual Servoing Platform software.
4  * Copyright (C) 2005 - 2019 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  * See the file LICENSE.txt at the root directory of this source
11  * distribution for additional information about the GNU GPL.
12  *
13  * For using ViSP with software that can not be combined with the GNU
14  * GPL, please contact Inria about acquiring a ViSP Professional
15  * Edition License.
16  *
17  * See http://visp.inria.fr for more information.
18  *
19  * This software was developed at:
20  * Inria Rennes - Bretagne Atlantique
21  * Campus Universitaire de Beaulieu
22  * 35042 Rennes Cedex
23  * France
24  *
25  * If you have questions regarding the use of this file, please contact
26  * Inria at visp@inria.fr
27  *
28  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30  *
31  * Description:
32  * DirectShow framegrabber.
33  *
34  * Authors:
35  * Bruno Renier
36  * Anthony Saunier
37  *
38  *****************************************************************************/
39 
40 #include <visp3/core/vpConfig.h>
41 #if (defined(VISP_HAVE_DIRECTSHOW))
42 
43 #include <visp3/sensor/vpDirectShowGrabber.h>
44 #include <visp3/sensor/vpDirectShowGrabberImpl.h>
45 
49 unsigned int vpDirectShowGrabber::getHeight() { return grabber->getHeight(); }
50 
54 unsigned int vpDirectShowGrabber::getWidth() { return grabber->getWidth(); }
55 
60 vpDirectShowGrabber::vpDirectShowGrabber() { grabber = new vpDirectShowGrabberImpl(); }
61 
70 void vpDirectShowGrabber::open() { grabber->open(); }
71 
77 
82 void vpDirectShowGrabber::open(vpImage<vpRGBa> &I) { grabber->open(); }
83 
92 void vpDirectShowGrabber::acquire(vpImage<unsigned char> &I) { grabber->acquire(I); }
93 
102 void vpDirectShowGrabber::acquire(vpImage<vpRGBa> &I) { grabber->acquire(I); }
103 
107 void vpDirectShowGrabber::close() { grabber->close(); }
108 
113 unsigned int vpDirectShowGrabber::getDeviceNumber() { return grabber->getDeviceNumber(); }
114 
121 bool vpDirectShowGrabber::setDevice(unsigned int id) { return grabber->setDevice(id); }
122 
126 void vpDirectShowGrabber::displayDevices() { grabber->displayDevices(); }
134 bool vpDirectShowGrabber::setImageSize(unsigned int width, unsigned int height)
135 {
136  return grabber->setImageSize(width, height);
137 }
144 bool vpDirectShowGrabber::setFramerate(double framerate) { return grabber->setFramerate(framerate); }
153 bool vpDirectShowGrabber::setFormat(unsigned int width, unsigned int height, double framerate)
154 {
155  return grabber->setFormat(width, height, framerate);
156 }
157 /*
158  Get capture format
159  \param width : Pointer to a variable that receives the width in pixel
160  \param height : Pointer to a variable that receives the height in
161  pixel \param framerate : Pointer to a variable that receives the framerate
162  in fps
163 */
164 void vpDirectShowGrabber::getFormat(unsigned int &width, unsigned int &height, double &framerate)
165 {
166  grabber->getFormat(width, height, framerate);
167 }
168 
174 bool vpDirectShowGrabber::getStreamCapabilities() { return grabber->getStreamCapabilities(); }
175 
183 bool vpDirectShowGrabber::setMediaType(int mediaTypeID) { return grabber->setMediaType(mediaTypeID); }
184 
185 /*
186  Get current capture MediaType
187 
188  \return the current mediaTypeID
189 */
190 int vpDirectShowGrabber::getMediaType() { return grabber->getMediaType(); }
191 
192 #elif !defined(VISP_BUILD_SHARED_LIBS)
193 // Work arround to avoid warning: libvisp_sensor.a(vpDirectShowGrabber.cpp.o)
194 // has no symbols
195 void dummy_vpDirectShowGrabber(){};
196 #endif
void getFormat(unsigned int &width, unsigned int &height, double &framerate)
bool setMediaType(int mediaTypeID)
bool setFramerate(double framerate)
bool setDevice(unsigned int id)
bool setFormat(unsigned int width, unsigned int height, double framerate)
unsigned int height
Number of rows in the image.
void acquire(vpImage< unsigned char > &I)
bool setImageSize(unsigned int width, unsigned int height)
unsigned int getDeviceNumber()
unsigned int width
Number of columns in the image.