Camera.cpp

Go to the documentation of this file.
00001 /*
00002 *       This file contains class that load images from specified video sequence.
00003 *
00004 *       Author:
00005 *                       Tomas Mrkvicka
00006 *                       xmrkvi03@stud.fit.vutbr.cz
00007 *
00008 */
00009 
00010 
00011 #include "StdAfx.h"
00012 #include <tchar.h>
00013 #include <strsafe.h>
00014 #include "Camera.h"
00015 
00016 ////////////////////////////////////////////////////////////////////////////////
00017 ////////////////////////////////////////////////////////////////////////////////
00018 ////////////////////////////////////////////////////////////////////////////////
00019 // TCameraDshow
00020 
00021 /** Funkce pro vytvoreni tridy a preneseni ven z DLL.
00022 *
00023 *       \warning        Muze vratit NULL pri chybe.
00024 */
00025 extern "C" TCameraAbstract*     CreateCamera( void )
00026 {
00027         return TCameraDshow::CreateCamera();
00028 }
00029 
00030 /** Tato staticka metoda vytvori kameru.
00031 *
00032 *       \warning        Vraci NULL pri chybe.
00033 */
00034 TCameraDshow* TCameraDshow::CreateCamera( void )
00035 {
00036         //vytvorime objekt
00037         TCameraDshow * cam = new TCameraDshow;
00038 
00039         //inicializujeme
00040         if ( cam->Initialize() )
00041         {
00042                 //ok - kamera inicializovana v poradku
00043                 return cam;
00044         }
00045         else
00046         {
00047                 //nejaka chyba
00048                 delete cam;
00049                 return NULL;
00050         }
00051 }
00052 
00053 /** Soukromy konstruktor.
00054 *
00055 *       \warning Pouze vytvori objekt. Inicializace musi probehnout metodou Initialize() !!!
00056 */
00057 TCameraDshow::TCameraDshow(void)
00058 {
00059         m_source = NULL;
00060 }
00061 
00062 /** Soukromy destruktor.
00063 */
00064 TCameraDshow::~TCameraDshow(void)
00065 {
00066         //odstranime pokud je potreba
00067         if ( m_source )
00068         {
00069                 m_source->Destroy();
00070                 delete m_source;
00071                 m_source = NULL;
00072         }
00073 }
00074 
00075 /** Tato metoda inicializuje tridu po vytvoreni.
00076 *
00077 *       Vraci TRUE v pripade uspesne inicializace, jinak FALSE.
00078 */
00079 bool TCameraDshow::Initialize( void )
00080 {
00081         m_source = new TVideoDSFile;
00082         if ( m_source->Initialize() )
00083         {
00084                 return true;
00085         }
00086         else
00087         {
00088                 delete m_source;
00089                 m_source = NULL;
00090                 
00091                 return false;
00092         }
00093 }
00094 
00095 /** Velikost obrazku v bajtech.
00096 *
00097 *       \warning        Objekt musi byt radne inicializovan!!!
00098 */
00099 DWORD TCameraDshow::GetDataSize(void)
00100 {
00101         return this->GetWidth() * this->GetHeight() * 3;
00102 }
00103 
00104 /** Ulozi data do pripraveneho bufferu.
00105 *
00106 *       \warning        Objekt musi byt radne inicializovan!!!
00107 *
00108 *       \param  dest    [in out] buffer pro data obrazku s minimalni velikosti TCameraDshow::GetDataSize
00109 */
00110 void TCameraDshow::GetData(void * dest)
00111 {
00112         m_source->GetDataRGB( dest );
00113 }
00114 
00115 /** Vrati sirku obrazku v pixelech.
00116 *
00117 *       \warning        Objekt musi byt radne inicializovan!!!
00118 */
00119 int TCameraDshow::GetWidth(void)
00120 {
00121         return m_source->GetWidth();
00122 }
00123 
00124 /** Vrati vysku obrazku v pixelech.
00125 *
00126 *       \warning        Objekt musi byt radne inicializovan!!!
00127 */
00128 int TCameraDshow::GetHeight(void)
00129 {
00130         return m_source->GetHeight();
00131 }
00132 
00133 /** Zrusi tento objekt.
00134 */
00135 void TCameraDshow::Destroy(void)
00136 {
00137         delete this;
00138 }
00139 
00140 // TCameraDshow
00141 ////////////////////////////////////////////////////////////////////////////////
00142 ////////////////////////////////////////////////////////////////////////////////
00143 ////////////////////////////////////////////////////////////////////////////////

Generated on Sat Nov 17 16:23:33 2007 for Image Processing Pipeline - Camera Sources Implementation by  doxygen 1.4.6-NO