00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkWin32VideoSource.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00033 #ifndef __vtkWin32VideoSource_h 00034 #define __vtkWin32VideoSource_h 00035 00036 #include "vtkVideoSource.h" 00037 00038 class vtkWin32VideoSourceInternal; 00039 00040 class VTK_HYBRID_EXPORT vtkWin32VideoSource : public vtkVideoSource 00041 { 00042 public: 00043 static vtkWin32VideoSource *New(); 00044 vtkTypeRevisionMacro(vtkWin32VideoSource,vtkVideoSource); 00045 void PrintSelf(ostream& os, vtkIndent indent); 00046 00048 void Record(); 00049 00051 void Play(); 00052 00054 void Stop(); 00055 00057 void Grab(); 00058 00060 void SetFrameSize(int x, int y, int z); 00061 00063 void SetFrameRate(float rate); 00064 00066 void SetOutputFormat(int format); 00067 00069 00070 void SetPreview(int p); 00071 vtkBooleanMacro(Preview,int); 00072 vtkGetMacro(Preview,int); 00074 00076 void VideoFormatDialog(); 00077 00079 void VideoSourceDialog(); 00080 00083 void Initialize(); 00084 00086 void ReleaseSystemResources(); 00087 00089 00090 void InternalGrab(void*); 00091 void OnParentWndDestroy(); 00093 00094 protected: 00095 vtkWin32VideoSource(); 00096 ~vtkWin32VideoSource(); 00097 00098 char WndClassName[16]; 00099 int BitMapSize; 00100 int Preview; 00101 00102 vtkWin32VideoSourceInternal *Internal; 00103 00104 void CheckBuffer(); 00105 void UnpackRasterLine(char *outptr, char *inptr, 00106 int start, int count); 00107 00108 void DoVFWFormatSetup(); 00109 void DoVFWFormatCheck(); 00110 00111 private: 00112 vtkWin32VideoSource(const vtkWin32VideoSource&); // Not implemented. 00113 void operator=(const vtkWin32VideoSource&); // Not implemented. 00114 }; 00115 00116 #endif 00117 00118 00119 00120 00121