00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00035
#ifndef __vtkMILVideoSource_h
00036
#define __vtkMILVideoSource_h
00037
00038
#include "vtkVideoSource.h"
00039
00040
00041 #define VTK_MIL_DEFAULT 0
00042 #define VTK_MIL_METEOR "M_SYSTEM_METEOR"
00043 #define VTK_MIL_METEOR_II "M_SYSTEM_METEOR_II"
00044 #define VTK_MIL_METEOR_II_DIG "M_SYSTEM_METEOR_II_DIG"
00045 #define VTK_MIL_METEOR_II_CL "M_SYSTEM_METEOR_II_CL"
00046 #define VTK_MIL_METEOR_II_1394 "M_SYSTEM_METEOR_II_1394"
00047 #define VTK_MIL_CORONA "M_SYSTEM_CORONA"
00048 #define VTK_MIL_CORONA_II "M_SYSTEM_CORONA_II"
00049 #define VTK_MIL_PULSAR "M_SYSTEM_PULSAR"
00050 #define VTK_MIL_GENESIS "M_SYSTEM_GENESIS"
00051 #define VTK_MIL_GENESIS_PLUS "M_SYSTEM_GENESIS_PLUS"
00052 #define VTK_MIL_ORION "M_SYSTEM_ORION"
00053 #define VTK_MIL_CRONOS "M_SYSTEM_CRONOS"
00054 #define VTK_MIL_ODYSSEY "M_SYSTEM_ODYSSEY"
00055
00056
00057 #define VTK_MIL_MONO 0
00058 #define VTK_MIL_COMPOSITE 1
00059 #define VTK_MIL_YC 2
00060 #define VTK_MIL_RGB 3
00061 #define VTK_MIL_DIGITAL 4
00062
00063
00064 #define VTK_MIL_RS170 0
00065 #define VTK_MIL_NTSC 1
00066 #define VTK_MIL_CCIR 2
00067 #define VTK_MIL_PAL 3
00068 #define VTK_MIL_SECAM 4
00069 #define VTK_MIL_NONSTANDARD 5
00070
00071 class VTK_HYBRID_EXPORT vtkMILVideoSource :
public vtkVideoSource
00072 {
00073
public:
00074
static vtkMILVideoSource *
New();
00075 vtkTypeRevisionMacro(vtkMILVideoSource,
vtkVideoSource);
00076
void PrintSelf(ostream& os,
vtkIndent indent);
00077
00079
void Record();
00080
00082
void Play();
00083
00085
void Stop();
00086
00088
void Grab();
00089
00091
void SetFrameSize(
int x,
int y,
int z);
00092
00094
void SetOutputFormat(
int format);
00095
00097
00098
virtual void SetVideoChannel(
int channel);
00099 vtkGetMacro(VideoChannel,
int);
00101
00103
00104
virtual void SetVideoFormat(
int format);
00105 void SetVideoFormatToNTSC() { this->SetVideoFormat(
VTK_MIL_NTSC); };
00106 void SetVideoFormatToPAL() { this->SetVideoFormat(
VTK_MIL_PAL); };
00107 void SetVideoFormatToSECAM() { this->SetVideoFormat(
VTK_MIL_SECAM); };
00108 void SetVideoFormatToRS170() { this->SetVideoFormat(
VTK_MIL_RS170); };
00109 void SetVideoFormatToCCIR() { this->SetVideoFormat(
VTK_MIL_CCIR); };
00110 void SetVideoFormatToNonStandard() {
00111 this->SetVideoFormat(
VTK_MIL_NONSTANDARD); };
00112 vtkGetMacro(VideoFormat,
int);
00114
00116
00117
virtual void SetVideoInput(
int input);
00118 void SetVideoInputToMono() { this->SetVideoInput(
VTK_MIL_MONO); };
00119 void SetVideoInputToComposite() {this->SetVideoInput(
VTK_MIL_COMPOSITE);};
00120 void SetVideoInputToYC() { this->SetVideoInput(
VTK_MIL_YC); };
00121 void SetVideoInputToRGB() { this->SetVideoInput(
VTK_MIL_RGB); };
00122 void SetVideoInputToDigital() { this->SetVideoInput(
VTK_MIL_DIGITAL); };
00123 vtkGetMacro(VideoInput,
int);
00125
00127
00130
virtual void SetContrastLevel(
float contrast);
00131 vtkGetMacro(ContrastLevel,
float);
00132
virtual void SetBrightnessLevel(
float brightness);
00133 vtkGetMacro(BrightnessLevel,
float);
00134
virtual void SetHueLevel(
float hue);
00135 vtkGetMacro(HueLevel,
float);
00136
virtual void SetSaturationLevel(
float saturation);
00137 vtkGetMacro(SaturationLevel,
float);
00139
00141
00143
virtual void SetBlackLevel(
float value);
00144 virtual float GetBlackLevel() {
00145
return this->BlackLevel; };
00146
virtual void SetWhiteLevel(
float value);
00147 virtual float GetWhiteLevel() {
00148
return this->WhiteLevel; };
00150
00152
00154 vtkSetStringMacro(MILSystemType);
00155 vtkGetStringMacro(MILSystemType);
00156 void SetMILSystemTypeToMeteor() { this->SetMILSystemType(
VTK_MIL_METEOR); };
00157 void SetMILSystemTypeToMeteorII() { this->SetMILSystemType(
VTK_MIL_METEOR_II); };
00158 void SetMILSystemTypeToMeteorIIDig() { this->SetMILSystemType(
VTK_MIL_METEOR_II_DIG); };
00159 void SetMILSystemTypeToMeteorIICL() { this->SetMILSystemType(
VTK_MIL_METEOR_II_CL); };
00160 void SetMILSystemTypeToMeteorII1394() { this->SetMILSystemType(
VTK_MIL_METEOR_II_1394); };
00161 void SetMILSystemTypeToCorona() { this->SetMILSystemType(
VTK_MIL_CORONA); };
00162 void SetMILSystemTypeToCoronaII() { this->SetMILSystemType(
VTK_MIL_CORONA_II); };
00163 void SetMILSystemTypeToPulsar() { this->SetMILSystemType(
VTK_MIL_PULSAR); };
00164 void SetMILSystemTypeToGenesis() { this->SetMILSystemType(
VTK_MIL_GENESIS); };
00165 void SetMILSystemTypeToGenesisPlus() { this->SetMILSystemType(
VTK_MIL_GENESIS_PLUS); };
00166 void SetMILSystemTypeToOrion() { this->SetMILSystemType(
VTK_MIL_ORION); };
00167 void SetMILSystemTypeToCronos() { this->SetMILSystemType(
VTK_MIL_CRONOS); };
00168 void SetMILSystemTypeToOdyssey() { this->SetMILSystemType(
VTK_MIL_ODYSSEY); };
00169
00170
00171 vtkSetMacro(MILSystemNumber,
int);
00172 vtkGetMacro(MILSystemNumber,
int);
00174
00176
00177 vtkSetStringMacro(MILDigitizerDCF);
00178 vtkGetStringMacro(MILDigitizerDCF);
00180
00182
00183 vtkSetMacro(MILDigitizerNumber,
int);
00184 vtkGetMacro(MILDigitizerNumber,
int);
00186
00188
00189
virtual void SetMILErrorMessages(
int yesno);
00190 vtkBooleanMacro(MILErrorMessages,
int);
00191 vtkGetMacro(MILErrorMessages,
int);
00193
00195
00196 vtkSetMacro(MILAppID,
long);
00197 vtkGetMacro(MILAppID,
long);
00198 vtkSetMacro(MILSysID,
long);
00199 vtkGetMacro(MILSysID,
long);
00200 vtkGetMacro(MILDigID,
long);
00201 vtkGetMacro(MILBufID,
long);
00203
00206
void Initialize();
00207
00209
void ReleaseSystemResources();
00210
00212
00213 void *OldHookFunction;
00214 void *OldUserDataPtr;
00215 int FrameCounter;
00216 int ForceGrab;
00217
void InternalGrab();
00219
00220
protected:
00221 vtkMILVideoSource();
00222 ~vtkMILVideoSource();
00223
00224
virtual void AllocateMILDigitizer();
00225
virtual void AllocateMILBuffer();
00226
00227
virtual void *MILInterpreterForSystem(
const char *system);
00228 char *MILInterpreterDLL;
00229
00230 int VideoChannel;
00231 int VideoInput;
00232 int VideoInputForColor;
00233 int VideoFormat;
00234
00235 float ContrastLevel;
00236 float BrightnessLevel;
00237 float HueLevel;
00238 float SaturationLevel;
00239
00240 float BlackLevel;
00241 float WhiteLevel;
00242
00243 int FrameMaxSize[2];
00244
00245 long MILAppID;
00246 long MILSysID;
00247 long MILDigID;
00248 long MILBufID;
00249
00250
00251
00252 char *MILSystemType;
00253 int MILSystemNumber;
00254
00255 int MILDigitizerNumber;
00256 char *MILDigitizerDCF;
00257
00258 int MILErrorMessages;
00259
00260 int MILAppInternallyAllocated;
00261 int MILSysInternallyAllocated;
00262
00263 int FatalMILError;
00264
00268
double CreateTimeStampForFrame(
unsigned long frame);
00269
00270 double LastTimeStamp;
00271 unsigned long LastFrameCount;
00272 double EstimatedFramePeriod;
00273 double NextFramePeriod;
00274
00275
private:
00276 vtkMILVideoSource(
const vtkMILVideoSource&);
00277
void operator=(
const vtkMILVideoSource&);
00278 };
00279
00280
#endif