AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
NTV2SegmentedXferInfo Class Reference

Describes a segmented data transfer (copy or move) from a source memory location to a destination location, with independent pitch and direction attributes for source and destination. The simplest transfer, of course, has a single segment. More...

#include <ntv2publicinterface.h>

Public Member Functions

 NTV2SegmentedXferInfo ()
 Constructs me as empty/invalid. More...
 
Inquiry
ULWord getSourceEndOffset (void) const
 
ULWord getDestEndOffset (void) const
 
std::ostream & Print (std::ostream &inStrm, const bool inDumpSegments=false) const
 Writes a human-readable description of me into a given output stream. More...
 
std::string getSourceCode (const bool inInclDecl=true) const
 
bool containsElementAtOffset (const ULWord inElementOffset) const
 
bool operator!= (const NTV2SegmentedXferInfo &inRHS) const
 
bool operator== (const NTV2SegmentedXferInfo &inRHS) const
 
Changing
NTV2SegmentedXferInforeset (void)
 Resets me to an invalid (all zero) state. More...
 
NTV2SegmentedXferInfosetSegmentInfo (const ULWord inNumSegs, const ULWord inSegLength)
 Sets both my segment count and length. More...
 
NTV2SegmentedXferInfosetSegmentCount (const ULWord inNumSegments)
 Sets my segment count. More...
 
NTV2SegmentedXferInfosetSegmentLength (const ULWord inNumElements)
 Sets my segment length. More...
 
NTV2SegmentedXferInfosetSourceInfo (const ULWord inOffset, const ULWord inPitch)
 A convenience function that sets both my source offset and pitch. More...
 
NTV2SegmentedXferInfosetSourceOffset (const ULWord inOffset)
 Sets my source offset. More...
 
NTV2SegmentedXferInfosetSourcePitch (const ULWord inPitch)
 Sets my source pitch. More...
 
NTV2SegmentedXferInfosetSourceDirection (const bool inTopDown)
 Sets the scan direction for the source. More...
 
NTV2SegmentedXferInfosetSourceFlipped (const bool inFlipped=Direction_Flipped)
 Sets the scan direction for the source. More...
 
NTV2SegmentedXferInfosetDestInfo (const ULWord inOffset, const ULWord inPitch)
 A convenience function that sets both my destination offset and pitch. More...
 
NTV2SegmentedXferInfosetDestOffset (const ULWord inOffset)
 Sets my destination offset. More...
 
NTV2SegmentedXferInfosetDestPitch (const ULWord inPitch)
 Sets my destination pitch. More...
 
NTV2SegmentedXferInfosetDestDirection (const bool inTopDown)
 Sets the scan direction for the destination. More...
 
NTV2SegmentedXferInfosetDestFlipped (const bool inFlipped=Direction_Flipped)
 Sets the scan direction for the destination. More...
 
NTV2SegmentedXferInfosetElementLength (const ULWord inBytesPerElement)
 Sets my element length. More...
 
NTV2SegmentedXferInfoswapSourceAndDestination (void)
 Swaps my source and destination offsets, pitches and scan directions. More...
 

Static Public Attributes

Scan Direction Constants
static bool Direction_TopToBottom
 Use this in setDestDirection or setSourceDirection for top-to-bottom scanning. More...
 
static bool Direction_TopDown
 Use this in setDestDirection or setSourceDirection for top-to-bottom scanning. More...
 
static bool Direction_Normal
 Use this in setDestDirection or setSourceDirection for top-to-bottom scanning. More...
 
static bool Direction_BottomToTop
 Use this in setDestDirection or setSourceDirection for bottom-to-top scanning. More...
 
static bool Direction_BottomUp
 Use this in setDestDirection or setSourceDirection for bottom-to-top scanning. More...
 
static bool Direction_Flipped
 Use this in setDestDirection or setSourceDirection for bottom-to-top scanning. More...
 

Detailed Description

Describes a segmented data transfer (copy or move) from a source memory location to a destination location, with independent pitch and direction attributes for source and destination. The simplest transfer, of course, has a single segment.

A segmented transfer is described by these attributes:

  • A starting source and destination offset, in elements;
  • A source and destination pitch (span between segments, in elements);
  • A segment length, in elements;
  • A segment count. The element size defaults to 1 byte per element, must be a power-of-2, and cannot be larger than 8 bytes. There are also some optional attributes:
  • Optional "source vertical flip" flag that if set indicates that during the transfer, the source is read bottom-to-top. Defaults to normal "top-to-bottom" operation.
  • Optional "destination vertical flip" flag that if set indicates that during the transfer, the destination is written bottom-to-top. Defaults to normal operation.

Definition at line 5728 of file ntv2publicinterface.h.

Constructor & Destructor Documentation

◆ NTV2SegmentedXferInfo()

NTV2SegmentedXferInfo::NTV2SegmentedXferInfo ( )
inline

Constructs me as empty/invalid.

Definition at line 5733 of file ntv2publicinterface.h.

Member Function Documentation

◆ containsElementAtOffset()

bool NTV2SegmentedXferInfo::containsElementAtOffset ( const ULWord  inElementOffset) const
Parameters
[in]inElementOffsetSpecifies the element offset of interest.
Returns
True if the element is contained within me.

Definition at line 1446 of file ntv2publicinterface.cpp.

◆ getDestEndOffset()

ULWord NTV2SegmentedXferInfo::getDestEndOffset ( void  ) const
inline
Returns
The offset to the first element immediately past the last destination segment.

Definition at line 5776 of file ntv2publicinterface.h.

◆ getSourceCode()

string NTV2SegmentedXferInfo::getSourceCode ( const bool  inInclDecl = true) const
Parameters
[in]inInclDeclIf true, the default, include a declaration statement in the source code.
Returns
A string containing C++ source code that, when compiled, will result in a NTV2SegmentedXferInfo instance that will perfectly match me.

Definition at line 1416 of file ntv2publicinterface.cpp.

◆ getSourceEndOffset()

ULWord NTV2SegmentedXferInfo::getSourceEndOffset ( void  ) const
inline
Returns
The offset to the first element immediately past the last source segment.

Definition at line 5770 of file ntv2publicinterface.h.

◆ operator!=()

bool NTV2SegmentedXferInfo::operator!= ( const NTV2SegmentedXferInfo inRHS) const
Parameters
[in]inRHSSpecifies the NTV2SegmentedXferInfo to compare with me.
Returns
True if not equal.
Note
The element sizes must match (though this ought to be compensated for in the comparison).

Definition at line 1469 of file ntv2publicinterface.cpp.

◆ operator==()

bool NTV2SegmentedXferInfo::operator== ( const NTV2SegmentedXferInfo inRHS) const
inline
Parameters
[in]inRHSSpecifies the NTV2SegmentedXferInfo to compare with me.
Returns
True if equal.
Note
The element sizes must match (though this ought to be compensated for in the comparison).

Definition at line 5812 of file ntv2publicinterface.h.

◆ Print()

ostream & NTV2SegmentedXferInfo::Print ( std::ostream &  inStrm,
const bool  inDumpSegments = false 
) const

Writes a human-readable description of me into a given output stream.

Parameters
inStrmA non-constant reference to the output stream that will receive the description.
[in]inDumpSegmentsIf true, also dumps a description of each segment. Defaults to false.
Returns
A reference to the output stream.

Definition at line 1391 of file ntv2publicinterface.cpp.

◆ reset()

NTV2SegmentedXferInfo & NTV2SegmentedXferInfo::reset ( void  )

Resets me to an invalid (all zero) state.

Definition at line 1489 of file ntv2publicinterface.cpp.

◆ setDestDirection()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestDirection ( const bool  inTopDown)
inline

Sets the scan direction for the destination.

Parameters
[in]inTopDownSpecify Direction_TopToBottom, Direction_TopDown or Direction_Normal to traverse the destination segments top-to-bottom; otherwise specify Direction_BottomToTop, Direction_BottomUp or Direction_Flipped for bottom-to-top.
Returns
A reference to me.

Definition at line 5921 of file ntv2publicinterface.h.

◆ setDestFlipped()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestFlipped ( const bool  inFlipped = Direction_Flipped)
inline

Sets the scan direction for the destination.

Parameters
[in]inFlippedOptionally specifies if my scan direction is flipped (i.e. bottom-to-top) instead of top-to-bottom. Defaults to Direction_Flipped (i.e. bottom-to-top).
Returns
A reference to me.

Definition at line 5933 of file ntv2publicinterface.h.

◆ setDestInfo()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestInfo ( const ULWord  inOffset,
const ULWord  inPitch 
)
inline

A convenience function that sets both my destination offset and pitch.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first destination segment.
[in]inPitchThe new number of elements between each destination row.
Returns
A reference to me.

Definition at line 5898 of file ntv2publicinterface.h.

◆ setDestOffset()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestOffset ( const ULWord  inOffset)
inline

Sets my destination offset.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first destination segment.
Returns
A reference to me.

Definition at line 5906 of file ntv2publicinterface.h.

◆ setDestPitch()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestPitch ( const ULWord  inPitch)
inline

Sets my destination pitch.

Parameters
[in]inPitchThe new number of elements between each destination row.
Returns
A reference to me.

Definition at line 5913 of file ntv2publicinterface.h.

◆ setElementLength()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setElementLength ( const ULWord  inBytesPerElement)
inline

Sets my element length.

Parameters
[in]inBytesPerElementThe new element size, in bytes. Must be a power of two (1, 2, 4, or 8).
Note
This function does not transform any of my offsets, pitches or lengths.
Returns
A reference to me.

Definition at line 5941 of file ntv2publicinterface.h.

◆ setSegmentCount()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSegmentCount ( const ULWord  inNumSegments)
inline

Sets my segment count.

Parameters
[in]inNumSegmentsMy new segment count.
Returns
A reference to me.

Definition at line 5836 of file ntv2publicinterface.h.

◆ setSegmentInfo()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSegmentInfo ( const ULWord  inNumSegs,
const ULWord  inSegLength 
)
inline

Sets both my segment count and length.

Parameters
[in]inNumSegsMy new segment count.
[in]inSegLengthMy new segment length, in elements.
Returns
A reference to me.

Definition at line 5828 of file ntv2publicinterface.h.

◆ setSegmentLength()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSegmentLength ( const ULWord  inNumElements)
inline

Sets my segment length.

Parameters
[in]inNumElementsMy new segment length, in elements.
Returns
A reference to me.

Definition at line 5844 of file ntv2publicinterface.h.

◆ setSourceDirection()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceDirection ( const bool  inTopDown)
inline

Sets the scan direction for the source.

Parameters
[in]inTopDownSpecify Direction_TopToBottom, Direction_TopDown or Direction_Normal to traverse the source segments top-to-bottom; otherwise specify Direction_BottomToTop, Direction_BottomUp or Direction_Flipped for bottom-to-top.
Returns
A reference to me.

Definition at line 5878 of file ntv2publicinterface.h.

◆ setSourceFlipped()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceFlipped ( const bool  inFlipped = Direction_Flipped)
inline

Sets the scan direction for the source.

Parameters
[in]inFlippedOptionally specifies if my scan direction is flipped (i.e. bottom-to-top) instead of top-to-bottom. Defaults to Direction_Flipped (i.e. bottom-to-top).
Returns
A reference to me.

Definition at line 5890 of file ntv2publicinterface.h.

◆ setSourceInfo()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceInfo ( const ULWord  inOffset,
const ULWord  inPitch 
)
inline

A convenience function that sets both my source offset and pitch.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first source segment.
[in]inPitchThe new number of elements between each source row.
Returns
A reference to me.

Definition at line 5853 of file ntv2publicinterface.h.

◆ setSourceOffset()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceOffset ( const ULWord  inOffset)
inline

Sets my source offset.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first source segment.
Returns
A reference to me.

Definition at line 5861 of file ntv2publicinterface.h.

◆ setSourcePitch()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourcePitch ( const ULWord  inPitch)
inline

Sets my source pitch.

Parameters
[in]inPitchThe new number of elements between each source row.
Returns
A reference to me.

Definition at line 5869 of file ntv2publicinterface.h.

◆ swapSourceAndDestination()

NTV2SegmentedXferInfo & NTV2SegmentedXferInfo::swapSourceAndDestination ( void  )

Swaps my source and destination offsets, pitches and scan directions.

Returns
A reference to me.

Definition at line 1502 of file ntv2publicinterface.cpp.

Member Data Documentation

◆ Direction_BottomToTop

bool NTV2SegmentedXferInfo::Direction_BottomToTop
static

Use this in setDestDirection or setSourceDirection for bottom-to-top scanning.

Definition at line 5967 of file ntv2publicinterface.h.

◆ Direction_BottomUp

bool NTV2SegmentedXferInfo::Direction_BottomUp
static

Use this in setDestDirection or setSourceDirection for bottom-to-top scanning.

Definition at line 5968 of file ntv2publicinterface.h.

◆ Direction_Flipped

bool NTV2SegmentedXferInfo::Direction_Flipped
static

Use this in setDestDirection or setSourceDirection for bottom-to-top scanning.

Definition at line 5969 of file ntv2publicinterface.h.

◆ Direction_Normal

bool NTV2SegmentedXferInfo::Direction_Normal
static

Use this in setDestDirection or setSourceDirection for top-to-bottom scanning.

Definition at line 5966 of file ntv2publicinterface.h.

◆ Direction_TopDown

bool NTV2SegmentedXferInfo::Direction_TopDown
static

Use this in setDestDirection or setSourceDirection for top-to-bottom scanning.

Definition at line 5965 of file ntv2publicinterface.h.

◆ Direction_TopToBottom

bool NTV2SegmentedXferInfo::Direction_TopToBottom
static

Use this in setDestDirection or setSourceDirection for top-to-bottom scanning.

Definition at line 5964 of file ntv2publicinterface.h.


The documentation for this class was generated from the following files: