00001 /* 00002 * This file contains class that helps you load camera from DLL. 00003 * 00004 * Author: 00005 * Tomas Mrkvicka 00006 * xmrkvi03@stud.fit.vutbr.cz 00007 * 00008 */ 00009 00010 #include <windows.h> 00011 00012 //FORWARD DECLARATIONS 00013 namespace NSPipeline 00014 { 00015 class TCameraLoader; 00016 }; 00017 00018 #ifndef _PIPELINE_CAMERALOADER_HH_ 00019 #define _PIPELINE_CAMERALOADER_HH_ 00020 00021 #include "pipeline/CameraAbstract.h" 00022 00023 namespace NSPipeline 00024 { 00025 00026 //////////////////////////////////////////////////////////////////////////////// 00027 //////////////////////////////////////////////////////////////////////////////// 00028 //////////////////////////////////////////////////////////////////////////////// 00029 // TCameraLoader 00030 00031 /** Tato trida nacte kameru ze zadane DLL. 00032 * 00033 * Vytvoreny objekt v sobe udrzuje nactenou DLL. 00034 * Jakmile objekt vrati kameru pak je tato ulozena a je vracena vzdy. 00035 * Pred znicenim tohoto objektu musi byt kamera jim vytvorena take znicena pomoci metody Destroy(). 00036 * 00037 * \note Kameru lze nacist i beznym zpusobem, pouziti tohoto objektu pouze usnadnuje 00038 * nacitani. 00039 */ 00040 class TCameraLoader 00041 { 00042 //PUBLIC METHODS 00043 public: 00044 TCameraLoader(void); 00045 ~TCameraLoader(void); 00046 00047 TCameraAbstract* GetCamera_DirectShow( const char * dllName ); 00048 TCameraAbstract* GetCamera_Image( const char * dllName, const char * filename ); 00049 TCameraAbstract* GetCamera_Video( const char * dllName, const char * filename ); 00050 TCameraAbstract* GetCamera_Null( const char * dllName); 00051 00052 //PRIVATE FAKE METHODS 00053 private: 00054 TCameraLoader( const TCameraLoader & orig );///< falesny kopirovaci konstruktor 00055 void operator=( const TCameraLoader & orig ); ///< falesny operator prirazeni 00056 00057 00058 //PRIVATE COMPONENTS 00059 private: 00060 TCameraAbstract* m_camera; ///< vracena kamera 00061 HMODULE m_library; ///< pouzita knihovna 00062 }; 00063 //OK 2007-08-25 15:27:32 B04-315B\Tom 00064 00065 // TCameraLoader 00066 //////////////////////////////////////////////////////////////////////////////// 00067 //////////////////////////////////////////////////////////////////////////////// 00068 //////////////////////////////////////////////////////////////////////////////// 00069 00070 }; //END of NSPipeline 00071 using namespace NSPipeline; 00072 00073 #endif