AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
CNTV2LinuxDriverInterface Class Reference

Linux implementation of CNTV2DriverInterface. More...

#include <ntv2linuxdriverinterface.h>

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

Public Member Functions

 CNTV2LinuxDriverInterface ()
 
virtual ~CNTV2LinuxDriverInterface ()
 
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...
 
virtual bool RestoreHardwareProcampRegisters (void)
 
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)
 
virtual bool ConfigureSubscription (const bool bSubscribe, const INTERRUPT_ENUMS eInterruptType, PULWord &hSubcription)
 
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 (INTERRUPT_ENUMS eInterrupt, ULWord timeOutMs=68)
 
virtual bool AutoCirculate (AUTOCIRCULATE_DATA &autoCircData)
 Sends an AutoCirculate command to the NTV2 driver. More...
 
virtual bool NTV2Message (NTV2_HEADER *pInOutMessage)
 Sends a message to the NTV2 driver (the new, improved, preferred way). More...
 
virtual bool ControlDriverDebugMessages (NTV2_DriverDebugMessageSet msgSet, bool enable)
 
virtual bool HevcSendMessage (HevcMessageHeader *pMessage)
 Sends an HEVC message to the NTV2 driver. More...
 
virtual bool SetupBoard (void)
 
virtual bool DmaWriteWithOffsets (NTV2DMAEngine DMAEngine, ULWord frameNumber, ULWord *pFrameBuffer, ULWord offsetSrc, ULWord offsetDest, ULWord bytes)
 
virtual bool DmaReadWithOffsets (NTV2DMAEngine DMAEngine, ULWord frameNumber, ULWord *pFrameBuffer, ULWord offsetSrc, ULWord offsetDest, ULWord bytes)
 
virtual bool MapFrameBuffers (void)
 
virtual bool UnmapFrameBuffers (void)
 
virtual bool MapRegisters (void)
 
virtual bool UnmapRegisters (void)
 
virtual bool GetBA0MemorySize (ULWord *memSize)
 
virtual bool GetBA1MemorySize (ULWord *memSize)
 
virtual bool GetBA2MemorySize (ULWord *memSize)
 
virtual bool GetBA4MemorySize (ULWord *memSize)
 
virtual bool MapXena2Flash (void)
 
virtual bool UnmapXena2Flash (void)
 
virtual bool MapDNXRegisters (void)
 
virtual bool UnmapDNXRegisters (void)
 
virtual bool MapDMADriverBuffer ()
 
virtual bool UnmapDMADriverBuffer ()
 
virtual bool DmaReadFrameDriverBuffer (NTV2DMAEngine DMAEngine, ULWord frameNumber, unsigned long dmaBufferFrame, ULWord bytes, ULWord downSample, ULWord linePitch, ULWord poll)
 
virtual bool DmaReadFrameDriverBuffer (NTV2DMAEngine DMAEngine, ULWord frameNumber, unsigned long dmaBufferFrame, ULWord offsetSrc, ULWord offsetDest, ULWord bytes, ULWord downSample, ULWord linePitch, ULWord poll)
 
virtual bool DmaWriteFrameDriverBuffer (NTV2DMAEngine DMAEngine, ULWord frameNumber, unsigned long dmaBufferFrame, ULWord bytes, ULWord poll)
 
virtual bool DmaWriteFrameDriverBuffer (NTV2DMAEngine DMAEngine, ULWord frameNumber, unsigned long dmaBufferFrame, ULWord offsetSrc, ULWord offsetDest, ULWord bytes, ULWord poll)
 
virtual bool GetDMADriverBufferPhysicalAddress (ULWord *physAddr)
 
virtual bool GetDMADriverBufferAddress (ULWord **pDMADriverBuffer)
 
virtual bool GetDMANumDriverBuffers (ULWord *pNumDmaDriverBuffers)
 
virtual bool SetAudioOutputMode (NTV2_GlobalAudioPlaybackMode mode)
 
virtual bool GetAudioOutputMode (NTV2_GlobalAudioPlaybackMode *mode)
 
- Public Member Functions inherited from CNTV2DriverInterface
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)
 
virtual NTV2DeviceID GetDeviceID (void)
 
virtual bool IsDeviceReady (const bool inCheckValid=(0))
 
virtual bool IsMBSystemValid (void)
 
virtual bool IsMBSystemReady (void)
 
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...
 
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 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...
 
virtual bool IsSupported (const NTV2BoolParamID inParamID)
 
virtual ULWord GetNumSupported (const NTV2NumericParamID inParamID)
 
virtual ULWordSet GetSupportedItems (const NTV2EnumsID inEnumsID)
 
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...
 
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
 
 CNTV2DriverInterface ()
 My default constructor. More...
 
virtual ~CNTV2DriverInterface ()
 My destructor. More...
 

Protected Member Functions

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...
 
- Protected Member Functions inherited from CNTV2DriverInterface
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 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

std::string _bitfileDirectory
 
HANDLE _hDevice
 
ULWord_pDMADriverBufferAddress
 
ULWord _BA0MemorySize
 
ULWord_pDNXRegisterBaseAddress
 
ULWord _BA2MemorySize
 
ULWord _BA4MemorySize
 
- Protected Attributes inherited from CNTV2DriverInterface
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
 

Additional Inherited Members

- Static Public Member Functions inherited from CNTV2DriverInterface
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 inherited from CNTV2DriverInterface
typedef std::vector< ULWord_EventCounts
 
typedef std::vector< PULWord_EventHandles
 

Detailed Description

Linux implementation of CNTV2DriverInterface.

Definition at line 25 of file ntv2linuxdriverinterface.h.

Constructor & Destructor Documentation

◆ CNTV2LinuxDriverInterface()

CNTV2LinuxDriverInterface::CNTV2LinuxDriverInterface ( )

Definition at line 40 of file ntv2linuxdriverinterface.cpp.

◆ ~CNTV2LinuxDriverInterface()

CNTV2LinuxDriverInterface::~CNTV2LinuxDriverInterface ( )
virtual

Definition at line 53 of file ntv2linuxdriverinterface.cpp.

Member Function Documentation

◆ AutoCirculate()

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 856 of file ntv2linuxdriverinterface.cpp.

◆ CloseLocalPhysical()

bool CNTV2LinuxDriverInterface::CloseLocalPhysical ( void  )
protectedvirtual

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

Reimplemented from CNTV2DriverInterface.

Definition at line 108 of file ntv2linuxdriverinterface.cpp.

◆ ConfigureInterrupt()

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

Reimplemented from CNTV2DriverInterface.

Definition at line 214 of file ntv2linuxdriverinterface.cpp.

◆ ConfigureSubscription()

virtual bool CNTV2LinuxDriverInterface::ConfigureSubscription ( const bool  bSubscribe,
const INTERRUPT_ENUMS  eInterruptType,
PULWord hSubcription 
)
inlinevirtual

Reimplemented from CNTV2DriverInterface.

Definition at line 66 of file ntv2linuxdriverinterface.h.

◆ ControlDriverDebugMessages()

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

Reimplemented from CNTV2DriverInterface.

Definition at line 321 of file ntv2linuxdriverinterface.cpp.

◆ DmaReadFrameDriverBuffer() [1/2]

bool CNTV2LinuxDriverInterface::DmaReadFrameDriverBuffer ( NTV2DMAEngine  DMAEngine,
ULWord  frameNumber,
unsigned long  dmaBufferFrame,
ULWord  bytes,
ULWord  downSample,
ULWord  linePitch,
ULWord  poll 
)
virtual

Definition at line 1291 of file ntv2linuxdriverinterface.cpp.

◆ DmaReadFrameDriverBuffer() [2/2]

bool CNTV2LinuxDriverInterface::DmaReadFrameDriverBuffer ( NTV2DMAEngine  DMAEngine,
ULWord  frameNumber,
unsigned long  dmaBufferFrame,
ULWord  offsetSrc,
ULWord  offsetDest,
ULWord  bytes,
ULWord  downSample,
ULWord  linePitch,
ULWord  poll 
)
virtual

Definition at line 1330 of file ntv2linuxdriverinterface.cpp.

◆ DmaReadWithOffsets()

bool CNTV2LinuxDriverInterface::DmaReadWithOffsets ( NTV2DMAEngine  DMAEngine,
ULWord  frameNumber,
ULWord pFrameBuffer,
ULWord  offsetSrc,
ULWord  offsetDest,
ULWord  bytes 
)
virtual

Definition at line 1408 of file ntv2linuxdriverinterface.cpp.

◆ DmaTransfer() [1/3]

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 607 of file ntv2linuxdriverinterface.cpp.

◆ DmaTransfer() [2/3]

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 695 of file ntv2linuxdriverinterface.cpp.

◆ DmaTransfer() [3/3]

bool CNTV2LinuxDriverInterface::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

Reimplemented from CNTV2DriverInterface.

Definition at line 786 of file ntv2linuxdriverinterface.cpp.

◆ DmaWriteFrameDriverBuffer() [1/2]

bool CNTV2LinuxDriverInterface::DmaWriteFrameDriverBuffer ( NTV2DMAEngine  DMAEngine,
ULWord  frameNumber,
unsigned long  dmaBufferFrame,
ULWord  bytes,
ULWord  poll 
)
virtual

Definition at line 1222 of file ntv2linuxdriverinterface.cpp.

◆ DmaWriteFrameDriverBuffer() [2/2]

bool CNTV2LinuxDriverInterface::DmaWriteFrameDriverBuffer ( NTV2DMAEngine  DMAEngine,
ULWord  frameNumber,
unsigned long  dmaBufferFrame,
ULWord  offsetSrc,
ULWord  offsetDest,
ULWord  bytes,
ULWord  poll 
)
virtual

Definition at line 1256 of file ntv2linuxdriverinterface.cpp.

◆ DmaWriteWithOffsets()

bool CNTV2LinuxDriverInterface::DmaWriteWithOffsets ( NTV2DMAEngine  DMAEngine,
ULWord  frameNumber,
ULWord pFrameBuffer,
ULWord  offsetSrc,
ULWord  offsetDest,
ULWord  bytes 
)
virtual

Definition at line 1362 of file ntv2linuxdriverinterface.cpp.

◆ GetAudioOutputMode()

bool CNTV2LinuxDriverInterface::GetAudioOutputMode ( NTV2_GlobalAudioPlaybackMode mode)
virtual

Definition at line 1205 of file ntv2linuxdriverinterface.cpp.

◆ GetBA0MemorySize()

bool CNTV2LinuxDriverInterface::GetBA0MemorySize ( ULWord memSize)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 481 of file ntv2linuxdriverinterface.cpp.

◆ GetBA1MemorySize()

bool CNTV2LinuxDriverInterface::GetBA1MemorySize ( ULWord memSize)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 486 of file ntv2linuxdriverinterface.cpp.

◆ GetBA2MemorySize()

bool CNTV2LinuxDriverInterface::GetBA2MemorySize ( ULWord memSize)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 491 of file ntv2linuxdriverinterface.cpp.

◆ GetBA4MemorySize()

bool CNTV2LinuxDriverInterface::GetBA4MemorySize ( ULWord memSize)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 496 of file ntv2linuxdriverinterface.cpp.

◆ GetDMADriverBufferAddress()

bool CNTV2LinuxDriverInterface::GetDMADriverBufferAddress ( ULWord **  pDMADriverBuffer)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 1165 of file ntv2linuxdriverinterface.cpp.

◆ GetDMADriverBufferPhysicalAddress()

bool CNTV2LinuxDriverInterface::GetDMADriverBufferPhysicalAddress ( ULWord physAddr)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 1120 of file ntv2linuxdriverinterface.cpp.

◆ GetDMANumDriverBuffers()

bool CNTV2LinuxDriverInterface::GetDMANumDriverBuffers ( ULWord pNumDmaDriverBuffers)
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 1125 of file ntv2linuxdriverinterface.cpp.

◆ GetInterruptCount()

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 234 of file ntv2linuxdriverinterface.cpp.

◆ HevcSendMessage()

bool CNTV2LinuxDriverInterface::HevcSendMessage ( HevcMessageHeader pMessage)
virtual

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 from CNTV2DriverInterface.

Definition at line 1102 of file ntv2linuxdriverinterface.cpp.

◆ MapDMADriverBuffer()

bool CNTV2LinuxDriverInterface::MapDMADriverBuffer ( )
virtual

Definition at line 1133 of file ntv2linuxdriverinterface.cpp.

◆ MapDNXRegisters()

bool CNTV2LinuxDriverInterface::MapDNXRegisters ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 550 of file ntv2linuxdriverinterface.cpp.

◆ MapFrameBuffers()

bool CNTV2LinuxDriverInterface::MapFrameBuffers ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 360 of file ntv2linuxdriverinterface.cpp.

◆ MapRegisters()

bool CNTV2LinuxDriverInterface::MapRegisters ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 432 of file ntv2linuxdriverinterface.cpp.

◆ MapXena2Flash()

bool CNTV2LinuxDriverInterface::MapXena2Flash ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 501 of file ntv2linuxdriverinterface.cpp.

◆ NTV2Message()

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 1085 of file ntv2linuxdriverinterface.cpp.

◆ OpenLocalPhysical()

bool CNTV2LinuxDriverInterface::OpenLocalPhysical ( const UWord  inDeviceIndex)
protectedvirtual

Opens the local/physical device connection.

Reimplemented from CNTV2DriverInterface.

Definition at line 64 of file ntv2linuxdriverinterface.cpp.

◆ ReadRegister()

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 132 of file ntv2linuxdriverinterface.cpp.

◆ RestoreHardwareProcampRegisters()

bool CNTV2LinuxDriverInterface::RestoreHardwareProcampRegisters ( void  )
virtual

Reimplemented from CNTV2DriverInterface.

Definition at line 196 of file ntv2linuxdriverinterface.cpp.

◆ SetAudioOutputMode()

bool CNTV2LinuxDriverInterface::SetAudioOutputMode ( NTV2_GlobalAudioPlaybackMode  mode)
virtual

Definition at line 1200 of file ntv2linuxdriverinterface.cpp.

◆ SetupBoard()

bool CNTV2LinuxDriverInterface::SetupBoard ( void  )
virtual

Definition at line 339 of file ntv2linuxdriverinterface.cpp.

◆ UnmapDMADriverBuffer()

bool CNTV2LinuxDriverInterface::UnmapDMADriverBuffer ( )
virtual

Definition at line 1177 of file ntv2linuxdriverinterface.cpp.

◆ UnmapDNXRegisters()

bool CNTV2LinuxDriverInterface::UnmapDNXRegisters ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 585 of file ntv2linuxdriverinterface.cpp.

◆ UnmapFrameBuffers()

bool CNTV2LinuxDriverInterface::UnmapFrameBuffers ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 409 of file ntv2linuxdriverinterface.cpp.

◆ UnmapRegisters()

bool CNTV2LinuxDriverInterface::UnmapRegisters ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 469 of file ntv2linuxdriverinterface.cpp.

◆ UnmapXena2Flash()

bool CNTV2LinuxDriverInterface::UnmapXena2Flash ( void  )
virtual
Deprecated:
Obsolete starting in SDK 16.0.

Definition at line 535 of file ntv2linuxdriverinterface.cpp.

◆ WaitForInterrupt()

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

Reimplemented from CNTV2DriverInterface.

Definition at line 298 of file ntv2linuxdriverinterface.cpp.

◆ WriteRegister()

bool CNTV2LinuxDriverInterface::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 from CNTV2DriverInterface.

Definition at line 161 of file ntv2linuxdriverinterface.cpp.

Member Data Documentation

◆ _BA0MemorySize

ULWord CNTV2LinuxDriverInterface::_BA0MemorySize
protected

Definition at line 135 of file ntv2linuxdriverinterface.h.

◆ _BA2MemorySize

ULWord CNTV2LinuxDriverInterface::_BA2MemorySize
protected

Definition at line 137 of file ntv2linuxdriverinterface.h.

◆ _BA4MemorySize

ULWord CNTV2LinuxDriverInterface::_BA4MemorySize
protected

Definition at line 138 of file ntv2linuxdriverinterface.h.

◆ _bitfileDirectory

std::string CNTV2LinuxDriverInterface::_bitfileDirectory
protected

Definition at line 131 of file ntv2linuxdriverinterface.h.

◆ _hDevice

HANDLE CNTV2LinuxDriverInterface::_hDevice
protected

Definition at line 132 of file ntv2linuxdriverinterface.h.

◆ _pDMADriverBufferAddress

ULWord* CNTV2LinuxDriverInterface::_pDMADriverBufferAddress
protected

Definition at line 134 of file ntv2linuxdriverinterface.h.

◆ _pDNXRegisterBaseAddress

ULWord* CNTV2LinuxDriverInterface::_pDNXRegisterBaseAddress
protected

Definition at line 136 of file ntv2linuxdriverinterface.h.


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