VTK  9.0.1
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() override;
80 
84  void Play() override;
85 
89  void Stop() override;
90 
94  void Grab() override;
95 
99  void SetFrameSize(int x, int y, int z) override;
100 
104  void SetOutputFormat(int format) override;
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); }
124  void SetVideoFormatToNonStandard() { this->SetVideoFormat(VTK_MIL_NONSTANDARD); }
125  vtkGetMacro(VideoFormat, int);
127 
129 
132  virtual void SetVideoInput(int input);
133  void SetVideoInputToMono() { this->SetVideoInput(VTK_MIL_MONO); }
134  void SetVideoInputToComposite() { this->SetVideoInput(VTK_MIL_COMPOSITE); }
135  void SetVideoInputToYC() { this->SetVideoInput(VTK_MIL_YC); }
136  void SetVideoInputToRGB() { this->SetVideoInput(VTK_MIL_RGB); }
137  void SetVideoInputToDigital() { this->SetVideoInput(VTK_MIL_DIGITAL); }
138  vtkGetMacro(VideoInput, int);
140 
142 
149  virtual void SetContrastLevel(float contrast);
150  vtkGetMacro(ContrastLevel, float);
151  virtual void SetBrightnessLevel(float brightness);
152  vtkGetMacro(BrightnessLevel, float);
153  virtual void SetHueLevel(float hue);
154  vtkGetMacro(HueLevel, float);
155  virtual void SetSaturationLevel(float saturation);
156  vtkGetMacro(SaturationLevel, float);
158 
160 
164  virtual void SetBlackLevel(float value);
165  virtual float GetBlackLevel() { return this->BlackLevel; }
166  virtual void SetWhiteLevel(float value);
167  virtual float GetWhiteLevel() { return this->WhiteLevel; }
169 
171 
175  vtkSetStringMacro(MILSystemType);
176  vtkGetStringMacro(MILSystemType);
177  void SetMILSystemTypeToMeteor() { this->SetMILSystemType(VTK_MIL_METEOR); }
178  void SetMILSystemTypeToMeteorII() { this->SetMILSystemType(VTK_MIL_METEOR_II); }
179  void SetMILSystemTypeToMeteorIIDig() { this->SetMILSystemType(VTK_MIL_METEOR_II_DIG); }
180  void SetMILSystemTypeToMeteorIICL() { this->SetMILSystemType(VTK_MIL_METEOR_II_CL); }
181  void SetMILSystemTypeToMeteorII1394() { this->SetMILSystemType(VTK_MIL_METEOR_II_1394); }
182  void SetMILSystemTypeToCorona() { this->SetMILSystemType(VTK_MIL_CORONA); }
183  void SetMILSystemTypeToCoronaII() { this->SetMILSystemType(VTK_MIL_CORONA_II); }
184  void SetMILSystemTypeToPulsar() { this->SetMILSystemType(VTK_MIL_PULSAR); }
185  void SetMILSystemTypeToGenesis() { this->SetMILSystemType(VTK_MIL_GENESIS); }
186  void SetMILSystemTypeToGenesisPlus() { this->SetMILSystemType(VTK_MIL_GENESIS_PLUS); }
187  void SetMILSystemTypeToOrion() { this->SetMILSystemType(VTK_MIL_ORION); }
188  void SetMILSystemTypeToCronos() { this->SetMILSystemType(VTK_MIL_CRONOS); }
189  void SetMILSystemTypeToOdyssey() { this->SetMILSystemType(VTK_MIL_ODYSSEY); }
191 
192 
195  vtkSetMacro(MILSystemNumber, int);
196  vtkGetMacro(MILSystemNumber, int);
198 
200 
203  vtkSetStringMacro(MILDigitizerDCF);
204  vtkGetStringMacro(MILDigitizerDCF);
206 
208 
211  vtkSetMacro(MILDigitizerNumber, int);
212  vtkGetMacro(MILDigitizerNumber, int);
214 
216 
219  virtual void SetMILErrorMessages(int yesno);
220  vtkBooleanMacro(MILErrorMessages, int);
221  vtkGetMacro(MILErrorMessages, int);
223 
225 
228  vtkSetMacro(MILAppID, long);
229  vtkGetMacro(MILAppID, long);
230  vtkSetMacro(MILSysID, long);
231  vtkGetMacro(MILSysID, long);
232  vtkGetMacro(MILDigID, long);
233  vtkGetMacro(MILBufID, long);
235 
240  void Initialize() override;
241 
246  void ReleaseSystemResources() override;
247 
249 
256  void InternalGrab() override;
258 
259 protected:
261  ~vtkMILVideoSource() override;
262 
263  virtual void AllocateMILDigitizer();
264  virtual void AllocateMILBuffer();
265 
266  virtual char* MILInterpreterForSystem(const char* system);
268 
273 
276  float HueLevel;
278 
279  float BlackLevel;
280  float WhiteLevel;
281 
282  int FrameMaxSize[2];
283 
284  long MILAppID;
285  long MILSysID;
286  long MILDigID;
287  long MILBufID;
288  // long MILDispBufID;
289  // long MILDispID;
290 
293 
296 
298 
301 
303 
310  double CreateTimeStampForFrame(unsigned long frame);
311 
313  unsigned long LastFrameCount;
316 
317 private:
318  vtkMILVideoSource(const vtkMILVideoSource&) = delete;
319  void operator=(const vtkMILVideoSource&) = delete;
320 };
321 
322 #endif
#define VTK_MIL_METEOR
virtual void Stop()
Stop recording or playing.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
#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:33
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
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
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.
#define VTK_MIL_YC
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