AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
CNTV2DriverInterface Class Reference

I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ultimately derived). More...

#include <ntv2driverinterface.h>

Inheritance diagram for CNTV2DriverInterface:
[legend]
Collaboration diagram for CNTV2DriverInterface:
[legend]

Public Member Functions

virtual ULWord GetNumFrameBuffers (void) const
 
virtual ULWord GetFrameBufferSize (void) const
 
virtual bool DriverGetBitFileInformation (BITFILE_INFO_STRUCT &outBitFileInfo, const NTV2BitFileType inBitFileType=NTV2_VideoProcBitFile)
 Answers with the currently-installed bitfile information. More...
 
virtual bool DriverGetBuildInformation (BUILD_INFO_STRUCT &outBuildInfo)
 Answers with the driver's build information. More...
 
virtual bool GetPackageInformation (PACKAGE_INFO_STRUCT &outPkgInfo)
 Answers with the IP device's package information. More...
 
virtual bool BitstreamWrite (const NTV2Buffer &inBuffer, const bool inFragment, const bool inSwap)
 
virtual bool BitstreamReset (const bool inConfiguration, const bool inInterface)
 
virtual bool BitstreamStatus (NTV2ULWordVector &outRegValues)
 
virtual bool BitstreamLoad (const bool inSuspend, const bool inResume)
 
virtual bool StreamChannelOps (const NTV2Channel inChannel, ULWord flags, NTV2StreamChannel &status)
 
virtual bool StreamBufferOps (const NTV2Channel inChannel, NTV2Buffer &inBuffer, ULWord64 bufferCookie, ULWord flags, NTV2StreamBuffer &status)
 
virtual bool ReadRP188Registers (const NTV2Channel inChannel, RP188_STRUCT *pRP188Data)
 
virtual std::string GetDescription (void) const
 
virtual NTV2Dictionary ConnectParams (void) const
 
virtual bool SuspendAudio (void)
 
virtual bool ResumeAudio (const ULWord inFBSize)
 
virtual bool ReadRegisterMulti (const ULWord numRegs, ULWord *pOutWhichRegFailed, NTV2RegInfo aRegs[])
 
virtual Word SleepMs (const LWord msec)
 
Inquiry
virtual NTV2DeviceID GetDeviceID (void)
 
virtual bool IsDeviceReady (const bool inCheckValid=(0))
 
virtual bool IsMBSystemValid (void)
 
virtual bool IsMBSystemReady (void)
 
Open/Close, Connect/Disconnect
virtual bool Open (const UWord inDeviceIndex)
 Opens a local/physical AJA device so it can be monitored/controlled. More...
 
virtual bool Open (const std::string &inURLSpec)
 Opens the specified local, remote or software device. More...
 
virtual bool Close (void)
 Closes me, releasing host resources that may have been allocated in a previous Open call. More...
 
Register Read/Write
virtual bool WriteRegister (const ULWord inRegNum, const ULWord inValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
 Updates or replaces all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device. Using the optional mask and shift parameters, it's possible to set or clear any number of specific bits in a real register without altering any of the register's other bits. More...
 
virtual bool ReadRegister (const ULWord inRegNum, ULWord &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
 Reads all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device. Using the optional mask and shift parameters, it's possible to read any number of specific bits in a register while ignoring the register's other bits. More...
 
template<typename T >
bool ReadRegister (const ULWord inRegNum, T &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
 This template function reads all or part of the 32-bit contents of a specific register (real or virtual) from the AJA device, and if successful, returns its value automatically casted to the scalar type of the "outValue" parameter. More...
 
virtual bool ReadRegisters (NTV2RegisterReads &inOutValues)
 Reads the register(s) specified by the given NTV2RegInfo sequence. More...
 
virtual bool RestoreHardwareProcampRegisters (void)
 
DMA Transfer
virtual bool DmaTransfer (const NTV2DMAEngine inDMAEngine, const bool inIsRead, const ULWord inFrameNumber, ULWord *pFrameBuffer, const ULWord inCardOffsetBytes, const ULWord inTotalByteCount, const bool inSynchronous=(!(0)))
 Transfers data between the AJA device and the host. This function will block and not return to the caller until the transfer has finished or failed. More...
 
virtual bool DmaTransfer (const NTV2DMAEngine inDMAEngine, const bool inIsRead, const ULWord inFrameNumber, ULWord *pFrameBuffer, const ULWord inCardOffsetBytes, const ULWord inTotalByteCount, const ULWord inNumSegments, const ULWord inHostPitchPerSeg, const ULWord inCardPitchPerSeg, const bool inSynchronous=(!(0)))
 Transfers data in segments between the AJA device and the host. This function will block and not return to the caller until the transfer has finished or failed. More...
 
virtual bool DmaTransfer (const NTV2DMAEngine inDMAEngine, const NTV2Channel inDMAChannel, const bool inTarget, const ULWord inFrameNumber, const ULWord inCardOffsetBytes, const ULWord inByteCount, const ULWord inNumSegments, const ULWord inSegmentHostPitch, const ULWord inSegmentCardPitch, const PCHANNEL_P2P_STRUCT &inP2PData)
 
Interrupts
virtual bool ConfigureSubscription (const bool bSubscribe, const INTERRUPT_ENUMS inInterruptType, PULWord &outSubcriptionHdl)
 
virtual bool ConfigureInterrupt (const bool bEnable, const INTERRUPT_ENUMS eInterruptType)
 
virtual bool GetInterruptCount (const INTERRUPT_ENUMS eInterrupt, ULWord &outCount)
 Answers with the number of interrupts of the given type processed by the driver. More...
 
virtual bool WaitForInterrupt (const INTERRUPT_ENUMS eInterrupt, const ULWord timeOutMs=68)
 
virtual HANDLE GetInterruptEvent (const INTERRUPT_ENUMS eInterruptType)
 
virtual bool GetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, ULWord &outCount)
 Answers with the number of interrupt events that I successfully waited for. More...
 
virtual bool SetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, const ULWord inCount)
 Resets my interrupt event tally for the given interrupt type. (This is my count of the number of successful event waits.) More...
 
Control/Messaging
virtual bool AutoCirculate (AUTOCIRCULATE_DATA &pAutoCircData)
 Sends an AutoCirculate command to the NTV2 driver. More...
 
virtual bool NTV2Message (NTV2_HEADER *pInMessage)
 Sends a message to the NTV2 driver (the new, improved, preferred way). More...
 
virtual bool HevcSendMessage (HevcMessageHeader *pMessage)
 Sends an HEVC message to the NTV2 driver. More...
 
virtual bool ControlDriverDebugMessages (NTV2_DriverDebugMessageSet msgSet, bool enable)
 
Device Features
virtual bool IsSupported (const NTV2BoolParamID inParamID)
 
virtual ULWord GetNumSupported (const NTV2NumericParamID inParamID)
 
virtual ULWordSet GetSupportedItems (const NTV2EnumsID inEnumsID)
 
Device Ownership
virtual bool AcquireStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID)
 A reference-counted version of CNTV2DriverInterface::AcquireStreamForApplication useful for process groups. More...
 
virtual bool ReleaseStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID)
 A reference-counted version of CNTV2DriverInterface::ReleaseStreamForApplication useful for process groups. More...
 
virtual bool AcquireStreamForApplication (const ULWord inAppType, const int32_t inProcessID)
 Reserves exclusive use of the AJA device for a given process, preventing other processes on the host from acquiring it until subsequently released. More...
 
virtual bool ReleaseStreamForApplication (const ULWord inAppType, const int32_t inProcessID)
 Releases exclusive use of the AJA device for the given process, permitting other processes to acquire it. More...
 
virtual bool SetStreamingApplication (const ULWord inAppType, const int32_t inProcessID)
 Sets the four-CC type and process ID of the application that should "own" the AJA device (i.e. reserve it for exclusive use). More...
 
virtual bool GetStreamingApplication (ULWord &outAppType, int32_t &outProcessID)
 Answers with the four-CC type and process ID of the application that currently "owns" the AJA device (i.e. reserved it for exclusive use). More...
 
WriteRegister Profiling
virtual bool GetRecordedRegisterWrites (NTV2RegisterWrites &outRegWrites) const
 Answers with the recorded register writes. More...
 
virtual bool StartRecordRegisterWrites (const bool inSkipActualWrites=(0))
 Starts recording all WriteRegister calls. More...
 
virtual bool IsRecordingRegisterWrites (void) const
 
virtual bool StopRecordRegisterWrites (void)
 Stops recording all WriteRegister calls. More...
 
virtual bool PauseRecordRegisterWrites (void)
 Pauses recording WriteRegister calls. More...
 
virtual bool ResumeRecordRegisterWrites (void)
 Resumes recording WriteRegister calls (after a prior call to PauseRecordRegisterWrites). More...
 
virtual ULWord GetNumRecordedRegisterWrites (void) const
 

Static Public Member Functions

static NTV2StringList GetLegalSchemeNames (void)
 
static void SetShareMode (const bool inSharedMode)
 Specifies if subsequent Open calls should open the device in shared mode or not. More...
 
static bool GetShareMode (void)
 
static void SetOverlappedMode (const bool inOverlapMode)
 Specifies if the next Open call should try to open the device in overlapped mode or not. More...
 
static bool GetOverlappedMode (void)
 

Protected Types

typedef std::vector< ULWord_EventCounts
 
typedef std::vector< PULWord_EventHandles
 

Protected Member Functions

virtual bool OpenRemote (const std::string &inURLSpec)
 Peforms the housekeeping details of opening the specified local, remote or software device. More...
 
virtual bool CloseRemote (void)
 Releases host resources associated with the remote/special device connection. More...
 
virtual bool OpenLocalPhysical (const UWord inDeviceIndex)
 Opens the local/physical device connection. More...
 
virtual bool CloseLocalPhysical (void)
 Releases host resources associated with the local/physical device connection. More...
 
virtual bool ParseFlashHeader (BITFILE_INFO_STRUCT &outBitfileInfo)
 
virtual bool GetBoolParam (const ULWord inParamID, ULWord &outValue)
 
virtual bool GetNumericParam (const ULWord inParamID, ULWord &outValue)
 
virtual bool GetRegInfoForBoolParam (const NTV2BoolParamID inParamID, NTV2RegInfo &outRegInfo)
 Answers with the NTV2RegInfo of the register associated with the given boolean (i.e., "Can Do") device feature. More...
 
virtual bool GetRegInfoForNumericParam (const NTV2NumericParamID inParamID, NTV2RegInfo &outRegInfo)
 Answers with the NTV2RegInfo of the register associated with the given numeric (i.e., "Get Num") device feature. More...
 
virtual void BumpEventCount (const INTERRUPT_ENUMS eInterruptType)
 Atomically increments the event count tally for the given interrupt type. More...
 
virtual void FinishOpen (void)
 Initializes my member variables after a successful Open. More...
 
virtual bool ReadFlashULWord (const ULWord inAddress, ULWord &outValue, const ULWord inRetryCount=1000)
 

Protected Attributes

UWord _boardNumber
 My device index number. More...
 
NTV2DeviceID _boardID
 My cached device ID. More...
 
bool _boardOpened
 True if I'm open and connected to the device. More...
 
bool mRecordRegWrites
 True if recording; otherwise false when not recording. More...
 
bool mSkipRegWrites
 True if actual register writes are skipped while recording. More...
 
ULWord _programStatus
 
NTV2RPCAPI_pRPCAPI
 Points to remote or software device interface; otherwise NULL for local physical device. More...
 
_EventHandles mInterruptEventHandles
 For subscribing to each possible event, one for each interrupt type. More...
 
_EventCounts mEventCounts
 My event tallies, one for each interrupt type. Note that these. More...
 
NTV2RegisterWrites mRegWrites
 Stores WriteRegister data. More...
 
AJALock mRegWritesLock
 Guard mutex for mRegWrites. More...
 
ULWord_pFrameBaseAddress
 
ULWord_pRegisterBaseAddress
 
ULWord _pRegisterBaseAddressLength
 
ULWord_pXena2FlashBaseAddress
 
ULWord_pCh1FrameBaseAddress
 
ULWord_pCh2FrameBaseAddress
 
ULWord _ulNumFrameBuffers
 
ULWord _ulFrameBufferSize
 
ULWord _pciSlot
 

Construction, destruction, assignment

 CNTV2DriverInterface ()
 My default constructor. More...
 
virtual ~CNTV2DriverInterface ()
 My destructor. More...
 

Detailed Description

I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ultimately derived).

Definition at line 60 of file ntv2driverinterface.h.

Member Typedef Documentation

◆ _EventCounts

typedef std::vector<ULWord> CNTV2DriverInterface::_EventCounts
protected

Definition at line 672 of file ntv2driverinterface.h.

◆ _EventHandles

typedef std::vector<PULWord> CNTV2DriverInterface::_EventHandles
protected

Definition at line 673 of file ntv2driverinterface.h.

Constructor & Destructor Documentation

◆ CNTV2DriverInterface()

CNTV2DriverInterface::CNTV2DriverInterface ( )

My default constructor.

Definition at line 72 of file ntv2driverinterface.cpp.

◆ ~CNTV2DriverInterface()

CNTV2DriverInterface::~CNTV2DriverInterface ( )
virtual

My destructor.

Definition at line 114 of file ntv2driverinterface.cpp.

Member Function Documentation

◆ AcquireStreamForApplication()

bool CNTV2DriverInterface::AcquireStreamForApplication ( const ULWord  inAppType,
const int32_t  inProcessID 
)
virtual

Reserves exclusive use of the AJA device for a given process, preventing other processes on the host from acquiring it until subsequently released.

Returns
True if successful; otherwise false.
Parameters
[in]inAppTypeA 32-bit "four CC" value that helps identify the calling application that is requesting exclusive use of the device.
[in]inProcessIDSpecifies the OS-specific process identifier that uniquely identifies the running process on the host machine that is requesting exclusive use of the device (see AJAProcess::GetPid).

This method reserves exclusive use of the AJA device by the given running host process. The AJA device records both the "process ID" and "four CC". If another host process has already reserved the device, this function will fail.

Note
AJA recommends saving the device's NTV2EveryFrameTaskMode when this function is called, and restoring it after CNTV2DriverInterface::ReleaseStreamForApplication is called.
A call to CNTV2DriverInterface::AcquireStreamForApplication should always be balanced by a call to CNTV2DriverInterface::ReleaseStreamForApplication.
See also
CNTV2DriverInterface::ReleaseStreamForApplication, Sharing AJA Devices With Other Applications

Reimplemented in CNTV2MacDriverInterface.

Definition at line 1071 of file ntv2driverinterface.cpp.

◆ AcquireStreamForApplicationWithReference()

bool CNTV2DriverInterface::AcquireStreamForApplicationWithReference ( const ULWord  inAppType,
const int32_t  inProcessID 
)
virtual

A reference-counted version of CNTV2DriverInterface::AcquireStreamForApplication useful for process groups.

Returns
True if successful; otherwise false.
Parameters
[in]inAppTypeA 32-bit "four CC" value that helps identify the calling application that is requesting exclusive use of the device.
[in]inProcessIDSpecifies the OS-specific process identifier that uniquely identifies the running process on the host machine that is requesting exclusive use of the device (see AJAProcess::GetPid).

This method reserves exclusive use of the AJA device by the given running host process, recording both the "process ID" and 4-byte "application type" specified by the caller, and if already reserved for the given application, increments a reference counter. If a different host process has already reserved the device, the function will fail.

Note
Each call to CNTV2DriverInterface::AcquireStreamForApplicationWithReference should be balanced by the same number of calls to CNTV2DriverInterface::ReleaseStreamForApplicationWithReference.
See also
CNTV2DriverInterface::ReleaseStreamForApplicationWithReference, Sharing AJA Devices With Other Applications

Reimplemented in CNTV2MacDriverInterface.

Definition at line 1009 of file ntv2driverinterface.cpp.

◆ AutoCirculate()

bool CNTV2DriverInterface::AutoCirculate ( AUTOCIRCULATE_DATA pAutoCircData)
virtual

Sends an AutoCirculate command to the NTV2 driver.

Parameters
pAutoCircDataPoints to the AUTOCIRCULATE_DATA that contains the AutoCirculate API command and parameters.
Returns
True if successful; otherwise false.

Reimplemented in CNTV2MacDriverInterface, CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.

Definition at line 559 of file ntv2driverinterface.cpp.

◆ BitstreamLoad()

bool CNTV2DriverInterface::BitstreamLoad ( const bool  inSuspend,
const bool  inResume 
)
virtual

Definition at line 845 of file ntv2driverinterface.cpp.

◆ BitstreamReset()

bool CNTV2DriverInterface::BitstreamReset ( const bool  inConfiguration,
const bool  inInterface 
)
virtual

Definition at line 820 of file ntv2driverinterface.cpp.

◆ BitstreamStatus()

bool CNTV2DriverInterface::BitstreamStatus ( NTV2ULWordVector outRegValues)
virtual

Definition at line 829 of file ntv2driverinterface.cpp.

◆ BitstreamWrite()

bool CNTV2DriverInterface::BitstreamWrite ( const NTV2Buffer inBuffer,
const bool  inFragment,
const bool  inSwap 
)
virtual

Definition at line 802 of file ntv2driverinterface.cpp.

◆ BumpEventCount()

void CNTV2DriverInterface::BumpEventCount ( const INTERRUPT_ENUMS  eInterruptType)
protectedvirtual

Atomically increments the event count tally for the given interrupt type.

Parameters
[in]eInterruptTypeSpecifies the interrupt type of interest.

Definition at line 1276 of file ntv2driverinterface.cpp.

◆ Close()

bool CNTV2DriverInterface::Close ( void  )
virtual

Closes me, releasing host resources that may have been allocated in a previous Open call.

Returns
True if successful; otherwise false.

This function closes any onnection to an AJA device. Once closed, the device can no longer be queried or controlled by this instance.

Definition at line 199 of file ntv2driverinterface.cpp.

◆ CloseLocalPhysical()

bool CNTV2DriverInterface::CloseLocalPhysical ( void  )
protectedvirtual

Releases host resources associated with the local/physical device connection.

Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.

Definition at line 230 of file ntv2driverinterface.cpp.

◆ CloseRemote()

bool CNTV2DriverInterface::CloseRemote ( void  )
protectedvirtual

Releases host resources associated with the remote/special device connection.

Definition at line 303 of file ntv2driverinterface.cpp.

◆ ConfigureInterrupt()

bool CNTV2DriverInterface::ConfigureInterrupt ( const bool  bEnable,
const INTERRUPT_ENUMS  eInterruptType 
)
virtual

◆ ConfigureSubscription()

bool CNTV2DriverInterface::ConfigureSubscription ( const bool  bSubscribe,
const INTERRUPT_ENUMS  inInterruptType,
PULWord outSubcriptionHdl 
)
virtual

◆ ConnectParams()

NTV2Dictionary CNTV2DriverInterface::ConnectParams ( void  ) const
virtual
Returns
Const reference to my connection parameters dictionary (currently valid only for remote/software devices).

Definition at line 1155 of file ntv2driverinterface.cpp.

◆ ControlDriverDebugMessages()

bool CNTV2DriverInterface::ControlDriverDebugMessages ( NTV2_DriverDebugMessageSet  msgSet,
bool  enable 
)
virtual

◆ DmaTransfer() [1/3]

bool CNTV2DriverInterface::DmaTransfer ( const NTV2DMAEngine  inDMAEngine,
const bool  inIsRead,
const ULWord  inFrameNumber,
ULWord pFrameBuffer,
const ULWord  inCardOffsetBytes,
const ULWord  inTotalByteCount,
const bool  inSynchronous = (! (0) ) 
)
virtual

Transfers data between the AJA device and the host. This function will block and not return to the caller until the transfer has finished or failed.

Parameters
[in]inDMAEngineSpecifies the device DMA engine to use. Use NTV2_DMA_FIRST_AVAILABLE for most applications. (Use the NTV2DeviceGetNumDMAEngines function to determine how many are available.)
[in]inIsReadSpecifies the transfer direction. Use 'true' for reading (device-to-host). Use 'false' for writing (host-to-device).
[in]inFrameNumberSpecifies the zero-based frame number of the starting frame to be transferred to/from the device.
pFrameBufferSpecifies a valid, non-NULL address of the host buffer. If reading (device-to-host), this memory will be written into. If writing (host-to-device), this memory will be read from.
[in]inCardOffsetBytesSpecifies the byte offset into the device frame buffer where the data transfer will start.
[in]inTotalByteCountSpecifies the total number of bytes to be transferred.
[in]inSynchronousThis parameter is obsolete, and ignored.
Returns
True if successful; otherwise false.
Note
The host buffer must be at least inByteCount + inOffsetBytes in size; otherwise, host memory will be corrupted, or a bus error or other runtime exception may occur.

Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.

Definition at line 482 of file ntv2driverinterface.cpp.

◆ DmaTransfer() [2/3]

bool CNTV2DriverInterface::DmaTransfer ( const NTV2DMAEngine  inDMAEngine,
const bool  inIsRead,
const ULWord  inFrameNumber,
ULWord pFrameBuffer,
const ULWord  inCardOffsetBytes,
const ULWord  inTotalByteCount,
const ULWord  inNumSegments,
const ULWord  inHostPitchPerSeg,
const ULWord  inCardPitchPerSeg,
const bool  inSynchronous = (! (0) ) 
)
virtual

Transfers data in segments between the AJA device and the host. This function will block and not return to the caller until the transfer has finished or failed.

Parameters
[in]inDMAEngineSpecifies the device DMA engine to use. Use NTV2_DMA_FIRST_AVAILABLE for most applications. (Use the NTV2DeviceGetNumDMAEngines function to determine how many are available.)
[in]inIsReadSpecifies the transfer direction. Use 'true' for reading (device-to-host). Use 'false' for writing (host-to-device).
[in]inFrameNumberSpecifies the zero-based frame number of the starting frame to be transferred to/from the device.
pFrameBufferSpecifies a valid, non-NULL address of the host buffer. If reading (device-to-host), this memory will be written into. If writing (host-to-device), this memory will be read from.
[in]inCardOffsetBytesSpecifies the byte offset into the device frame buffer where the data transfer will start.
[in]inTotalByteCountSpecifies the total number of bytes to be transferred.
[in]inNumSegmentsSpecifies the number of segments to transfer. Note that this determines the number of bytes per segment (by dividing into inTotalByteCount).
[in]inHostPitchPerSegSpecifies the number of bytes to increment the host memory pointer after each segment is transferred.
[in]inCardPitchPerSegSpecifies the number of bytes to increment the on-device memory pointer after each segment is transferred.
[in]inSynchronousThis parameter is obsolete, and ignored.
Returns
True if successful; otherwise false.
Note
The host buffer must be at least inByteCount + inOffsetBytes in size; otherwise, host memory will be corrupted, or a bus error or other runtime exception may occur.

Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.

Definition at line 502 of file ntv2driverinterface.cpp.

◆ DmaTransfer() [3/3]

bool CNTV2DriverInterface::DmaTransfer ( const NTV2DMAEngine  inDMAEngine,
const NTV2Channel  inDMAChannel,
const bool  inTarget,
const ULWord  inFrameNumber,
const ULWord  inCardOffsetBytes,
const ULWord  inByteCount,
const ULWord  inNumSegments,
const ULWord  inSegmentHostPitch,
const ULWord  inSegmentCardPitch,
const PCHANNEL_P2P_STRUCT inP2PData 
)
virtual

◆ DriverGetBitFileInformation()

bool CNTV2DriverInterface::DriverGetBitFileInformation ( BITFILE_INFO_STRUCT outBitFileInfo,
const NTV2BitFileType  inBitFileType = NTV2_VideoProcBitFile 
)
virtual

Answers with the currently-installed bitfile information.

Parameters
[out]outBitFileInfoReceives the bitfile info.
[in]inBitFileTypeOptionally specifies the bitfile type of interest. Defaults to NTV2_VideoProcBitFile.
Returns
True if successful; otherwise false.

Reimplemented in CNTV2WinDriverInterface.

Definition at line 597 of file ntv2driverinterface.cpp.

◆ DriverGetBuildInformation()

bool CNTV2DriverInterface::DriverGetBuildInformation ( BUILD_INFO_STRUCT outBuildInfo)
virtual

Answers with the driver's build information.

Parameters
[out]outBuildInfoReceives the build information.
Returns
True if successful; otherwise false.

Definition at line 796 of file ntv2driverinterface.cpp.

◆ FinishOpen()

void CNTV2DriverInterface::FinishOpen ( void  )
protectedvirtual

Initializes my member variables after a successful Open.

Definition at line 880 of file ntv2driverinterface.cpp.

◆ GetBoolParam()

bool CNTV2DriverInterface::GetBoolParam ( const ULWord  inParamID,
ULWord outValue 
)
protectedvirtual

Definition at line 1526 of file ntv2driverinterface.cpp.

◆ GetDescription()

string CNTV2DriverInterface::GetDescription ( void  ) const
virtual
Returns
String containing remote device description.

Reimplemented in CNTV2Card.

Definition at line 1132 of file ntv2driverinterface.cpp.

◆ GetDeviceID()

NTV2DeviceID CNTV2DriverInterface::GetDeviceID ( void  )
virtual
Returns
The 4-byte value that identifies the kind of AJA device this is.

Definition at line 381 of file ntv2driverinterface.cpp.

◆ GetFrameBufferSize()

virtual ULWord CNTV2DriverInterface::GetFrameBufferSize ( void  ) const
inlinevirtual

Definition at line 384 of file ntv2driverinterface.h.

◆ GetInterruptCount()

bool CNTV2DriverInterface::GetInterruptCount ( const INTERRUPT_ENUMS  eInterrupt,
ULWord outCount 
)
virtual

Answers with the number of interrupts of the given type processed by the driver.

Parameters
[in]eInterruptThe interrupt type of interest.
[out]outCountReceives the count value.
Returns
True if successful; otherwise false.

Reimplemented in CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, and CNTV2MacDriverInterface.

Definition at line 340 of file ntv2driverinterface.cpp.

◆ GetInterruptEvent()

HANDLE CNTV2DriverInterface::GetInterruptEvent ( const INTERRUPT_ENUMS  eInterruptType)
virtual

Definition at line 347 of file ntv2driverinterface.cpp.

◆ GetInterruptEventCount()

bool CNTV2DriverInterface::GetInterruptEventCount ( const INTERRUPT_ENUMS  inEventCode,
ULWord outCount 
)
virtual

Answers with the number of interrupt events that I successfully waited for.

Parameters
[in]inEventCodeSpecifies the interrupt of interest.
[out]outCountReceives the number of interrupt events that I successfully waited for.
Returns
True if successful; otherwise false.
See also
CNTV2DriverInterface::SetInterruptEventCount, Field/Frame Interrupts

Definition at line 323 of file ntv2driverinterface.cpp.

◆ GetLegalSchemeNames()

NTV2StringList CNTV2DriverInterface::GetLegalSchemeNames ( void  )
static
Returns
A list of legal scheme names that can be used to open remote or non-physical devices. (New in SDK 16.0)

Definition at line 55 of file ntv2driverinterface.cpp.

◆ GetNumericParam()

bool CNTV2DriverInterface::GetNumericParam ( const ULWord  inParamID,
ULWord outValue 
)
protectedvirtual

Definition at line 1697 of file ntv2driverinterface.cpp.

◆ GetNumFrameBuffers()

virtual ULWord CNTV2DriverInterface::GetNumFrameBuffers ( void  ) const
inlinevirtual

Definition at line 383 of file ntv2driverinterface.h.

◆ GetNumRecordedRegisterWrites()

ULWord CNTV2DriverInterface::GetNumRecordedRegisterWrites ( void  ) const
virtual
Returns
The number of recorded WriteRegister calls.

Definition at line 1374 of file ntv2driverinterface.cpp.

◆ GetNumSupported()

virtual ULWord CNTV2DriverInterface::GetNumSupported ( const NTV2NumericParamID  inParamID)
inlinevirtual
Returns
The requested quantity for the given device feature.
Parameters
[in]inParamIDThe NTV2NumericParamID of interest.
See also
vidop-features

Definition at line 433 of file ntv2driverinterface.h.

◆ GetOverlappedMode()

bool CNTV2DriverInterface::GetOverlappedMode ( void  )
static
Returns
True if local devices will be opened in overlapped mode; otherwise false. (New in SDK 16.0)

Definition at line 67 of file ntv2driverinterface.cpp.

◆ GetPackageInformation()

bool CNTV2DriverInterface::GetPackageInformation ( PACKAGE_INFO_STRUCT outPkgInfo)
virtual

Answers with the IP device's package information.

Parameters
[out]outPkgInfoReceives the package information.
Returns
True if successful; otherwise false.

Definition at line 692 of file ntv2driverinterface.cpp.

◆ GetRecordedRegisterWrites()

bool CNTV2DriverInterface::GetRecordedRegisterWrites ( NTV2RegisterWrites outRegWrites) const
virtual

Answers with the recorded register writes.

Definition at line 1325 of file ntv2driverinterface.cpp.

◆ GetRegInfoForBoolParam()

bool CNTV2DriverInterface::GetRegInfoForBoolParam ( const NTV2BoolParamID  inParamID,
NTV2RegInfo outRegInfo 
)
protectedvirtual

Answers with the NTV2RegInfo of the register associated with the given boolean (i.e., "Can Do") device feature.

Parameters
[in]inParamIDSpecifies the device features parameter of interest.
[out]outRegInfoReceives the associated NTV2RegInfo.
Returns
True if successful; otherwise false.

Definition at line 1779 of file ntv2driverinterface.cpp.

◆ GetRegInfoForNumericParam()

bool CNTV2DriverInterface::GetRegInfoForNumericParam ( const NTV2NumericParamID  inParamID,
NTV2RegInfo outRegInfo 
)
protectedvirtual

Answers with the NTV2RegInfo of the register associated with the given numeric (i.e., "Get Num") device feature.

Parameters
[in]inParamIDSpecifies the device features parameter of interest.
[out]outRegInfoReceives the associated NTV2RegInfo.
Returns
True if successful; otherwise false.

Definition at line 1798 of file ntv2driverinterface.cpp.

◆ GetShareMode()

bool CNTV2DriverInterface::GetShareMode ( void  )
static
Returns
True if local devices will be opened in shared mode; otherwise false. (New in SDK 16.0)

Definition at line 64 of file ntv2driverinterface.cpp.

◆ GetStreamingApplication()

bool CNTV2DriverInterface::GetStreamingApplication ( ULWord outAppType,
int32_t &  outProcessID 
)
virtual

Answers with the four-CC type and process ID of the application that currently "owns" the AJA device (i.e. reserved it for exclusive use).

Returns
True if successful; otherwise false.
Parameters
[out]outAppTypeReceives the 32-bit "four CC" value of the application that currently "owns" the device.
[out]outProcessIDReceives the OS-specific process identifier that uniquely identifies the running application process on the host machine that currently "owns" the device (see AJAProcess::GetPid).

If the AJA retail agent (service) is controlling the device, the returned process ID will be zero, and the returned app type will be NTV2_FOURCC('A','j','a','A').

See also
CNTV2DriverInterface::SetStreamingApplication, Sharing AJA Devices With Other Applications

Reimplemented in CNTV2MacDriverInterface.

Definition at line 1125 of file ntv2driverinterface.cpp.

◆ GetSupportedItems()

ULWordSet CNTV2DriverInterface::GetSupportedItems ( const NTV2EnumsID  inEnumsID)
virtual
Parameters
[in]inEnumsIDThe NTV2EnumsID of interest.
Returns
The supported items.
See also
vidop-features

Definition at line 1382 of file ntv2driverinterface.cpp.

◆ HevcSendMessage()

virtual bool CNTV2DriverInterface::HevcSendMessage ( HevcMessageHeader pMessage)
inlinevirtual

Sends an HEVC message to the NTV2 driver.

Parameters
pMessagePoints to the HevcMessageHeader that contains the HEVC message.
Returns
False. This must be implemented by the platform-specific subclass.

Reimplemented in CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.

Definition at line 378 of file ntv2driverinterface.h.

◆ IsDeviceReady()

bool CNTV2DriverInterface::IsDeviceReady ( const bool  inCheckValid = (0))
virtual
Returns
True if the device is ready to be fully operable; otherwise false.
Parameters
[in]inCheckValidIf true, additionally checks CNTV2Card::IsMBSystemValid. Defaults to false.
Note
Some devices have processors that require a lot of time (~30 to ~90 seconds) to start up after a PCIe bus reset, power-up or wake from sleep. Calls to CNTV2Card::IsOpen, CNTV2Card::ReadRegister and CNTV2Card::WriteRegister will all succeed, but the device won't be capable of either ingesting or playing video or performing DMA operations.

Definition at line 1284 of file ntv2driverinterface.cpp.

◆ IsMBSystemReady()

bool CNTV2DriverInterface::IsMBSystemReady ( void  )
virtual
Returns
True if microblaze system is in ready state; otherwise false.

Definition at line 1309 of file ntv2driverinterface.cpp.

◆ IsMBSystemValid()

bool CNTV2DriverInterface::IsMBSystemValid ( void  )
virtual
Returns
True if microblaze system exists (is valid); otherwise false.

Definition at line 1298 of file ntv2driverinterface.cpp.

◆ IsRecordingRegisterWrites()

bool CNTV2DriverInterface::IsRecordingRegisterWrites ( void  ) const
virtual
Returns
True if WriteRegister calls are currently being recorded (and not paused); otherwise false.

Definition at line 1352 of file ntv2driverinterface.cpp.

◆ IsSupported()

virtual bool CNTV2DriverInterface::IsSupported ( const NTV2BoolParamID  inParamID)
inlinevirtual
Returns
True if the requested device feature is supported.
Parameters
[in]inParamIDThe NTV2BoolParamID of interest.
See also
vidop-features

Definition at line 422 of file ntv2driverinterface.h.

◆ NTV2Message()

bool CNTV2DriverInterface::NTV2Message ( NTV2_HEADER pInMessage)
virtual

Sends a message to the NTV2 driver (the new, improved, preferred way).

Parameters
pInMessagePoints to the message to pass to the driver. Valid messages start with an NTV2_HEADER and end with an NTV2_TRAILER.
Returns
True if successful; otherwise false.

Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.

Definition at line 584 of file ntv2driverinterface.cpp.

◆ Open() [1/2]

virtual bool CNTV2DriverInterface::Open ( const std::string &  inURLSpec)
virtual

Opens the specified local, remote or software device.

Parameters
[in]inURLSpecSpecifies the local, remote or software device to be opened.
Returns
True if successful; otherwise false.
Note
Before attempting the Open, if I'm currently open, Close will be called first.

◆ Open() [2/2]

bool CNTV2DriverInterface::Open ( const UWord  inDeviceIndex)
virtual

Opens a local/physical AJA device so it can be monitored/controlled.

Parameters
[in]inDeviceIndexSpecifies a zero-based index number of the AJA device to open.
Returns
True if successful; otherwise false.
Note
Before attempting the Open, if I'm currently open, Close will be called first.

Definition at line 131 of file ntv2driverinterface.cpp.

◆ OpenLocalPhysical()

bool CNTV2DriverInterface::OpenLocalPhysical ( const UWord  inDeviceIndex)
protectedvirtual

Opens the local/physical device connection.

Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.

Definition at line 219 of file ntv2driverinterface.cpp.

◆ OpenRemote()

bool CNTV2DriverInterface::OpenRemote ( const std::string &  inURLSpec)
protectedvirtual

Peforms the housekeeping details of opening the specified local, remote or software device.

Parameters
[in]inURLSpecSpecifies the local, remote or software device to be opened.
Returns
True if successful; otherwise false.

Definition at line 249 of file ntv2driverinterface.cpp.

◆ ParseFlashHeader()

bool CNTV2DriverInterface::ParseFlashHeader ( BITFILE_INFO_STRUCT outBitfileInfo)
protectedvirtual

Definition at line 911 of file ntv2driverinterface.cpp.

◆ PauseRecordRegisterWrites()

bool CNTV2DriverInterface::PauseRecordRegisterWrites ( void  )
virtual

Pauses recording WriteRegister calls.

Definition at line 1365 of file ntv2driverinterface.cpp.

◆ ReadFlashULWord()

bool CNTV2DriverInterface::ReadFlashULWord ( const ULWord  inAddress,
ULWord outValue,
const ULWord  inRetryCount = 1000 
)
protectedvirtual

Definition at line 977 of file ntv2driverinterface.cpp.

◆ ReadRegister() [1/2]

template<typename T >
bool CNTV2DriverInterface::ReadRegister ( const ULWord  inRegNum,
T &  outValue,
const ULWord  inMask = 0xFFFFFFFF,
const ULWord  inShift = 0 
)
inline

This template function reads all or part of the 32-bit contents of a specific register (real or virtual) from the AJA device, and if successful, returns its value automatically casted to the scalar type of the "outValue" parameter.

Returns
True if successful; otherwise false.
Parameters
[in]inRegNumSpecifies the register number of interest.
[out]outValueReceives the register value obtained from the device, automatically casted to the parameter's type. Its type must be statically castable from ULWord (i.e. it must be a scalar).
[in]inMaskOptionally specifies a bit mask to be applied after reading the device register. Zero and 0xFFFFFFFF masks are ignored. Defaults to 0xFFFFFFFF (no masking).
[in]inShiftOptionally specifies the number of bits to right-shift the value obtained from the device register after the mask has been applied. Defaults to zero (no shift).
Note
This function should be used only when there is no higher-level function available to accomplish the desired task.
The mask and shift parameters are ignored when reading a virtual register.

Definition at line 218 of file ntv2driverinterface.h.

◆ ReadRegister() [2/2]

bool CNTV2DriverInterface::ReadRegister ( const ULWord  inRegNum,
ULWord outValue,
const ULWord  inMask = 0xFFFFFFFF,
const ULWord  inShift = 0 
)
virtual

Reads all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device. Using the optional mask and shift parameters, it's possible to read any number of specific bits in a register while ignoring the register's other bits.

Returns
True if successful; otherwise false.
Parameters
[in]inRegNumSpecifies the register number of interest.
[out]outValueReceives the register value obtained from the device.
[in]inMaskOptionally specifies a bit mask to be applied after reading the device register. Zero and 0xFFFFFFFF masks are ignored. Defaults to 0xFFFFFFFF (no masking).
[in]inShiftOptionally specifies the number of bits to right-shift the value obtained from the device register after the mask has been applied. Defaults to zero (no shift).
Note
This function should be used only when there is no higher-level function available to accomplish the desired task.
The mask and shift parameters are ignored when reading a virtual register.

Reimplemented in CNTV2WinDriverInterface, CNTV2MacDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.

Definition at line 403 of file ntv2driverinterface.cpp.

◆ ReadRegisterMulti()

bool CNTV2DriverInterface::ReadRegisterMulti ( const ULWord  numRegs,
ULWord pOutWhichRegFailed,
NTV2RegInfo  aRegs[] 
)
virtual

◆ ReadRegisters()

bool CNTV2DriverInterface::ReadRegisters ( NTV2RegisterReads inOutValues)
virtual

Reads the register(s) specified by the given NTV2RegInfo sequence.

Parameters
[in]inOutValuesSpecifies the register(s) to be read, and upon return, contains their values.
Returns
True only if all registers were read successfully; otherwise false.
Note
This operation is not guaranteed to be performed atomically.

Definition at line 414 of file ntv2driverinterface.cpp.

◆ ReadRP188Registers()

bool CNTV2DriverInterface::ReadRP188Registers ( const NTV2Channel  inChannel,
RP188_STRUCT pRP188Data 
)
virtual

Definition at line 1166 of file ntv2driverinterface.cpp.

◆ ReleaseStreamForApplication()

bool CNTV2DriverInterface::ReleaseStreamForApplication ( const ULWord  inAppType,
const int32_t  inProcessID 
)
virtual

Releases exclusive use of the AJA device for the given process, permitting other processes to acquire it.

Returns
True if successful; otherwise false.
Parameters
[in]inAppTypeA 32-bit "four CC" value that helps identify the application that is releasing its exclusive use of the device.
[in]inProcessIDSpecifies the OS-specific process identifier that uniquely identifies the running process on the host machine that is releasing its exclusive use of the device (see AJAProcess::GetPid).

This method will fail if the specified application type or process ID values don't match those used in the previous call to CNTV2DriverInterface::AcquireStreamForApplication.

Note
AJA recommends saving the device's NTV2EveryFrameTaskMode at the time CNTV2DriverInterface::AcquireStreamForApplication is called, and restoring it after releasing the device.
See also
CNTV2DriverInterface::AcquireStreamForApplication, Sharing AJA Devices With Other Applications

Reimplemented in CNTV2MacDriverInterface.

Definition at line 1108 of file ntv2driverinterface.cpp.

◆ ReleaseStreamForApplicationWithReference()

bool CNTV2DriverInterface::ReleaseStreamForApplicationWithReference ( const ULWord  inAppType,
const int32_t  inProcessID 
)
virtual

A reference-counted version of CNTV2DriverInterface::ReleaseStreamForApplication useful for process groups.

Returns
True if successful; otherwise false.
Parameters
[in]inAppTypeA 32-bit "four CC" value that helps identify the calling application that is releasing exclusive use of the device.
[in]inProcessIDSpecifies the OS-specific process identifier that uniquely identifies the running process on the host machine that is releasing exclusive use of the device (see AJAProcess::GetPid).

This method releases exclusive use of the AJA device by the given host process once the reference count goes to zero. This method will fail if the specified application type or process ID values don't match those used in the prior call to CNTV2DriverInterface::AcquireStreamForApplication.

Note
Each call to CNTV2DriverInterface::AcquireStreamForApplicationWithReference should be balanced by the same number of calls to CNTV2DriverInterface::ReleaseStreamForApplicationWithReference.
See also
CNTV2DriverInterface::AcquireStreamForApplicationWithReference, Sharing AJA Devices With Other Applications

Reimplemented in CNTV2MacDriverInterface.

Definition at line 1052 of file ntv2driverinterface.cpp.

◆ RestoreHardwareProcampRegisters()

virtual bool CNTV2DriverInterface::RestoreHardwareProcampRegisters ( void  )
inlinevirtual

◆ ResumeAudio()

virtual bool CNTV2DriverInterface::ResumeAudio ( const ULWord  inFBSize)
inlinevirtual

Definition at line 588 of file ntv2driverinterface.h.

◆ ResumeRecordRegisterWrites()

bool CNTV2DriverInterface::ResumeRecordRegisterWrites ( void  )
virtual

Resumes recording WriteRegister calls (after a prior call to PauseRecordRegisterWrites).

Definition at line 1343 of file ntv2driverinterface.cpp.

◆ SetInterruptEventCount()

bool CNTV2DriverInterface::SetInterruptEventCount ( const INTERRUPT_ENUMS  inEventCode,
const ULWord  inCount 
)
virtual

Resets my interrupt event tally for the given interrupt type. (This is my count of the number of successful event waits.)

Parameters
[in]inEventCodeSpecifies the interrupt type.
[in]inCountSpecifies the new count value. Use zero to reset the tally.
Returns
True if successful; otherwise false.
See also
CNTV2DriverInterface::GetInterruptEventCount, Field/Frame Interrupts

Definition at line 332 of file ntv2driverinterface.cpp.

◆ SetOverlappedMode()

void CNTV2DriverInterface::SetOverlappedMode ( const bool  inOverlapMode)
static

Specifies if the next Open call should try to open the device in overlapped mode or not.

Note
On some platforms, this function may have no effect.
Parameters
[in]inOverlapModeSpecify true for overlapped mode; otherwise use false.

Definition at line 66 of file ntv2driverinterface.cpp.

◆ SetShareMode()

void CNTV2DriverInterface::SetShareMode ( const bool  inSharedMode)
static

Specifies if subsequent Open calls should open the device in shared mode or not.

Note
On some platforms, this function may have no effect.
Parameters
[in]inSharedModeSpecify true for shared mode; otherwise use false.

Definition at line 63 of file ntv2driverinterface.cpp.

◆ SetStreamingApplication()

bool CNTV2DriverInterface::SetStreamingApplication ( const ULWord  inAppType,
const int32_t  inProcessID 
)
virtual

Sets the four-CC type and process ID of the application that should "own" the AJA device (i.e. reserve it for exclusive use).

Returns
True if successful; otherwise false.
Parameters
[in]inAppTypeSpecifies the 32-bit "four CC" value that helps identify the application that will "own" the device.
[in]inProcessIDSpecifies the OS-specific process identifier of the host application process that will "own" the device (see AJAProcess::GetPid).
Note
This function should only be used to forcibly set (or reset) the owning application after a crash or other abnormal termination. In normal use, AJA recommends calling CNTV2DriverInterface::AcquireStreamForApplication and CNTV2DriverInterface::ReleaseStreamForApplication (or their reference-counted equivalents).
See also
CNTV2DriverInterface::GetStreamingApplication, Sharing AJA Devices With Other Applications

Reimplemented in CNTV2MacDriverInterface.

Definition at line 1118 of file ntv2driverinterface.cpp.

◆ SleepMs()

Word CNTV2DriverInterface::SleepMs ( const LWord  msec)
virtual
Deprecated:
Obsolete starting in SDK 16.0. Use AJATime::Sleep instead.

Definition at line 458 of file ntv2driverinterface.cpp.

◆ StartRecordRegisterWrites()

bool CNTV2DriverInterface::StartRecordRegisterWrites ( const bool  inSkipActualWrites = (0))
virtual

Starts recording all WriteRegister calls.

Definition at line 1332 of file ntv2driverinterface.cpp.

◆ StopRecordRegisterWrites()

bool CNTV2DriverInterface::StopRecordRegisterWrites ( void  )
virtual

Stops recording all WriteRegister calls.

Definition at line 1358 of file ntv2driverinterface.cpp.

◆ StreamBufferOps()

bool CNTV2DriverInterface::StreamBufferOps ( const NTV2Channel  inChannel,
NTV2Buffer inBuffer,
ULWord64  bufferCookie,
ULWord  flags,
NTV2StreamBuffer status 
)
virtual

Definition at line 864 of file ntv2driverinterface.cpp.

◆ StreamChannelOps()

bool CNTV2DriverInterface::StreamChannelOps ( const NTV2Channel  inChannel,
ULWord  flags,
NTV2StreamChannel status 
)
virtual

Definition at line 854 of file ntv2driverinterface.cpp.

◆ SuspendAudio()

virtual bool CNTV2DriverInterface::SuspendAudio ( void  )
inlinevirtual

Definition at line 587 of file ntv2driverinterface.h.

◆ WaitForInterrupt()

bool CNTV2DriverInterface::WaitForInterrupt ( const INTERRUPT_ENUMS  eInterrupt,
const ULWord  timeOutMs = 68 
)
virtual

◆ WriteRegister()

bool CNTV2DriverInterface::WriteRegister ( const ULWord  inRegNum,
const ULWord  inValue,
const ULWord  inMask = 0xFFFFFFFF,
const ULWord  inShift = 0 
)
virtual

Updates or replaces all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device. Using the optional mask and shift parameters, it's possible to set or clear any number of specific bits in a real register without altering any of the register's other bits.

Returns
True if successful; otherwise false.
Parameters
[in]inRegNumSpecifies the register number of interest.
[in]inValueSpecifies the desired new register value. If the "inShift" parameter is non-zero, this value is shifted left by the designated number of bit positions before being masked and applied to the real register contents.
[in]inMaskOptionally specifies a bit mask to be applied to the new (shifted) value before updating the register. Defaults to 0xFFFFFFFF, which does not perform any masking. On Windows and MacOS, a zero mask is treated the same as 0xFFFFFFFF.
[in]inShiftOptionally specifies the number of bits to left-shift the specified value before applying it to the register. Defaults to zero, which does not perform any shifting. On MacOS, this parameter is ignored. On Windows, a shift value of 0xFFFFFFFF is treated the same as a zero shift value.
Note
This function should be used only when there is no higher-level function available to accomplish the desired task.
The mask and shift parameters are ignored when setting a virtual register.
Bug:
On MacOS, "holes" in the mask (i.e., one or more runs of 0-bits lying between more-significant and less-significant 1-bits) were not handled correctly.

Reimplemented in CNTV2WinDriverInterface, CNTV2MacDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.

Definition at line 467 of file ntv2driverinterface.cpp.

Member Data Documentation

◆ _boardID

NTV2DeviceID CNTV2DriverInterface::_boardID
protected

My cached device ID.

Definition at line 679 of file ntv2driverinterface.h.

◆ _boardNumber

UWord CNTV2DriverInterface::_boardNumber
protected

My device index number.

Definition at line 678 of file ntv2driverinterface.h.

◆ _boardOpened

bool CNTV2DriverInterface::_boardOpened
protected

True if I'm open and connected to the device.

Definition at line 680 of file ntv2driverinterface.h.

◆ _pCh1FrameBaseAddress

ULWord* CNTV2DriverInterface::_pCh1FrameBaseAddress
protected
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 698 of file ntv2driverinterface.h.

◆ _pCh2FrameBaseAddress

ULWord* CNTV2DriverInterface::_pCh2FrameBaseAddress
protected
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 699 of file ntv2driverinterface.h.

◆ _pciSlot

ULWord CNTV2DriverInterface::_pciSlot
protected

Definition at line 704 of file ntv2driverinterface.h.

◆ _pFrameBaseAddress

ULWord* CNTV2DriverInterface::_pFrameBaseAddress
protected
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 694 of file ntv2driverinterface.h.

◆ _pRegisterBaseAddress

ULWord* CNTV2DriverInterface::_pRegisterBaseAddress
protected
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 695 of file ntv2driverinterface.h.

◆ _pRegisterBaseAddressLength

ULWord CNTV2DriverInterface::_pRegisterBaseAddressLength
protected
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 696 of file ntv2driverinterface.h.

◆ _programStatus

ULWord CNTV2DriverInterface::_programStatus
protected

Definition at line 685 of file ntv2driverinterface.h.

◆ _pRPCAPI

NTV2RPCAPI* CNTV2DriverInterface::_pRPCAPI
protected

Points to remote or software device interface; otherwise NULL for local physical device.

Definition at line 686 of file ntv2driverinterface.h.

◆ _pXena2FlashBaseAddress

ULWord* CNTV2DriverInterface::_pXena2FlashBaseAddress
protected
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 697 of file ntv2driverinterface.h.

◆ _ulFrameBufferSize

ULWord CNTV2DriverInterface::_ulFrameBufferSize
protected

Definition at line 702 of file ntv2driverinterface.h.

◆ _ulNumFrameBuffers

ULWord CNTV2DriverInterface::_ulNumFrameBuffers
protected

Definition at line 701 of file ntv2driverinterface.h.

◆ mEventCounts

_EventCounts CNTV2DriverInterface::mEventCounts
protected

My event tallies, one for each interrupt type. Note that these.

Definition at line 688 of file ntv2driverinterface.h.

◆ mInterruptEventHandles

_EventHandles CNTV2DriverInterface::mInterruptEventHandles
protected

For subscribing to each possible event, one for each interrupt type.

Definition at line 687 of file ntv2driverinterface.h.

◆ mRecordRegWrites

bool CNTV2DriverInterface::mRecordRegWrites
protected

True if recording; otherwise false when not recording.

Definition at line 682 of file ntv2driverinterface.h.

◆ mRegWrites

NTV2RegisterWrites CNTV2DriverInterface::mRegWrites
protected

Stores WriteRegister data.

Definition at line 690 of file ntv2driverinterface.h.

◆ mRegWritesLock

AJALock CNTV2DriverInterface::mRegWritesLock
mutableprotected

Guard mutex for mRegWrites.

Definition at line 691 of file ntv2driverinterface.h.

◆ mSkipRegWrites

bool CNTV2DriverInterface::mSkipRegWrites
protected

True if actual register writes are skipped while recording.

Definition at line 683 of file ntv2driverinterface.h.


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