00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00057 #ifndef __vtkWin32VideoSource_h
00058 #define __vtkWin32VideoSource_h
00059
00060 #include "vtkVideoSource.h"
00061 #include <windows.h>
00062 #include <winuser.h>
00063 #include <vfw.h>
00064
00065 class VTK_HYBRID_EXPORT vtkWin32VideoSource : public vtkVideoSource
00066 {
00067 public:
00068 static vtkWin32VideoSource *New();
00069 vtkTypeMacro(vtkWin32VideoSource,vtkVideoSource);
00070 void PrintSelf(ostream& os, vtkIndent indent);
00071
00073 void Record();
00074
00076 void Play();
00077
00079 void Stop();
00080
00082 void Grab();
00083
00085 void SetFrameSize(int x, int y, int z);
00086
00088 void SetFrameRate(float rate);
00089
00091 void SetOutputFormat(int format);
00092
00094
00095 void SetPreview(int p);
00096 vtkBooleanMacro(Preview,int);
00097 vtkGetMacro(Preview,int);
00099
00101 void VideoFormatDialog();
00102
00104 void VideoSourceDialog();
00105
00108 void Initialize();
00109
00111 void ReleaseSystemResources();
00112
00114
00115 void InternalGrab(LPVIDEOHDR VideoHdrPtr);
00116 void OnParentWndDestroy();
00118
00119 protected:
00120 vtkWin32VideoSource();
00121 ~vtkWin32VideoSource();
00122
00123 char WndClassName[16];
00124 HWND CapWnd;
00125 HWND ParentWnd;
00126 CAPSTATUS CapStatus;
00127 CAPDRIVERCAPS CapDriverCaps;
00128 CAPTUREPARMS CaptureParms;
00129 LPBITMAPINFO BitMapPtr;
00130 int BitMapSize;
00131
00132 int Preview;
00133
00134 void CheckBuffer();
00135 void UnpackRasterLine(char *outptr, char *inptr,
00136 int start, int count);
00137
00138 void DoVFWFormatSetup();
00139 void DoVFWFormatCheck();
00140
00141 private:
00142 vtkWin32VideoSource(const vtkWin32VideoSource&);
00143 void operator=(const vtkWin32VideoSource&);
00144 };
00145
00146 #endif
00147
00148
00149
00150
00151