PlusLib
2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
|
Class for acquiring ultrasound images from Interson USB ultrasound systems. More...
#include <src/PlusDataCollection/Interson/vtkPlusIntersonVideoSource.h>
Public Types | |
typedef vtkPlusUsDevice | Superclass |
Public Types inherited from vtkPlusUsDevice | |
typedef vtkPlusDevice | Superclass |
Public Types inherited from vtkPlusDevice | |
typedef vtkImageAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
bool | GetEnableProbeButtonMonitoring () const |
virtual std::string | GetSdkVersion () |
PlusStatus | GetSoundVelocity (double &aVel) |
virtual PlusStatus | InternalApplyImagingParameterChange () |
virtual int | IsA (const char *type) |
virtual bool | IsTracker () const |
virtual PlusStatus | NotifyConfigured () |
virtual void | PrintSelf (ostream &os, vtkIndent indent) VTK_OVERRIDE |
virtual PlusStatus | ReadConfiguration (vtkXMLDataElement *config) |
PlusStatus | SetContrast (int value) |
PlusStatus | SetDepthMm (double depthMm) |
PlusStatus | SetDynRangeDb (double value) |
void | SetEnableProbeButtonMonitoring (bool _arg) |
PlusStatus | SetFrequencyMhz (float freq) |
PlusStatus | SetImageSize (int imageSize[2]) |
PlusStatus | SetIntensity (int value) |
virtual PlusStatus | SetNewImagingParameters (const vtkPlusUsImagingParameters &newImagingParameters) |
PlusStatus | SetSectorPercent (double value) |
PlusStatus | SetSoundVelocity (double value) |
PlusStatus | SetTimeGainCompensationPercent (double gainPercent[3]) |
PlusStatus | SetZoomFactor (float zoomFactor) |
virtual PlusStatus | WriteConfiguration (vtkXMLDataElement *config) |
Public Member Functions inherited from vtkPlusUsDevice | |
virtual PlusStatus | AddVideoItemToVideoSource (vtkPlusDataSource &videoSource, const igsioVideoFrame &frame, long frameNumber, double unfilteredTimestamp=UNDEFINED_TIMESTAMP, double filteredTimestamp=UNDEFINED_TIMESTAMP, const igsioFieldMapType *customFields=NULL) |
virtual PlusStatus | AddVideoItemToVideoSource (vtkPlusDataSource &videoSource, void *imageDataPtr, US_IMAGE_ORIENTATION usImageOrientation, const FrameSizeType &frameSizeInPx, igsioCommon::VTKScalarPixelType pixelType, unsigned int numberOfScalarComponents, US_IMAGE_TYPE imageType, int numberOfBytesToSkip, long frameNumber, double unfilteredTimestamp=UNDEFINED_TIMESTAMP, double filteredTimestamp=UNDEFINED_TIMESTAMP, const igsioFieldMapType *customFields=NULL) |
virtual PlusStatus | AddVideoItemToVideoSources (const std::vector< vtkPlusDataSource * > &videoSources, const igsioVideoFrame &frame, long frameNumber, double unfilteredTimestamp=UNDEFINED_TIMESTAMP, double filteredTimestamp=UNDEFINED_TIMESTAMP, const igsioFieldMapType *customFields=NULL) override |
virtual PlusStatus | AddVideoItemToVideoSources (const std::vector< vtkPlusDataSource * > &videoSources, void *imageDataPtr, US_IMAGE_ORIENTATION usImageOrientation, const FrameSizeType &frameSizeInPx, igsioCommon::VTKScalarPixelType pixelType, unsigned int numberOfScalarComponents, US_IMAGE_TYPE imageType, int numberOfBytesToSkip, long frameNumber, double unfilteredTimestamp=UNDEFINED_TIMESTAMP, double filteredTimestamp=UNDEFINED_TIMESTAMP, const igsioFieldMapType *customFields=NULL) override |
virtual std::vector< double > | CalculateAngles () |
virtual std::vector< double > | CalculateBoundingBox () |
virtual std::vector< double > | CalculateDepths () |
virtual double | CalculateLinearWidth () |
virtual std::vector< double > | CalculateOrigin () |
virtual vtkPlusUsImagingParameters * | GetImagingParameters () |
virtual std::string | GetParameter (const std::string &key) const |
virtual PlusStatus | GetParameter (const std::string &key, std::string &outValue) const |
virtual IGTLIO_PROBE_TYPE | GetProbeType () |
bool | IsKnownKey (const std::string &queryKey) const |
virtual PlusStatus | SetParameter (const std::string &key, const std::string &value) |
vtkGetStdStringMacro (ImageToTransducerTransformName) | |
vtkSetStdStringMacro (ImageToTransducerTransformName) | |
Public Member Functions inherited from vtkPlusDevice | |
PlusStatus | AddFieldDataSource (vtkPlusDataSource *aSource) |
PlusStatus | AddInputChannel (vtkPlusChannel *aChannel) |
PlusStatus | AddOutputChannel (vtkPlusChannel *aChannel) |
PlusStatus | AddTool (vtkPlusDataSource *tool, bool requireUniquePortName=true) |
PlusStatus | AddVideoSource (vtkPlusDataSource *anImage) |
void | ClearAllBuffers () |
virtual PlusStatus | Connect () |
virtual PlusStatus | CreateDefaultOutputChannel (const char *channelId=NULL, bool addSource=true) |
void | DeepCopy (const vtkPlusDevice &device) |
virtual PlusStatus | Disconnect () |
virtual PlusStatus | ForceUpdate () |
virtual double | GetAcquisitionRate () const |
virtual PlusStatus | GetBufferSize (vtkPlusChannel &aChannel, int &outVal, const std::string &aSourceId=std::string("")) |
virtual int | GetConnected () const |
virtual bool | GetCorrectlyConfigured () const |
PlusStatus | GetDataSource (const char *aSourceId, vtkPlusDataSource *&aSource) |
PlusStatus | GetDataSource (const std::string &aSourceId, vtkPlusDataSource *&aSource) |
virtual double | GetDesiredTimestamp () |
virtual std::string | GetDeviceId () const |
PlusStatus | GetFieldDataSource (const char *aSourceId, vtkPlusDataSource *&aSource) const |
PlusStatus | GetFieldDataSource (const std::string &aSourceId, vtkPlusDataSource *&aSource) const |
DataSourceContainerConstIterator | GetFieldDataSourcessIteratorBegin () const |
DataSourceContainerConstIterator | GetFieldDataSourcessIteratorEnd () const |
PlusStatus | GetFirstActiveOutputVideoSource (vtkPlusDataSource *&aVideoSource) |
PlusStatus | GetFirstActiveTool (vtkPlusDataSource *&aTool) const |
PlusStatus | GetFirstOutputChannel (vtkPlusChannel *&aChannel) |
PlusStatus | GetFirstVideoSource (vtkPlusDataSource *&anImage) |
virtual unsigned long | GetFrameNumber () const |
virtual double | GetFrameTimeStamp () const |
virtual PlusStatus | GetImage (const std::string &requestedImageId, std::string &assignedImageId, const std::string &imageReferencFrameName, vtkImageData *imageData, vtkMatrix4x4 *ijkToReferenceTransform) |
virtual PlusStatus | GetImageMetaData (igsioCommon::ImageMetaDataList &imageMetaDataItems) |
virtual US_IMAGE_TYPE | GetImageType (vtkPlusChannel &aChannel) |
PlusStatus | GetInputDevices (std::vector< vtkPlusDevice * > &outDeviceList) const |
PlusStatus | GetInputDevicesRecursive (std::vector< vtkPlusDevice * > &outDeviceList) const |
virtual PlusStatus | GetInputFrameSize (vtkPlusChannel &aChannel, unsigned int &x, unsigned int &y, unsigned int &z) const |
virtual PlusStatus | GetInputFrameSize (vtkPlusChannel &aChannel, FrameSizeType &dim) const |
double | GetInternalUpdateRate () const |
virtual double | GetLocalTimeOffsetSec () const |
double | GetMissingInputGracePeriodSec () const |
virtual int | GetNumberOfFieldDataSources () const |
virtual int | GetNumberOfTools () const |
virtual int | GetNumberOfVideoSources () const |
PlusStatus | GetOutputChannelByName (vtkPlusChannel *&aChannel, const char *aChannelId) |
PlusStatus | GetOutputChannelByName (vtkPlusChannel *&aChannel, const std::string &aChannelId) |
ChannelContainerConstIterator | GetOutputChannelsEnd () const |
ChannelContainerIterator | GetOutputChannelsEnd () |
ChannelContainerConstIterator | GetOutputChannelsStart () const |
ChannelContainerIterator | GetOutputChannelsStart () |
virtual PlusStatus | GetOutputFrameSize (vtkPlusChannel &aChannel, unsigned int &x, unsigned int &y, unsigned int &z) const |
virtual PlusStatus | GetOutputFrameSize (vtkPlusChannel &aChannel, FrameSizeType &dim) const |
virtual igsioCommon::VTKScalarPixelType | GetPixelType (vtkPlusChannel &aChannel) |
virtual double | GetStartTime () |
virtual double | GetTimestampClosestToDesired () |
PlusStatus | GetTool (const char *aToolSourceId, vtkPlusDataSource *&aTool) const |
PlusStatus | GetTool (const std::string &aToolSourceId, vtkPlusDataSource *&aTool) const |
PlusStatus | GetToolByPortName (const char *aPortName, vtkPlusDataSource *&aSource) |
PlusStatus | GetToolByPortName (const std::string &aPortName, vtkPlusDataSource *&aSource) |
DataSourceContainerConstIterator | GetToolIteratorBegin () const |
DataSourceContainerConstIterator | GetToolIteratorEnd () const |
std::string | GetToolReferenceFrameName () const |
virtual int | GetUpdateWithDesiredTimestamp () |
PlusStatus | GetVideoSource (const char *aSourceId, vtkPlusDataSource *&aVideoSource) |
PlusStatus | GetVideoSourceByIndex (const unsigned int index, vtkPlusDataSource *&aVideoSource) |
DataSourceContainerConstIterator | GetVideoSourceIteratorBegin () const |
DataSourceContainerConstIterator | GetVideoSourceIteratorEnd () const |
std::vector< vtkPlusDataSource * > | GetVideoSources () const |
PlusStatus | GetVideoSourcesByPortName (const char *aPortName, std::vector< vtkPlusDataSource * > &sources) |
PlusStatus | GetVideoSourcesByPortName (const std::string &aPortName, std::vector< vtkPlusDataSource * > &sources) |
virtual bool | IsConnected () const |
virtual bool | IsRecording () const |
virtual bool | IsResettable () |
virtual bool | IsVirtual () const |
virtual int | OutputChannelCount () const |
virtual PlusStatus | Probe () |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual int | RequestInformation (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual PlusStatus | Reset () |
virtual PlusStatus | SendText (const std::string &textToSend, std::string *textReceived=NULL) |
PlusStatus | SetAcquisitionRate (double aRate) |
virtual PlusStatus | SetBufferSize (vtkPlusChannel &aChannel, int FrameBufferSize, const std::string &aSourceId=std::string("")) |
virtual void | SetDataCollector (vtkPlusDataCollector *_arg) |
virtual void | SetDesiredTimestamp (double) |
void | SetDeviceId (const std::string &id) |
void | SetFieldDataSourcesBufferSize (int aBufferSize) |
virtual PlusStatus | SetImageType (vtkPlusChannel &aChannel, US_IMAGE_TYPE imageType) |
virtual PlusStatus | SetInputFrameSize (vtkPlusDataSource &aSource, unsigned int x, unsigned int y, unsigned int z) |
virtual void | SetLocalTimeOffsetSec (double aTimeOffsetSec) |
virtual void | SetMissingInputGracePeriodSec (double) |
virtual PlusStatus | SetPixelType (vtkPlusChannel &aChannel, igsioCommon::VTKScalarPixelType pixelType) |
virtual void | SetStartTime (double startTime) |
void | SetToolReferenceFrameName (const std::string &frameName) |
void | SetToolsBufferSize (int aBufferSize) |
virtual void | SetUpdateWithDesiredTimestamp (int) |
virtual PlusStatus | StartRecording () |
virtual PlusStatus | StopRecording () |
virtual void | UpdateWithDesiredTimestampOff () |
virtual void | UpdateWithDesiredTimestampOn () |
virtual PlusStatus | WriteToolsToSequenceFile (const std::string &filename, bool useCompression=false) |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkPlusIntersonVideoSource * | New () |
static vtkPlusIntersonVideoSource * | SafeDownCast (vtkObject *o) |
Static Public Member Functions inherited from vtkPlusUsDevice | |
static int | IsTypeOf (const char *type) |
static vtkPlusUsDevice * | New () |
static vtkPlusUsDevice * | SafeDownCast (vtkObject *o) |
Static Public Member Functions inherited from vtkPlusDevice | |
static PlusStatus | GetToolReferenceFrameFromTrackedFrame (igsioTrackedFrame &aFrame, std::string &aToolReferenceFrameName) |
static int | IsTypeOf (const char *type) |
static vtkPlusDevice * | New () |
static vtkPlusDevice * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
PlusStatus | FreezeDevice (bool freeze) |
PlusStatus | GetFullIniFilePath (std::string &fullPath) |
PlusStatus | GetProbeAllowedModes (std::vector< std::pair< double, double > > &allowedModes) |
PlusStatus | GetProbeNameDevice (std::string &probeName) |
PlusStatus | GetSampleFrequencyDevice (double &aFreq) |
PlusStatus | GetSoundVelocityDevice (float &aVel) |
virtual PlusStatus | InternalConnect () |
virtual PlusStatus | InternalDisconnect () |
virtual PlusStatus | InternalStartRecording () |
virtual PlusStatus | InternalStopRecording () |
PlusStatus | InternalUpdate () |
PlusStatus | SetDepthMmDevice (double depthMm) |
PlusStatus | SetFrequencyMhzDevice (float aFreq) |
PlusStatus | SetLookupTableDevice (double intensity, double contrast) |
PlusStatus | SetSoundVelocityDevice (double velocity) |
PlusStatus | SetTimeGainCompensationPercentDevice (double gainPercent[3]) |
PlusStatus | SetWindowDepthDevice (int height) |
PlusStatus | SetZoomFactorDevice (float zoomFactor) |
vtkPlusIntersonVideoSource () | |
PlusStatus | WaitForFrame () |
~vtkPlusIntersonVideoSource () | |
Protected Member Functions inherited from vtkPlusUsDevice | |
void | CalculateImageToTransducer (igsioFieldMapType &customFields) |
vtkPlusUsDevice () | |
virtual | ~vtkPlusUsDevice () |
Protected Member Functions inherited from vtkPlusDevice | |
PlusStatus | EnsureUniqueDataSourceId (const std::string &aSourceId) |
vtkXMLDataElement * | FindInputChannelElement (vtkXMLDataElement *rootXMLElement, const char *aChannelId) |
vtkXMLDataElement * | FindOutputChannelElement (vtkXMLDataElement *rootXMLElement, const char *aChannelId) |
vtkXMLDataElement * | FindThisDeviceElement (vtkXMLDataElement *rootXMLElement) |
virtual vtkPlusDataCollector * | GetDataCollector () |
double | GetRecordingStartTime () const |
bool | GetStartThreadForInternalUpdates () const |
bool | HasGracePeriodExpired () |
virtual void | InternalWriteInputChannels (vtkXMLDataElement *rootXMLElement) |
virtual void | InternalWriteOutputChannels (vtkXMLDataElement *rootXMLElement) |
virtual void | SetCorrectlyConfigured (bool) |
virtual void | SetRecordingStartTime (double) |
virtual void | SetStartThreadForInternalUpdates (bool) |
virtual PlusStatus | ToolTimeStampedUpdate (const std::string &aToolSourceId, vtkMatrix4x4 *matrix, ToolStatus status, unsigned long frameNumber, double unfilteredtimestamp, const igsioFieldMapType *customFields=NULL) |
virtual PlusStatus | ToolTimeStampedUpdateWithoutFiltering (const std::string &aToolSourceId, vtkMatrix4x4 *matrix, ToolStatus status, double unfilteredtimestamp, double filteredtimestamp, const igsioFieldMapType *customFields=NULL) |
vtkPlusDevice () | |
virtual | ~vtkPlusDevice () |
Additional Inherited Members | |
Public Attributes inherited from vtkPlusDevice | |
double | InternalUpdateRate |
vtkIGSIORecursiveCriticalSection * | UpdateMutex |
vtkTimeStamp | UpdateTime |
Static Public Attributes inherited from vtkPlusDevice | |
static const std::string | BMODE_PORT_NAME = "B" |
static const std::string | PARAMETER_XML_ELEMENT_TAG = "Parameter" |
static const std::string | PARAMETERS_XML_ELEMENT_TAG = "Parameters" |
static const std::string | RFMODE_PORT_NAME = "Rf" |
Static Protected Member Functions inherited from vtkPlusDevice | |
static void * | vtkDataCaptureThread (vtkMultiThreader::ThreadInfo *data) |
Static Protected Attributes inherited from vtkPlusDevice | |
static const int | VIRTUAL_DEVICE_FRAME_RATE = 50 |
Class for acquiring ultrasound images from Interson USB ultrasound systems.
Requires the PLUS_USE_INTERSON option in CMake. Requires Interson iSDK2012 (SDK provided by Interson).
Definition at line 22 of file vtkPlusIntersonVideoSource.h.
Definition at line 26 of file vtkPlusIntersonVideoSource.h.
|
protected |
Constructor
Definition at line 235 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Destructor
Definition at line 265 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Definition at line 729 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Reimplemented from vtkPlusUsDevice.
bool vtkPlusIntersonVideoSource::GetEnableProbeButtonMonitoring | ( | ) | const |
Definition at line 909 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
|
protected |
Each probe has a defined set of allowed modes. These modes are combinations of pulse frequency and sample rate that yield acceptable results with that particular probe. While there is no enforcement to use only these modes, one should understand the implications on image quality if one of the allowed modes is not selected.
Definition at line 1070 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Get probe name from the device
Definition at line 1268 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Definition at line 764 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Hardware device SDK version. This method should be overridden in subclasses.
Reimplemented from vtkPlusDevice.
Definition at line 756 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::GetSoundVelocity | ( | double & | aVel | ) |
Get the probe sound velocity
Definition at line 790 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Definition at line 777 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Set changed imaging parameter to device
Reimplemented from vtkPlusUsDevice.
Definition at line 1306 of file vtkPlusIntersonVideoSource.cxx.
|
protectedvirtual |
Device-specific connect
Reimplemented from vtkPlusDevice.
Definition at line 298 of file vtkPlusIntersonVideoSource.cxx.
|
protectedvirtual |
Device-specific disconnect
Reimplemented from vtkPlusDevice.
Definition at line 477 of file vtkPlusIntersonVideoSource.cxx.
|
protectedvirtual |
Device-specific recording start
Reimplemented from vtkPlusDevice.
Definition at line 498 of file vtkPlusIntersonVideoSource.cxx.
|
protectedvirtual |
Device-specific recording stop
Reimplemented from vtkPlusDevice.
Definition at line 505 of file vtkPlusIntersonVideoSource.cxx.
|
protectedvirtual |
The internal function which actually does the grab.
Reimplemented from vtkPlusDevice.
Definition at line 548 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Reimplemented from vtkPlusUsDevice.
|
inlinevirtual |
Is this device a tracker
Reimplemented from vtkPlusDevice.
Definition at line 29 of file vtkPlusIntersonVideoSource.h.
|
static |
|
static |
|
virtual |
Verify the device is correctly configured
Reimplemented from vtkPlusDevice.
Definition at line 711 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Reimplemented from vtkPlusUsDevice.
Definition at line 277 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Read configuration from xml data
Reimplemented from vtkPlusUsDevice.
Definition at line 626 of file vtkPlusIntersonVideoSource.cxx.
|
static |
PlusStatus vtkPlusIntersonVideoSource::SetContrast | ( | int | value | ) |
Set the contrast
Definition at line 963 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetDepthMm | ( | double | depthMm | ) |
Set the probe depth in mm
Definition at line 896 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Set the probe depth in mm
Definition at line 815 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetDynRangeDb | ( | double | value | ) |
Set the dynamic range
Definition at line 970 of file vtkPlusIntersonVideoSource.cxx.
void vtkPlusIntersonVideoSource::SetEnableProbeButtonMonitoring | ( | bool | _arg | ) |
Definition at line 915 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetFrequencyMhz | ( | float | freq | ) |
Set the frequency in Mhz
Definition at line 942 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Set the desired probe frequency in Hz. The resulting probe speed will be approximately the value specified
Definition at line 882 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetImageSize | ( | int | imageSize[2] | ) |
Set the image size
Definition at line 902 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetIntensity | ( | int | value | ) |
Set the intensity
Definition at line 956 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Set the lookup table from intensity and contrast
Definition at line 1059 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Set the parameters in bulk
Reimplemented from vtkPlusUsDevice.
Definition at line 1294 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetSectorPercent | ( | double | value | ) |
Set the sector percent
Definition at line 949 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetSoundVelocity | ( | double | value | ) |
Set the sound velocity
Definition at line 935 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Set the sound velocity in the device
Definition at line 921 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetTimeGainCompensationPercent | ( | double | gainPercent[3] | ) |
Set the gain in percent
Definition at line 977 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Set the gain in percent in the device
Definition at line 992 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Represents the depth, in pixels, the display window will be. This defaults to 512 pixels for newly initialized probes.
Definition at line 803 of file vtkPlusIntersonVideoSource.cxx.
PlusStatus vtkPlusIntersonVideoSource::SetZoomFactor | ( | float | zoomFactor | ) |
Set the zoom factor.
Definition at line 1038 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Set the zoom factor in the device.
Definition at line 1045 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Definition at line 512 of file vtkPlusIntersonVideoSource.cxx.
|
virtual |
Write configuration to xml data
Reimplemented from vtkPlusUsDevice.
Definition at line 690 of file vtkPlusIntersonVideoSource.cxx.
|
protected |
Definition at line 128 of file vtkPlusIntersonVideoSource.h.