AJA NTV2 SDK
17.1.1.1245
NTV2 SDK 17.1.1.1245
|
I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ultimately derived). More...
#include <ntv2driverinterface.h>
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... | |
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.
|
protected |
Definition at line 672 of file ntv2driverinterface.h.
|
protected |
Definition at line 673 of file ntv2driverinterface.h.
CNTV2DriverInterface::CNTV2DriverInterface | ( | ) |
My default constructor.
Definition at line 72 of file ntv2driverinterface.cpp.
|
virtual |
My destructor.
Definition at line 114 of file ntv2driverinterface.cpp.
|
virtual |
Reserves exclusive use of the AJA device for a given process, preventing other processes on the host from acquiring it until subsequently released.
[in] | inAppType | A 32-bit "four CC" value that helps identify the calling application that is requesting exclusive use of the device. |
[in] | inProcessID | Specifies 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.
Reimplemented in CNTV2MacDriverInterface.
Definition at line 1071 of file ntv2driverinterface.cpp.
|
virtual |
A reference-counted version of CNTV2DriverInterface::AcquireStreamForApplication useful for process groups.
[in] | inAppType | A 32-bit "four CC" value that helps identify the calling application that is requesting exclusive use of the device. |
[in] | inProcessID | Specifies 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.
Reimplemented in CNTV2MacDriverInterface.
Definition at line 1009 of file ntv2driverinterface.cpp.
|
virtual |
Sends an AutoCirculate command to the NTV2 driver.
pAutoCircData | Points to the AUTOCIRCULATE_DATA that contains the AutoCirculate API command and parameters. |
Reimplemented in CNTV2MacDriverInterface, CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 559 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 845 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 820 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 829 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 802 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Atomically increments the event count tally for the given interrupt type.
[in] | eInterruptType | Specifies the interrupt type of interest. |
Definition at line 1276 of file ntv2driverinterface.cpp.
|
virtual |
Closes me, releasing host resources that may have been allocated in a previous Open call.
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.
|
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.
|
protectedvirtual |
Releases host resources associated with the remote/special device connection.
Definition at line 303 of file ntv2driverinterface.cpp.
|
virtual |
Reimplemented in CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, and CNTV2MacDriverInterface.
Definition at line 354 of file ntv2driverinterface.cpp.
|
virtual |
Reimplemented in CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 360 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 1155 of file ntv2driverinterface.cpp.
|
virtual |
Reimplemented in CNTV2MacDriverInterface, CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 1810 of file ntv2driverinterface.cpp.
|
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.
[in] | inDMAEngine | Specifies 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] | inIsRead | Specifies the transfer direction. Use 'true' for reading (device-to-host). Use 'false' for writing (host-to-device). |
[in] | inFrameNumber | Specifies the zero-based frame number of the starting frame to be transferred to/from the device. |
pFrameBuffer | Specifies 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] | inCardOffsetBytes | Specifies the byte offset into the device frame buffer where the data transfer will start. |
[in] | inTotalByteCount | Specifies the total number of bytes to be transferred. |
[in] | inSynchronous | This parameter is obsolete, and ignored. |
Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.
Definition at line 482 of file ntv2driverinterface.cpp.
|
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.
[in] | inDMAEngine | Specifies 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] | inIsRead | Specifies the transfer direction. Use 'true' for reading (device-to-host). Use 'false' for writing (host-to-device). |
[in] | inFrameNumber | Specifies the zero-based frame number of the starting frame to be transferred to/from the device. |
pFrameBuffer | Specifies 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] | inCardOffsetBytes | Specifies the byte offset into the device frame buffer where the data transfer will start. |
[in] | inTotalByteCount | Specifies the total number of bytes to be transferred. |
[in] | inNumSegments | Specifies the number of segments to transfer. Note that this determines the number of bytes per segment (by dividing into inTotalByteCount). |
[in] | inHostPitchPerSeg | Specifies the number of bytes to increment the host memory pointer after each segment is transferred. |
[in] | inCardPitchPerSeg | Specifies the number of bytes to increment the on-device memory pointer after each segment is transferred. |
[in] | inSynchronous | This parameter is obsolete, and ignored. |
Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.
Definition at line 502 of file ntv2driverinterface.cpp.
|
virtual |
Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.
Definition at line 525 of file ntv2driverinterface.cpp.
|
virtual |
Answers with the currently-installed bitfile information.
[out] | outBitFileInfo | Receives the bitfile info. |
[in] | inBitFileType | Optionally specifies the bitfile type of interest. Defaults to NTV2_VideoProcBitFile. |
Reimplemented in CNTV2WinDriverInterface.
Definition at line 597 of file ntv2driverinterface.cpp.
|
virtual |
Answers with the driver's build information.
[out] | outBuildInfo | Receives the build information. |
Definition at line 796 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Initializes my member variables after a successful Open.
Definition at line 880 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Definition at line 1526 of file ntv2driverinterface.cpp.
|
virtual |
Reimplemented in CNTV2Card.
Definition at line 1132 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 381 of file ntv2driverinterface.cpp.
|
inlinevirtual |
Definition at line 384 of file ntv2driverinterface.h.
|
virtual |
Answers with the number of interrupts of the given type processed by the driver.
[in] | eInterrupt | The interrupt type of interest. |
[out] | outCount | Receives the count value. |
Reimplemented in CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, and CNTV2MacDriverInterface.
Definition at line 340 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 347 of file ntv2driverinterface.cpp.
|
virtual |
Answers with the number of interrupt events that I successfully waited for.
[in] | inEventCode | Specifies the interrupt of interest. |
[out] | outCount | Receives the number of interrupt events that I successfully waited for. |
Definition at line 323 of file ntv2driverinterface.cpp.
|
static |
Definition at line 55 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Definition at line 1697 of file ntv2driverinterface.cpp.
|
inlinevirtual |
Definition at line 383 of file ntv2driverinterface.h.
|
virtual |
Definition at line 1374 of file ntv2driverinterface.cpp.
|
inlinevirtual |
[in] | inParamID | The NTV2NumericParamID of interest. |
Definition at line 433 of file ntv2driverinterface.h.
|
static |
Definition at line 67 of file ntv2driverinterface.cpp.
|
virtual |
Answers with the IP device's package information.
[out] | outPkgInfo | Receives the package information. |
Definition at line 692 of file ntv2driverinterface.cpp.
|
virtual |
Answers with the recorded register writes.
Definition at line 1325 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Answers with the NTV2RegInfo of the register associated with the given boolean (i.e., "Can Do") device feature.
[in] | inParamID | Specifies the device features parameter of interest. |
[out] | outRegInfo | Receives the associated NTV2RegInfo. |
Definition at line 1779 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Answers with the NTV2RegInfo of the register associated with the given numeric (i.e., "Get Num") device feature.
[in] | inParamID | Specifies the device features parameter of interest. |
[out] | outRegInfo | Receives the associated NTV2RegInfo. |
Definition at line 1798 of file ntv2driverinterface.cpp.
|
static |
Definition at line 64 of file ntv2driverinterface.cpp.
|
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).
[out] | outAppType | Receives the 32-bit "four CC" value of the application that currently "owns" the device. |
[out] | outProcessID | Receives 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')
.
Reimplemented in CNTV2MacDriverInterface.
Definition at line 1125 of file ntv2driverinterface.cpp.
|
virtual |
[in] | inEnumsID | The NTV2EnumsID of interest. |
Definition at line 1382 of file ntv2driverinterface.cpp.
|
inlinevirtual |
Sends an HEVC message to the NTV2 driver.
pMessage | Points to the HevcMessageHeader that contains the HEVC message. |
Reimplemented in CNTV2WinDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 378 of file ntv2driverinterface.h.
|
virtual |
[in] | inCheckValid | If true, additionally checks CNTV2Card::IsMBSystemValid. Defaults to false. |
Definition at line 1284 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 1309 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 1298 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 1352 of file ntv2driverinterface.cpp.
|
inlinevirtual |
[in] | inParamID | The NTV2BoolParamID of interest. |
Definition at line 422 of file ntv2driverinterface.h.
|
virtual |
Sends a message to the NTV2 driver (the new, improved, preferred way).
pInMessage | Points to the message to pass to the driver. Valid messages start with an NTV2_HEADER and end with an NTV2_TRAILER. |
Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.
Definition at line 584 of file ntv2driverinterface.cpp.
|
virtual |
Opens the specified local, remote or software device.
[in] | inURLSpec | Specifies the local, remote or software device to be opened. |
|
virtual |
Opens a local/physical AJA device so it can be monitored/controlled.
[in] | inDeviceIndex | Specifies a zero-based index number of the AJA device to open. |
Definition at line 131 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Opens the local/physical device connection.
Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.
Definition at line 219 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Peforms the housekeeping details of opening the specified local, remote or software device.
[in] | inURLSpec | Specifies the local, remote or software device to be opened. |
Definition at line 249 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Definition at line 911 of file ntv2driverinterface.cpp.
|
virtual |
Pauses recording WriteRegister calls.
Definition at line 1365 of file ntv2driverinterface.cpp.
|
protectedvirtual |
Definition at line 977 of file ntv2driverinterface.cpp.
|
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.
[in] | inRegNum | Specifies the register number of interest. |
[out] | outValue | Receives 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] | inMask | Optionally specifies a bit mask to be applied after reading the device register. Zero and 0xFFFFFFFF masks are ignored. Defaults to 0xFFFFFFFF (no masking). |
[in] | inShift | Optionally 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). |
Definition at line 218 of file ntv2driverinterface.h.
|
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.
[in] | inRegNum | Specifies the register number of interest. |
[out] | outValue | Receives the register value obtained from the device. |
[in] | inMask | Optionally specifies a bit mask to be applied after reading the device register. Zero and 0xFFFFFFFF masks are ignored. Defaults to 0xFFFFFFFF (no masking). |
[in] | inShift | Optionally 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). |
Reimplemented in CNTV2WinDriverInterface, CNTV2MacDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 403 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 437 of file ntv2driverinterface.cpp.
|
virtual |
Reads the register(s) specified by the given NTV2RegInfo sequence.
[in] | inOutValues | Specifies the register(s) to be read, and upon return, contains their values. |
Definition at line 414 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 1166 of file ntv2driverinterface.cpp.
|
virtual |
Releases exclusive use of the AJA device for the given process, permitting other processes to acquire it.
[in] | inAppType | A 32-bit "four CC" value that helps identify the application that is releasing its exclusive use of the device. |
[in] | inProcessID | Specifies 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.
Reimplemented in CNTV2MacDriverInterface.
Definition at line 1108 of file ntv2driverinterface.cpp.
|
virtual |
A reference-counted version of CNTV2DriverInterface::ReleaseStreamForApplication useful for process groups.
[in] | inAppType | A 32-bit "four CC" value that helps identify the calling application that is releasing exclusive use of the device. |
[in] | inProcessID | Specifies 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.
Reimplemented in CNTV2MacDriverInterface.
Definition at line 1052 of file ntv2driverinterface.cpp.
|
inlinevirtual |
Reimplemented in CNTV2WinDriverInterface, CNTV2MacDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 236 of file ntv2driverinterface.h.
|
inlinevirtual |
Definition at line 588 of file ntv2driverinterface.h.
|
virtual |
Resumes recording WriteRegister calls (after a prior call to PauseRecordRegisterWrites).
Definition at line 1343 of file ntv2driverinterface.cpp.
|
virtual |
Resets my interrupt event tally for the given interrupt type. (This is my count of the number of successful event waits.)
[in] | inEventCode | Specifies the interrupt type. |
[in] | inCount | Specifies the new count value. Use zero to reset the tally. |
Definition at line 332 of file ntv2driverinterface.cpp.
|
static |
Specifies if the next Open call should try to open the device in overlapped mode or not.
[in] | inOverlapMode | Specify true for overlapped mode; otherwise use false. |
Definition at line 66 of file ntv2driverinterface.cpp.
|
static |
Specifies if subsequent Open calls should open the device in shared mode or not.
[in] | inSharedMode | Specify true for shared mode; otherwise use false. |
Definition at line 63 of file ntv2driverinterface.cpp.
|
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).
[in] | inAppType | Specifies the 32-bit "four CC" value that helps identify the application that will "own" the device. |
[in] | inProcessID | Specifies the OS-specific process identifier of the host application process that will "own" the device (see AJAProcess::GetPid). |
Reimplemented in CNTV2MacDriverInterface.
Definition at line 1118 of file ntv2driverinterface.cpp.
Definition at line 458 of file ntv2driverinterface.cpp.
|
virtual |
Starts recording all WriteRegister calls.
Definition at line 1332 of file ntv2driverinterface.cpp.
|
virtual |
Stops recording all WriteRegister calls.
Definition at line 1358 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 864 of file ntv2driverinterface.cpp.
|
virtual |
Definition at line 854 of file ntv2driverinterface.cpp.
|
inlinevirtual |
Definition at line 587 of file ntv2driverinterface.h.
|
virtual |
Reimplemented in CNTV2BareMetalDriverInterface, CNTV2LinuxDriverInterface, CNTV2MacDriverInterface, and CNTV2WinDriverInterface.
Definition at line 546 of file ntv2driverinterface.cpp.
|
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.
[in] | inRegNum | Specifies the register number of interest. |
[in] | inValue | Specifies 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] | inMask | Optionally 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] | inShift | Optionally 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. |
Reimplemented in CNTV2WinDriverInterface, CNTV2MacDriverInterface, CNTV2BareMetalDriverInterface, and CNTV2LinuxDriverInterface.
Definition at line 467 of file ntv2driverinterface.cpp.
|
protected |
My cached device ID.
Definition at line 679 of file ntv2driverinterface.h.
|
protected |
My device index number.
Definition at line 678 of file ntv2driverinterface.h.
|
protected |
True if I'm open and connected to the device.
Definition at line 680 of file ntv2driverinterface.h.
|
protected |
Definition at line 698 of file ntv2driverinterface.h.
|
protected |
Definition at line 699 of file ntv2driverinterface.h.
|
protected |
Definition at line 704 of file ntv2driverinterface.h.
|
protected |
Definition at line 694 of file ntv2driverinterface.h.
|
protected |
Definition at line 695 of file ntv2driverinterface.h.
|
protected |
Definition at line 696 of file ntv2driverinterface.h.
|
protected |
Definition at line 685 of file ntv2driverinterface.h.
|
protected |
Points to remote or software device interface; otherwise NULL for local physical device.
Definition at line 686 of file ntv2driverinterface.h.
|
protected |
Definition at line 697 of file ntv2driverinterface.h.
|
protected |
Definition at line 702 of file ntv2driverinterface.h.
|
protected |
Definition at line 701 of file ntv2driverinterface.h.
|
protected |
My event tallies, one for each interrupt type. Note that these.
Definition at line 688 of file ntv2driverinterface.h.
|
protected |
For subscribing to each possible event, one for each interrupt type.
Definition at line 687 of file ntv2driverinterface.h.
|
protected |
True if recording; otherwise false when not recording.
Definition at line 682 of file ntv2driverinterface.h.
|
protected |
Stores WriteRegister data.
Definition at line 690 of file ntv2driverinterface.h.
|
mutableprotected |
Guard mutex for mRegWrites.
Definition at line 691 of file ntv2driverinterface.h.
|
protected |
True if actual register writes are skipped while recording.
Definition at line 683 of file ntv2driverinterface.h.