Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

RgbDataSrcDX.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Stream_RgbDataSrcDX_h
00002 #define Impala_Core_Stream_RgbDataSrcDX_h
00003 
00004 #include "Core/Stream/RgbDataSrc.h"
00005 #include "Link/DXMedia/HxDXMedia.h"
00006 
00007 namespace Impala
00008 {
00009 namespace Core
00010 {
00011 namespace Stream
00012 {
00013 
00014 
00015 class RgbDataSrcDX : public RgbDataSrc
00016 {
00017 public:
00018 
00019     RgbDataSrcDX(int src, String srcName) : RgbDataSrc(src, srcName)
00020     {
00021         mSrcHandle = 0;
00022         Init();
00023     }
00024 
00025     virtual
00026     ~RgbDataSrcDX()
00027     {
00028         if (mSrcHandle)
00029             HxDXCloseVideo(mSrcHandle);
00030     }
00031 
00032     virtual bool
00033     Valid() const
00034     {
00035         return (mSrcHandle != 0);
00036     }
00037 
00038     void
00039     SetInterval(int interval)
00040     {
00041         HxDXSetInterval(mSrcHandle, interval);
00042     }
00043 
00044 protected:
00045 
00046     bool
00047     ReadFrameData()
00048     {
00049         mData = HxDXGetFrame(mSrcHandle, FrameNr());
00050         return true;
00051     }
00052 
00053 private:
00054 
00055     void
00056     Init()
00057     {
00058         if (!(mSrcHandle = HxDXLoadVideo(mSrcName.c_str())))
00059         {
00060             ILOG_ERROR("Unable to HxDXLoadVideo " << mSrcName);
00061             return;
00062         }
00063         mFrameWidth = HxDXGetFrameWidth(mSrcHandle);
00064         mFrameHeight = HxDXGetFrameHeight(mSrcHandle);
00065         mLastFrame = HxDXGetLength(mSrcHandle) - 1;
00066     }
00067 
00068     void* mSrcHandle;
00069 
00070     ILOG_VAR_DEC;
00071 };
00072 
00073 ILOG_VAR_INIT(RgbDataSrcDX, Impala.Core.Stream);
00074 
00075 } // namespace Stream
00076 } // namespace Core
00077 } // namespace Impala
00078 
00079 #endif

Generated on Fri Mar 19 09:31:18 2010 for ImpalaSrc by  doxygen 1.5.1