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 =========================================================================*/
31 #ifndef vtkMILVideoSource_h
32 #define vtkMILVideoSource_h
33 
34 #include "vtkIOVideoModule.h" // For export macro
35 #include "vtkVideoSource.h"
36 
37 // digitizer hardware
38 #define VTK_MIL_DEFAULT 0
39 #define VTK_MIL_METEOR "M_SYSTEM_METEOR"
40 #define VTK_MIL_METEOR_II "M_SYSTEM_METEOR_II"
41 #define VTK_MIL_METEOR_II_DIG "M_SYSTEM_METEOR_II_DIG"
42 #define VTK_MIL_METEOR_II_CL "M_SYSTEM_METEOR_II_CL"
43 #define VTK_MIL_METEOR_II_1394 "M_SYSTEM_METEOR_II_1394"
44 #define VTK_MIL_CORONA "M_SYSTEM_CORONA"
45 #define VTK_MIL_CORONA_II "M_SYSTEM_CORONA_II"
46 #define VTK_MIL_PULSAR "M_SYSTEM_PULSAR"
47 #define VTK_MIL_GENESIS "M_SYSTEM_GENESIS"
48 #define VTK_MIL_GENESIS_PLUS "M_SYSTEM_GENESIS_PLUS"
49 #define VTK_MIL_ORION "M_SYSTEM_ORION"
50 #define VTK_MIL_CRONOS "M_SYSTEM_CRONOS"
51 #define VTK_MIL_ODYSSEY "M_SYSTEM_ODYSSEY"
52 
53 // video inputs:
54 #define VTK_MIL_MONO 0
55 #define VTK_MIL_COMPOSITE 1
56 #define VTK_MIL_YC 2
57 #define VTK_MIL_RGB 3
58 #define VTK_MIL_DIGITAL 4
59 
60 // video formats:
61 #define VTK_MIL_RS170 0
62 #define VTK_MIL_NTSC 1
63 #define VTK_MIL_CCIR 2
64 #define VTK_MIL_PAL 3
65 #define VTK_MIL_SECAM 4
66 #define VTK_MIL_NONSTANDARD 5
67 
69 {
70 public:
73  void PrintSelf(ostream& os, vtkIndent indent);
74 
76  void Record();
77 
79  void Play();
80 
82  void Stop();
83 
85  void Grab();
86 
88  void SetFrameSize(int x, int y, int z);
89 
92 
94 
95  virtual void SetVideoChannel(int channel);
96  vtkGetMacro(VideoChannel, int);
98 
100 
101  virtual void SetVideoFormat(int format);
102  void SetVideoFormatToNTSC() { this->SetVideoFormat(VTK_MIL_NTSC); };
103  void SetVideoFormatToPAL() { this->SetVideoFormat(VTK_MIL_PAL); };
104  void SetVideoFormatToSECAM() { this->SetVideoFormat(VTK_MIL_SECAM); };
105  void SetVideoFormatToRS170() { this->SetVideoFormat(VTK_MIL_RS170); };
106  void SetVideoFormatToCCIR() { this->SetVideoFormat(VTK_MIL_CCIR); };
108  this->SetVideoFormat(VTK_MIL_NONSTANDARD); };
109  vtkGetMacro(VideoFormat,int);
111 
113 
114  virtual void SetVideoInput(int input);
115  void SetVideoInputToMono() { this->SetVideoInput(VTK_MIL_MONO); };
116  void SetVideoInputToComposite() {this->SetVideoInput(VTK_MIL_COMPOSITE);};
117  void SetVideoInputToYC() { this->SetVideoInput(VTK_MIL_YC); };
118  void SetVideoInputToRGB() { this->SetVideoInput(VTK_MIL_RGB); };
119  void SetVideoInputToDigital() { this->SetVideoInput(VTK_MIL_DIGITAL); };
120  vtkGetMacro(VideoInput,int);
122 
124 
127  virtual void SetContrastLevel(float contrast);
128  vtkGetMacro(ContrastLevel,float);
129  virtual void SetBrightnessLevel(float brightness);
130  vtkGetMacro(BrightnessLevel,float);
131  virtual void SetHueLevel(float hue);
132  vtkGetMacro(HueLevel,float);
133  virtual void SetSaturationLevel(float saturation);
134  vtkGetMacro(SaturationLevel,float);
136 
138 
140  virtual void SetBlackLevel(float value);
141  virtual float GetBlackLevel() {
142  return this->BlackLevel; };
143  virtual void SetWhiteLevel(float value);
144  virtual float GetWhiteLevel() {
145  return this->WhiteLevel; };
147 
149 
151  vtkSetStringMacro(MILSystemType);
152  vtkGetStringMacro(MILSystemType);
153  void SetMILSystemTypeToMeteor() { this->SetMILSystemType(VTK_MIL_METEOR); };
154  void SetMILSystemTypeToMeteorII() { this->SetMILSystemType(VTK_MIL_METEOR_II); };
155  void SetMILSystemTypeToMeteorIIDig() { this->SetMILSystemType(VTK_MIL_METEOR_II_DIG); };
156  void SetMILSystemTypeToMeteorIICL() { this->SetMILSystemType(VTK_MIL_METEOR_II_CL); };
157  void SetMILSystemTypeToMeteorII1394() { this->SetMILSystemType(VTK_MIL_METEOR_II_1394); };
158  void SetMILSystemTypeToCorona() { this->SetMILSystemType(VTK_MIL_CORONA); };
159  void SetMILSystemTypeToCoronaII() { this->SetMILSystemType(VTK_MIL_CORONA_II); };
160  void SetMILSystemTypeToPulsar() { this->SetMILSystemType(VTK_MIL_PULSAR); };
161  void SetMILSystemTypeToGenesis() { this->SetMILSystemType(VTK_MIL_GENESIS); };
162  void SetMILSystemTypeToGenesisPlus() { this->SetMILSystemType(VTK_MIL_GENESIS_PLUS); };
163  void SetMILSystemTypeToOrion() { this->SetMILSystemType(VTK_MIL_ORION); };
164  void SetMILSystemTypeToCronos() { this->SetMILSystemType(VTK_MIL_CRONOS); };
165  void SetMILSystemTypeToOdyssey() { this->SetMILSystemType(VTK_MIL_ODYSSEY); };
167 
168 
169  vtkSetMacro(MILSystemNumber,int);
170  vtkGetMacro(MILSystemNumber,int);
172 
174 
175  vtkSetStringMacro(MILDigitizerDCF);
176  vtkGetStringMacro(MILDigitizerDCF);
178 
180 
181  vtkSetMacro(MILDigitizerNumber,int);
182  vtkGetMacro(MILDigitizerNumber,int);
184 
186 
187  virtual void SetMILErrorMessages(int yesno);
188  vtkBooleanMacro(MILErrorMessages,int);
189  vtkGetMacro(MILErrorMessages,int);
191 
193 
194  vtkSetMacro(MILAppID,long);
195  vtkGetMacro(MILAppID,long);
196  vtkSetMacro(MILSysID,long);
197  vtkGetMacro(MILSysID,long);
198  vtkGetMacro(MILDigID,long);
199  vtkGetMacro(MILBufID,long);
201 
204  void Initialize();
205 
208 
210 
215  void InternalGrab();
217 
218 protected:
221 
222  virtual void AllocateMILDigitizer();
223  virtual void AllocateMILBuffer();
224 
225  virtual char *MILInterpreterForSystem(const char *system);
227 
232 
235  float HueLevel;
237 
238  float BlackLevel;
239  float WhiteLevel;
240 
241  int FrameMaxSize[2];
242 
243  long MILAppID;
244  long MILSysID;
245  long MILDigID;
246  long MILBufID;
247  // long MILDispBufID;
248  // long MILDispID;
249 
252 
255 
257 
260 
262 
266  double CreateTimeStampForFrame(unsigned long frame);
267 
269  unsigned long LastFrameCount;
272 
273 private:
274  vtkMILVideoSource(const vtkMILVideoSource&); // Not implemented.
275  void operator=(const vtkMILVideoSource&); // Not implemented.
276 };
277 
278 #endif
vtkMILVideoSource::MILInterpreterForSystem
virtual char * MILInterpreterForSystem(const char *system)
vtkMILVideoSource::Initialize
void Initialize()
vtkMILVideoSource::EstimatedFramePeriod
double EstimatedFramePeriod
Definition: vtkMILVideoSource.h:270
vtkMILVideoSource::SetVideoFormat
virtual void SetVideoFormat(int format)
vtkMILVideoSource::SetVideoFormatToNTSC
void SetVideoFormatToNTSC()
Definition: vtkMILVideoSource.h:102
vtkMILVideoSource::ReleaseSystemResources
void ReleaseSystemResources()
VTK_MIL_PULSAR
#define VTK_MIL_PULSAR
Definition: vtkMILVideoSource.h:46
vtkMILVideoSource::VideoInputForColor
int VideoInputForColor
Definition: vtkMILVideoSource.h:230
vtkgl::z
GLdouble GLdouble z
Definition: vtkgl.h:11754
vtkMILVideoSource::MILSysID
long MILSysID
Definition: vtkMILVideoSource.h:244
vtkMILVideoSource::SetMILSystemTypeToGenesisPlus
void SetMILSystemTypeToGenesisPlus()
Definition: vtkMILVideoSource.h:162
vtkMILVideoSource::SetVideoInputToComposite
void SetVideoInputToComposite()
Definition: vtkMILVideoSource.h:116
vtkMILVideoSource::SetMILSystemTypeToPulsar
void SetMILSystemTypeToPulsar()
Definition: vtkMILVideoSource.h:160
VTK_MIL_YC
#define VTK_MIL_YC
Definition: vtkMILVideoSource.h:56
vtkMILVideoSource::SetMILSystemTypeToMeteorIIDig
void SetMILSystemTypeToMeteorIIDig()
Definition: vtkMILVideoSource.h:155
vtkMILVideoSource::SetMILSystemTypeToCronos
void SetMILSystemTypeToCronos()
Definition: vtkMILVideoSource.h:164
vtkMILVideoSource::SetSaturationLevel
virtual void SetSaturationLevel(float saturation)
VTK_MIL_METEOR_II
#define VTK_MIL_METEOR_II
Definition: vtkMILVideoSource.h:40
VTKIOVIDEO_EXPORT
#define VTKIOVIDEO_EXPORT
Definition: vtkIOVideoModule.h:15
vtkMILVideoSource::Play
void Play()
vtkMILVideoSource::FatalMILError
int FatalMILError
Definition: vtkMILVideoSource.h:261
VTK_MIL_PAL
#define VTK_MIL_PAL
Definition: vtkMILVideoSource.h:64
vtkMILVideoSource::MILSystemNumber
int MILSystemNumber
Definition: vtkMILVideoSource.h:251
vtkMILVideoSource::BlackLevel
float BlackLevel
Definition: vtkMILVideoSource.h:238
vtkMILVideoSource::LastTimeStamp
double LastTimeStamp
Definition: vtkMILVideoSource.h:268
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkMILVideoSource::SetMILSystemTypeToMeteorIICL
void SetMILSystemTypeToMeteorIICL()
Definition: vtkMILVideoSource.h:156
VTK_MIL_METEOR_II_1394
#define VTK_MIL_METEOR_II_1394
Definition: vtkMILVideoSource.h:43
VTK_MIL_RS170
#define VTK_MIL_RS170
Definition: vtkMILVideoSource.h:61
vtkVideoSource.h
vtkMILVideoSource::SaturationLevel
float SaturationLevel
Definition: vtkMILVideoSource.h:236
vtkMILVideoSource::SetMILSystemTypeToGenesis
void SetMILSystemTypeToGenesis()
Definition: vtkMILVideoSource.h:161
vtkMILVideoSource::FrameCounter
int FrameCounter
Definition: vtkMILVideoSource.h:213
VTK_MIL_SECAM
#define VTK_MIL_SECAM
Definition: vtkMILVideoSource.h:65
vtkMILVideoSource::SetVideoInput
virtual void SetVideoInput(int input)
vtkgl::x
GLint GLint GLint GLint GLint x
Definition: vtkgl.h:11318
vtkMILVideoSource::ContrastLevel
float ContrastLevel
Definition: vtkMILVideoSource.h:233
vtkMILVideoSource::MILInterpreterDLL
char * MILInterpreterDLL
Definition: vtkMILVideoSource.h:226
vtkMILVideoSource::AllocateMILDigitizer
virtual void AllocateMILDigitizer()
VTK_MIL_COMPOSITE
#define VTK_MIL_COMPOSITE
Definition: vtkMILVideoSource.h:55
vtkMILVideoSource::SetFrameSize
void SetFrameSize(int x, int y, int z)
VTK_MIL_METEOR_II_CL
#define VTK_MIL_METEOR_II_CL
Definition: vtkMILVideoSource.h:42
vtkMILVideoSource::OldUserDataPtr
void * OldUserDataPtr
Definition: vtkMILVideoSource.h:212
vtkMILVideoSource::SetVideoInputToRGB
void SetVideoInputToRGB()
Definition: vtkMILVideoSource.h:118
vtkMILVideoSource::SetMILErrorMessages
virtual void SetMILErrorMessages(int yesno)
VTK_MIL_CRONOS
#define VTK_MIL_CRONOS
Definition: vtkMILVideoSource.h:50
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkMILVideoSource::AllocateMILBuffer
virtual void AllocateMILBuffer()
vtkMILVideoSource::SetMILSystemTypeToCorona
void SetMILSystemTypeToCorona()
Definition: vtkMILVideoSource.h:158
vtkMILVideoSource::SetWhiteLevel
virtual void SetWhiteLevel(float value)
vtkMILVideoSource::SetHueLevel
virtual void SetHueLevel(float hue)
VTK_MIL_RGB
#define VTK_MIL_RGB
Definition: vtkMILVideoSource.h:57
vtkMILVideoSource::SetVideoInputToMono
void SetVideoInputToMono()
Definition: vtkMILVideoSource.h:115
vtkMILVideoSource::SetBrightnessLevel
virtual void SetBrightnessLevel(float brightness)
vtkMILVideoSource::SetVideoInputToDigital
void SetVideoInputToDigital()
Definition: vtkMILVideoSource.h:119
vtkMILVideoSource::SetMILSystemTypeToMeteorII1394
void SetMILSystemTypeToMeteorII1394()
Definition: vtkMILVideoSource.h:157
VTK_MIL_ORION
#define VTK_MIL_ORION
Definition: vtkMILVideoSource.h:49
VTK_MIL_GENESIS
#define VTK_MIL_GENESIS
Definition: vtkMILVideoSource.h:47
vtkMILVideoSource
Matrox Imaging Library frame grabbers.
Definition: vtkMILVideoSource.h:69
vtkMILVideoSource::VideoInput
int VideoInput
Definition: vtkMILVideoSource.h:229
vtkMILVideoSource::Stop
void Stop()
VTK_MIL_GENESIS_PLUS
#define VTK_MIL_GENESIS_PLUS
Definition: vtkMILVideoSource.h:48
vtkgl::value
GLsizei const GLfloat * value
Definition: vtkgl.h:12021
vtkMILVideoSource::SetMILSystemTypeToMeteorII
void SetMILSystemTypeToMeteorII()
Definition: vtkMILVideoSource.h:154
VTK_MIL_MONO
#define VTK_MIL_MONO
Definition: vtkMILVideoSource.h:54
vtkMILVideoSource::GetBlackLevel
virtual float GetBlackLevel()
Definition: vtkMILVideoSource.h:141
vtkMILVideoSource::SetVideoChannel
virtual void SetVideoChannel(int channel)
vtkMILVideoSource::vtkMILVideoSource
vtkMILVideoSource()
vtkMILVideoSource::SetOutputFormat
void SetOutputFormat(int format)
vtkMILVideoSource::VideoFormat
int VideoFormat
Definition: vtkMILVideoSource.h:231
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkMILVideoSource::ForceGrab
int ForceGrab
Definition: vtkMILVideoSource.h:214
vtkMILVideoSource::SetVideoInputToYC
void SetVideoInputToYC()
Definition: vtkMILVideoSource.h:117
VTK_MIL_CCIR
#define VTK_MIL_CCIR
Definition: vtkMILVideoSource.h:63
vtkMILVideoSource::MILSysInternallyAllocated
int MILSysInternallyAllocated
Definition: vtkMILVideoSource.h:259
vtkMILVideoSource::SetMILSystemTypeToCoronaII
void SetMILSystemTypeToCoronaII()
Definition: vtkMILVideoSource.h:159
vtkMILVideoSource::Record
void Record()
vtkMILVideoSource::MILErrorMessages
int MILErrorMessages
Definition: vtkMILVideoSource.h:256
VTK_MIL_NONSTANDARD
#define VTK_MIL_NONSTANDARD
Definition: vtkMILVideoSource.h:66
vtkMILVideoSource::SetVideoFormatToRS170
void SetVideoFormatToRS170()
Definition: vtkMILVideoSource.h:105
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkMILVideoSource::SetMILSystemTypeToOdyssey
void SetMILSystemTypeToOdyssey()
Definition: vtkMILVideoSource.h:165
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkMILVideoSource::HueLevel
float HueLevel
Definition: vtkMILVideoSource.h:235
vtkMILVideoSource::New
static vtkMILVideoSource * New()
VTK_MIL_DIGITAL
#define VTK_MIL_DIGITAL
Definition: vtkMILVideoSource.h:58
vtkMILVideoSource::LastFrameCount
unsigned long LastFrameCount
Definition: vtkMILVideoSource.h:269
VTK_MIL_NTSC
#define VTK_MIL_NTSC
Definition: vtkMILVideoSource.h:62
vtkMILVideoSource::OldHookFunction
void * OldHookFunction
Definition: vtkMILVideoSource.h:211
vtkMILVideoSource::InternalGrab
void InternalGrab()
vtkMILVideoSource::SetVideoFormatToCCIR
void SetVideoFormatToCCIR()
Definition: vtkMILVideoSource.h:106
vtkMILVideoSource::SetBlackLevel
virtual void SetBlackLevel(float value)
vtkMILVideoSource::GetWhiteLevel
virtual float GetWhiteLevel()
Definition: vtkMILVideoSource.h:144
VTK_MIL_METEOR
#define VTK_MIL_METEOR
Definition: vtkMILVideoSource.h:39
vtkMILVideoSource::VideoChannel
int VideoChannel
Definition: vtkMILVideoSource.h:228
vtkMILVideoSource::SetMILSystemTypeToOrion
void SetMILSystemTypeToOrion()
Definition: vtkMILVideoSource.h:163
vtkMILVideoSource::SetVideoFormatToPAL
void SetVideoFormatToPAL()
Definition: vtkMILVideoSource.h:103
vtkMILVideoSource::MILSystemType
char * MILSystemType
Definition: vtkMILVideoSource.h:250
vtkMILVideoSource::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkMILVideoSource::MILDigID
long MILDigID
Definition: vtkMILVideoSource.h:245
vtkMILVideoSource::~vtkMILVideoSource
~vtkMILVideoSource()
VTK_MIL_METEOR_II_DIG
#define VTK_MIL_METEOR_II_DIG
Definition: vtkMILVideoSource.h:41
vtkMILVideoSource::MILBufID
long MILBufID
Definition: vtkMILVideoSource.h:246
vtkgl::y
GLint GLint GLint GLint GLint GLint y
Definition: vtkgl.h:11318
vtkMILVideoSource::SetVideoFormatToNonStandard
void SetVideoFormatToNonStandard()
Definition: vtkMILVideoSource.h:107
vtkIOVideoModule.h
vtkMILVideoSource::SetMILSystemTypeToMeteor
void SetMILSystemTypeToMeteor()
Definition: vtkMILVideoSource.h:153
vtkMILVideoSource::MILAppInternallyAllocated
int MILAppInternallyAllocated
Definition: vtkMILVideoSource.h:258
vtkMILVideoSource::WhiteLevel
float WhiteLevel
Definition: vtkMILVideoSource.h:239
vtkMILVideoSource::Grab
void Grab()
vtkMILVideoSource::MILAppID
long MILAppID
Definition: vtkMILVideoSource.h:243
VTK_MIL_ODYSSEY
#define VTK_MIL_ODYSSEY
Definition: vtkMILVideoSource.h:51
VTK_MIL_CORONA
#define VTK_MIL_CORONA
Definition: vtkMILVideoSource.h:44
vtkgl::format
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: vtkgl.h:11316
vtkMILVideoSource::SetVideoFormatToSECAM
void SetVideoFormatToSECAM()
Definition: vtkMILVideoSource.h:104
vtkMILVideoSource::SetContrastLevel
virtual void SetContrastLevel(float contrast)
VTK_MIL_CORONA_II
#define VTK_MIL_CORONA_II
Definition: vtkMILVideoSource.h:45
vtkMILVideoSource::CreateTimeStampForFrame
double CreateTimeStampForFrame(unsigned long frame)
vtkMILVideoSource::MILDigitizerDCF
char * MILDigitizerDCF
Definition: vtkMILVideoSource.h:254
vtkMILVideoSource::NextFramePeriod
double NextFramePeriod
Definition: vtkMILVideoSource.h:271
vtkMILVideoSource::BrightnessLevel
float BrightnessLevel
Definition: vtkMILVideoSource.h:234
vtkVideoSource
Superclass of video input devices for VTK.
Definition: vtkVideoSource.h:43
vtkMILVideoSource::MILDigitizerNumber
int MILDigitizerNumber
Definition: vtkMILVideoSource.h:253