GizmoBase

gzVideo.h

Go to the documentation of this file.
00001 //******************************************************************************
00002 // File         : gzVide.h
00003 // Module       : gzBase
00004 // Description  : Class definition of the gzVideo class
00005 // Author       : Anders Modén      
00006 // Product      : GizmoBase 2.1.1
00007 //      
00008 // Copyright © 2003- Saab Training Systems AB, Sweden
00009 //          
00010 // NOTE:    GizmoBase is a platform abstraction utility layer for C++. It contains 
00011 //          design patterns and C++ solutions for the advanced programmer.
00012 //
00013 //
00014 // Revision History...                          
00015 //                                  
00016 // Who  Date    Description                     
00017 //                                  
00018 // AMO  060630  Created file    
00019 //
00020 //******************************************************************************
00021 #ifndef __GZ_VIDEO_H__
00022 #define __GZ_VIDEO_H__
00023 
00029 #include "gzImage.h"
00030 
00031 const gzULong GZ_INVALID_FRAME=0xffffffffUL;    
00032 
00033 class gzVideoControlInterface
00034 {
00035 public:
00036 
00037     virtual gzVoid updateFrame(gzULong frame)=0;
00038 
00039     virtual gzBool skipFrame(gzULong frame)=0;
00040 
00041     virtual gzBool forceFrame(gzULong frame)=0;
00042 
00043     virtual gzBool discardFrame(gzULong frame)=0;
00044 
00045     virtual gzDouble getCurrentTime()=0;
00046 
00047     virtual gzULongLong getCurrentTimeStamp()=0;
00048 };
00049 
00050 typedef gzVideoControlInterface * gzVideoControlInterfacePtr;
00051 
00052 const gzString GZ_VIDEO_CONTROL_INTERFACE="gzVideoControlInterface";
00053 
00054 
00055 class gzVideo : public gzImage
00056 {
00057 public:
00058 
00059     GZ_DECLARE_TYPE_INTERFACE_EXPORT(GZ_BASE_EXPORT);   // typed interface
00060 
00061     GZ_BASE_EXPORT gzVideo(const gzString & name=GZ_EMPTY_STRING);
00062     GZ_BASE_EXPORT virtual ~gzVideo(){};
00063     
00064     GZ_BASE_EXPORT gzVoid   setTime(const gzDouble &seconds);
00065     GZ_BASE_EXPORT gzBool   setFrame(gzULong frameNumber);
00066 
00067     GZ_BASE_EXPORT gzVoid   start(const gzDouble &startTime=0);
00068     GZ_BASE_EXPORT gzVoid   stop();
00069 
00071     GZ_BASE_EXPORT gzULong  getCurrentFrame();
00072 
00073     GZ_BASE_EXPORT gzULong  updateFrameCount();
00074 
00076     GZ_BASE_EXPORT virtual  gzBool onFrame(gzULong frame){ return FALSE; }
00077 
00079     GZ_BASE_EXPORT virtual  gzVoid restart(){};
00080     
00081     GZ_BASE_EXPORT virtual  gzUByte getVideoComponents();
00082 
00083     GZ_BASE_EXPORT virtual gzVoid reset();
00084 
00085     GZ_BASE_EXPORT virtual gzBool enableVideoThread(gzBool videoThread=TRUE){ return FALSE; }
00086     GZ_BASE_EXPORT virtual gzBool enableAudioThread(gzBool audioThread=TRUE){ return FALSE; }
00087     GZ_BASE_EXPORT virtual gzBool hasVideoThread() { return FALSE; }
00088     GZ_BASE_EXPORT virtual gzBool hasAudioThread() { return FALSE; }
00089     
00090     GZ_PROPERTY_EXPORT(     gzULong,                    FrameCount          ,GZ_BASE_EXPORT);
00091     GZ_PROPERTY_EXPORT(     gzULong,                    MaxLagFrames        ,GZ_BASE_EXPORT);
00092     GZ_PROPERTY_EXPORT(     gzDouble,                   FrameDuration       ,GZ_BASE_EXPORT);
00093     GZ_PROPERTY_GET_EXPORT( gzDouble,                   RealTimeStartDiff   ,GZ_BASE_EXPORT);
00094     GZ_PROPERTY_EXPORT(     gzVideoControlInterfacePtr, ControlInterface    ,GZ_BASE_EXPORT);
00095     GZ_PROPERTY_EXPORT(     gzDouble,                   FramesPerSecond     ,GZ_BASE_EXPORT);
00096     GZ_PROPERTY_EXPORT(     gzString,                   VideoInfo           ,GZ_BASE_EXPORT);
00097     GZ_PROPERTY_EXPORT(     gzString,                   AudioInfo           ,GZ_BASE_EXPORT);
00098 
00099 private:
00100 
00101     gzDouble    m_startTime;
00102     gzBool      m_running;
00103 
00104     gzULong     m_currentFrame;
00105 };
00106 
00107 #endif //__GZ_VIDEO_H__
00108 
00109 

Documentation for GizmoBase generated at Wed Feb 20 11:57:55 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond