FrameGrabberFactory.H

Go to the documentation of this file.
00001 /*!@file Devices/FrameGrabberFactory.H Factory functions to build various FrameIstream subclasses */
00002 
00003 // //////////////////////////////////////////////////////////////////// //
00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00005 // by the University of Southern California (USC) and the iLab at USC.  //
00006 // See http://iLab.usc.edu for information about this project.          //
00007 // //////////////////////////////////////////////////////////////////// //
00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00010 // in Visual Environments, and Applications'' by Christof Koch and      //
00011 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00012 // pending; application number 09/912,225 filed July 23, 2001; see      //
00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00014 // //////////////////////////////////////////////////////////////////// //
00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00016 //                                                                      //
00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00018 // redistribute it and/or modify it under the terms of the GNU General  //
00019 // Public License as published by the Free Software Foundation; either  //
00020 // version 2 of the License, or (at your option) any later version.     //
00021 //                                                                      //
00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00025 // PURPOSE.  See the GNU General Public License for more details.       //
00026 //                                                                      //
00027 // You should have received a copy of the GNU General Public License    //
00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00030 // Boston, MA 02111-1307 USA.                                           //
00031 // //////////////////////////////////////////////////////////////////// //
00032 //
00033 // Primary maintainer for this file:
00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Devices/FrameGrabberFactory.H $
00035 // $Id: FrameGrabberFactory.H 14459 2011-02-01 18:56:07Z ehu $
00036 //
00037 
00038 #ifndef DEVICES_FRAMEGRABBERFACTORY_H_DEFINED
00039 #define DEVICES_FRAMEGRABBERFACTORY_H_DEFINED
00040 
00041 #include "Transport/FrameIstream.H"
00042 
00043 //! Factory function to build a V4Lgrabber
00044 /** NOTE: The reason for this function is so that we have only a
00045     single location where we need to concern ourselves with whether
00046     Video4Linux is actually supported on the build system. So, rather
00047     than having to do #ifdef HAVE_LINUX_VIDEODEV_H all over the place
00048     in client code, instead we just have the clients call
00049     makeV4Lgrabber(), and then within that function we'll just do an
00050     LFATAL() if Video4Linux isn't supported. */
00051 nub::ref<FrameIstream>
00052 makeV4Lgrabber(OptionManager& mgr,
00053                const std::string& descrName = "V4L Frame Grabber Driver",
00054                const std::string& tagName = "V4LFrameGrabber",
00055                const ParamFlag flags = USE_MY_VAL);
00056 
00057 //! Factory function to build a V4L2grabber
00058 /** NOTE: The reason for this function is so that we have only a
00059     single location where we need to concern ourselves with whether
00060     Video4Linux2 is actually supported on the build system. So, rather
00061     than having to do #ifdef HAVE_LINUX_VIDEODEV2_H all over the place
00062     in client code, instead we just have the clients call
00063     makeV4L2grabber(), and then within that function we'll just do an
00064     LFATAL() if Video4Linux2 isn't supported. */
00065 nub::ref<FrameIstream>
00066 makeV4L2grabber(OptionManager& mgr,
00067                 const std::string& descrName = "V4L2 Frame Grabber Driver",
00068                 const std::string& tagName = "V4L2FrameGrabber",
00069                 const ParamFlag flags = USE_MY_VAL);
00070 
00071 //! Factory function to build an IEEE1394grabber
00072 nub::ref<FrameIstream>
00073 makeIEEE1394grabber(OptionManager& mgr,
00074                     const std::string& descrName="IEEE1394 Frame Grabber Driver",
00075                     const std::string& tagName = "IEEE1394FrameGrabber",
00076                     const ParamFlag flags = USE_MY_VAL);
00077 
00078 //! Factory function to build an XCgrabber(CameraLink framegrabber library from Epix Inc)
00079 nub::ref<FrameIstream>
00080 makeXCgrabber(OptionManager& mgr,
00081               const std::string& descrName="XC Frame Grabber Driver",
00082               const std::string& tagName = "XCFrameGrabber",
00083               const ParamFlag flags = USE_MY_VAL);
00084 
00085 //! Factory function to build an XCgrabberFlex(CameraLink framegrabber library from Epix Inc with more functionality to change dims of acquired image)
00086 nub::ref<FrameIstream>
00087 makeXCgrabberFlex(OptionManager& mgr,
00088               const std::string& descrName="XC Frame Grabber Driver",
00089               const std::string& tagName = "XCFrameGrabberFlex",
00090               const ParamFlag flags = USE_MY_VAL);
00091 
00092 //! Factory function to build a KinectGrabber
00093 nub::ref<FrameIstream>
00094 makeKinectgrabber(OptionManager& mgr,
00095                   const std::string& descrName = "Kinect Frame Grabber Driver",
00096                   const std::string& tagName = "KinectFrameGrabber",
00097                   const ParamFlag flags = USE_MY_VAL);
00098 
00099 //! Factory function to build a OpenNIGrabber
00100 nub::ref<FrameIstream>
00101 makeOpenNIgrabber(OptionManager& mgr,
00102                   const std::string& descrName = "OpenNI Frame Grabber Driver",
00103                   const std::string& tagName = "OpenNIFrameGrabber",
00104                   const ParamFlag flags = USE_MY_VAL);
00105 
00106 // ######################################################################
00107 /* So things look consistent in everyone's emacs... */
00108 /* Local Variables: */
00109 /* mode: c++ */
00110 /* indent-tabs-mode: nil */
00111 /* End: */
00112 
00113 #endif // DEVICES_FRAMEGRABBERFACTORY_H_DEFINED
Generated on Sun May 8 08:40:37 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3