VTK
vtkMILVideoSource.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMILVideoSource.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
32 #ifndef vtkMILVideoSource_h
33 #define vtkMILVideoSource_h
34 
35 #include "vtkIOVideoModule.h" // For export macro
36 #include "vtkVideoSource.h"
37 
38 // digitizer hardware
39 #define VTK_MIL_DEFAULT 0
40 #define VTK_MIL_METEOR "M_SYSTEM_METEOR"
41 #define VTK_MIL_METEOR_II "M_SYSTEM_METEOR_II"
42 #define VTK_MIL_METEOR_II_DIG "M_SYSTEM_METEOR_II_DIG"
43 #define VTK_MIL_METEOR_II_CL "M_SYSTEM_METEOR_II_CL"
44 #define VTK_MIL_METEOR_II_1394 "M_SYSTEM_METEOR_II_1394"
45 #define VTK_MIL_CORONA "M_SYSTEM_CORONA"
46 #define VTK_MIL_CORONA_II "M_SYSTEM_CORONA_II"
47 #define VTK_MIL_PULSAR "M_SYSTEM_PULSAR"
48 #define VTK_MIL_GENESIS "M_SYSTEM_GENESIS"
49 #define VTK_MIL_GENESIS_PLUS "M_SYSTEM_GENESIS_PLUS"
50 #define VTK_MIL_ORION "M_SYSTEM_ORION"
51 #define VTK_MIL_CRONOS "M_SYSTEM_CRONOS"
52 #define VTK_MIL_ODYSSEY "M_SYSTEM_ODYSSEY"
53 
54 // video inputs:
55 #define VTK_MIL_MONO 0
56 #define VTK_MIL_COMPOSITE 1
57 #define VTK_MIL_YC 2
58 #define VTK_MIL_RGB 3
59 #define VTK_MIL_DIGITAL 4
60 
61 // video formats:
62 #define VTK_MIL_RS170 0
63 #define VTK_MIL_NTSC 1
64 #define VTK_MIL_CCIR 2
65 #define VTK_MIL_PAL 3
66 #define VTK_MIL_SECAM 4
67 #define VTK_MIL_NONSTANDARD 5
68 
69 class VTKIOVIDEO_EXPORT vtkMILVideoSource : public vtkVideoSource
70 {
71 public:
72  static vtkMILVideoSource *New();
74  void PrintSelf(ostream& os, vtkIndent indent);
75 
79  void Record();
80 
84  void Play();
85 
89  void Stop();
90 
94  void Grab();
95 
99  void SetFrameSize(int x, int y, int z);
100 
104  void SetOutputFormat(int format);
105 
107 
110  virtual void SetVideoChannel(int channel);
111  vtkGetMacro(VideoChannel, int);
113 
115 
118  virtual void SetVideoFormat(int format);
119  void SetVideoFormatToNTSC() { this->SetVideoFormat(VTK_MIL_NTSC); };
120  void SetVideoFormatToPAL() { this->SetVideoFormat(VTK_MIL_PAL); };
121  void SetVideoFormatToSECAM() { this->SetVideoFormat(VTK_MIL_SECAM); };
122  void SetVideoFormatToRS170() { this->SetVideoFormat(VTK_MIL_RS170); };
123  void SetVideoFormatToCCIR() { this->SetVideoFormat(VTK_MIL_CCIR); };
125  this->SetVideoFormat(VTK_MIL_NONSTANDARD); };
126  vtkGetMacro(VideoFormat,int);
128 
130 
133  virtual void SetVideoInput(int input);
134  void SetVideoInputToMono() { this->SetVideoInput(VTK_MIL_MONO); };
135  void SetVideoInputToComposite() {this->SetVideoInput(VTK_MIL_COMPOSITE);};
136  void SetVideoInputToYC() { this->SetVideoInput(VTK_MIL_YC); };
137  void SetVideoInputToRGB() { this->SetVideoInput(VTK_MIL_RGB); };
138  void SetVideoInputToDigital() { this->SetVideoInput(VTK_MIL_DIGITAL); };
139  vtkGetMacro(VideoInput,int);
141 
143 
150  virtual void SetContrastLevel(float contrast);
151  vtkGetMacro(ContrastLevel,float);
152  virtual void SetBrightnessLevel(float brightness);
153  vtkGetMacro(BrightnessLevel,float);
154  virtual void SetHueLevel(float hue);
155  vtkGetMacro(HueLevel,float);
156  virtual void SetSaturationLevel(float saturation);
157  vtkGetMacro(SaturationLevel,float);
159 
161 
165  virtual void SetBlackLevel(float value);
166  virtual float GetBlackLevel() {
167  return this->BlackLevel; };
168  virtual void SetWhiteLevel(float value);
169  virtual float GetWhiteLevel() {
170  return this->WhiteLevel; };
172 
174 
178  vtkSetStringMacro(MILSystemType);
179  vtkGetStringMacro(MILSystemType);
180  void SetMILSystemTypeToMeteor() { this->SetMILSystemType(VTK_MIL_METEOR); };
181  void SetMILSystemTypeToMeteorII() { this->SetMILSystemType(VTK_MIL_METEOR_II); };
182  void SetMILSystemTypeToMeteorIIDig() { this->SetMILSystemType(VTK_MIL_METEOR_II_DIG); };
183  void SetMILSystemTypeToMeteorIICL() { this->SetMILSystemType(VTK_MIL_METEOR_II_CL); };
184  void SetMILSystemTypeToMeteorII1394() { this->SetMILSystemType(VTK_MIL_METEOR_II_1394); };
185  void SetMILSystemTypeToCorona() { this->SetMILSystemType(VTK_MIL_CORONA); };
186  void SetMILSystemTypeToCoronaII() { this->SetMILSystemType(VTK_MIL_CORONA_II); };
187  void SetMILSystemTypeToPulsar() { this->SetMILSystemType(VTK_MIL_PULSAR); };
188  void SetMILSystemTypeToGenesis() { this->SetMILSystemType(VTK_MIL_GENESIS); };
189  void SetMILSystemTypeToGenesisPlus() { this->SetMILSystemType(VTK_MIL_GENESIS_PLUS); };
190  void SetMILSystemTypeToOrion() { this->SetMILSystemType(VTK_MIL_ORION); };
191  void SetMILSystemTypeToCronos() { this->SetMILSystemType(VTK_MIL_CRONOS); };
192  void SetMILSystemTypeToOdyssey() { this->SetMILSystemType(VTK_MIL_ODYSSEY); };
194 
195 
198  vtkSetMacro(MILSystemNumber,int);
199  vtkGetMacro(MILSystemNumber,int);
201 
203 
206  vtkSetStringMacro(MILDigitizerDCF);
207  vtkGetStringMacro(MILDigitizerDCF);
209 
211 
214  vtkSetMacro(MILDigitizerNumber,int);
215  vtkGetMacro(MILDigitizerNumber,int);
217 
219 
222  virtual void SetMILErrorMessages(int yesno);
223  vtkBooleanMacro(MILErrorMessages,int);
224  vtkGetMacro(MILErrorMessages,int);
226 
228 
231  vtkSetMacro(MILAppID,long);
232  vtkGetMacro(MILAppID,long);
233  vtkSetMacro(MILSysID,long);
234  vtkGetMacro(MILSysID,long);
235  vtkGetMacro(MILDigID,long);
236  vtkGetMacro(MILBufID,long);
238 
243  void Initialize();
244 
249  void ReleaseSystemResources();
250 
252 
259  void InternalGrab();
261 
262 protected:
265 
266  virtual void AllocateMILDigitizer();
267  virtual void AllocateMILBuffer();
268 
269  virtual char *MILInterpreterForSystem(const char *system);
271 
276 
279  float HueLevel;
281 
282  float BlackLevel;
283  float WhiteLevel;
284 
285  int FrameMaxSize[2];
286 
287  long MILAppID;
288  long MILSysID;
289  long MILDigID;
290  long MILBufID;
291  // long MILDispBufID;
292  // long MILDispID;
293 
296 
299 
301 
304 
306 
313  double CreateTimeStampForFrame(unsigned long frame);
314 
316  unsigned long LastFrameCount;
319 
320 private:
321  vtkMILVideoSource(const vtkMILVideoSource&) VTK_DELETE_FUNCTION;
322  void operator=(const vtkMILVideoSource&) VTK_DELETE_FUNCTION;
323 };
324 
325 #endif
#define VTK_MIL_METEOR
virtual void Stop()
Stop recording or playing.
#define VTK_MIL_METEOR_II_DIG
void SetMILSystemTypeToMeteorIIDig()
Set the system which you want use.
void * OldUserDataPtr
For internal use only.
virtual void Initialize()
Initialize the hardware.
void SetVideoFormatToNTSC()
Set/Get the video format.
void SetMILSystemTypeToMeteorIICL()
Set the system which you want use.
#define VTK_MIL_METEOR_II_CL
void SetVideoInputToComposite()
Set/Get the video input.
#define VTK_MIL_CORONA
#define VTK_MIL_DIGITAL
Matrox Imaging Library frame grabbers.
void SetMILSystemTypeToCronos()
Set the system which you want use.
void SetMILSystemTypeToGenesis()
Set the system which you want use.
void SetVideoInputToMono()
Set/Get the video input.
Superclass of video input devices for VTK.
void SetMILSystemTypeToMeteorII()
Set the system which you want use.
#define VTK_MIL_COMPOSITE
void SetMILSystemTypeToCorona()
Set the system which you want use.
int FrameCounter
For internal use only.
void SetMILSystemTypeToCoronaII()
Set the system which you want use.
void SetVideoInputToDigital()
Set/Get the video input.
#define VTK_MIL_CCIR
#define VTK_MIL_PULSAR
void SetVideoInputToRGB()
Set/Get the video input.
virtual void ReleaseSystemResources()
Release the video driver.
#define VTK_MIL_NONSTANDARD
#define VTK_MIL_PAL
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual void Record()
Record incoming video at the specified FrameRate.
void SetVideoFormatToCCIR()
Set/Get the video format.
virtual float GetWhiteLevel()
Set/Get the video levels for monochrome/RGB: valid values are between 0.0 and 255.0.
void SetMILSystemTypeToMeteorII1394()
Set the system which you want use.
#define VTK_MIL_RS170
#define VTK_MIL_GENESIS_PLUS
#define VTK_MIL_NTSC
#define VTK_MIL_RGB
#define VTK_MIL_METEOR_II
#define VTK_MIL_CRONOS
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
virtual void SetOutputFormat(int format)
Set the output format.
static vtkVideoSource * New()
int ForceGrab
For internal use only.
void SetVideoInputToYC()
Set/Get the video input.
void SetMILSystemTypeToMeteor()
Set the system which you want use.
#define VTK_MIL_CORONA_II
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
virtual float GetBlackLevel()
Set/Get the video levels for monochrome/RGB: valid values are between 0.0 and 255.0.
void SetMILSystemTypeToOdyssey()
Set the system which you want use.
#define VTK_MIL_ORION
virtual void SetFrameSize(int x, int y, int z)
Set the full-frame size.
unsigned long LastFrameCount
#define VTK_MIL_ODYSSEY
virtual void Play()
Play through the 'tape' sequentially at the specified frame rate.
virtual void Grab()
Grab a single video frame.
void SetVideoFormatToRS170()
Set/Get the video format.
void SetVideoFormatToSECAM()
Set/Get the video format.
void * OldHookFunction
For internal use only.
#define VTK_MIL_METEOR_II_1394
#define VTK_MIL_GENESIS
#define VTK_MIL_SECAM
void SetMILSystemTypeToOrion()
Set the system which you want use.
void SetVideoFormatToPAL()
Set/Get the video format.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
#define VTK_MIL_YC
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
void SetMILSystemTypeToPulsar()
Set the system which you want use.
void SetMILSystemTypeToGenesisPlus()
Set the system which you want use.
void SetVideoFormatToNonStandard()
Set/Get the video format.
virtual void InternalGrab()
The internal function which actually does the grab.
#define VTK_MIL_MONO