AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
ntv2driverinterface.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2DRIVERINTERFACE_H
9 #define NTV2DRIVERINTERFACE_H
10 
11 #include "ajatypes.h"
12 #include "ntv2enums.h"
13 #include "ntv2nubtypes.h"
14 #include "ntv2nubaccess.h"
15 #include "ntv2publicinterface.h"
16 #include "ntv2utils.h"
17 #include "ntv2devicefeatures.h"
18 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
19  #include "ajabase/system/lock.h"
20 #endif // NTV2_WRITEREG_PROFILING Register Write Profiling
21 #include <string>
22 
23 // Check consistent use of AJA_USE_CPLUSPLUS11 and NTV2_USE_CPLUSPLUS11
24 #ifdef AJA_USE_CPLUSPLUS11
25  #ifndef NTV2_USE_CPLUSPLUS11
26  #error "AJA_USE_CPLUSPLUS11 && !NTV2_USE_CPLUSPLUS11"
27  #else
28  //#warning "AJA_USE_CPLUSPLUS11 && NTV2_USE_CPLUSPLUS11"
29  #endif
30 #else
31  #ifdef NTV2_USE_CPLUSPLUS11
32  #error "!AJA_USE_CPLUSPLUS11 && NTV2_USE_CPLUSPLUS11"
33  #else
34  //#warning "!AJA_USE_CPLUSPLUS11 && !NTV2_USE_CPLUSPLUS11"
35  #endif
36 #endif
37 
38 #if defined(AJALinux ) || defined(AJAMac)
39 // #include <sys/types.h> // ** MrBill ** Not needed for AJALinux, needed for AJAMac?
40 // #include <netinet/in.h> // ** MrBill ** Not needed for AJALinux, needed for AJAMac?
41  #include <unistd.h> // for usleep
42 #elif defined(MSWindows)
43  #include <WinSock2.h>
44  #include <assert.h>
45 #endif
46 
47 
48 #define AsNTV2DriverInterfaceRef(_x_) reinterpret_cast<CNTV2DriverInterface&>(_x_)
49 #define AsNTV2DriverInterfacePtr(_x_) reinterpret_cast<CNTV2DriverInterface*>(_x_)
50 
51 
52 typedef struct
53 {
54  std::string buildNumber;
55  std::string packageNumber;
56  std::string date;
57  std::string time;
59 
60 
65 {
66  // STATIC (CLASS) METHODS
67  public:
68  static NTV2StringList GetLegalSchemeNames (void);
69  static inline UWord MaxNumDevices (void) {return 32;}
70 
76  static void SetShareMode (const bool inSharedMode);
77  static bool GetShareMode (void);
78 
84  static void SetOverlappedMode (const bool inOverlapMode);
85  static bool GetOverlappedMode (void);
86 
90  public:
93  virtual ~CNTV2DriverInterface();
94 
95  private:
102  AJA_VIRTUAL CNTV2DriverInterface & operator = (const CNTV2DriverInterface & inRHS);
103 
109  CNTV2DriverInterface (const CNTV2DriverInterface & inObjToCopy);
111 
112  public:
116  AJA_VIRTUAL NTV2DeviceID GetDeviceID (void);
118  AJA_VIRTUAL inline UWord GetIndexNumber (void) const {return _boardNumber;}
119  AJA_VIRTUAL inline bool IsOpen (void) const {return _boardOpened;}
120 
128  AJA_VIRTUAL bool IsDeviceReady (const bool inCheckValid = false);
129  AJA_VIRTUAL bool IsMBSystemValid (void);
130  AJA_VIRTUAL bool IsMBSystemReady (void);
131  AJA_VIRTUAL inline bool IsIPDevice (void) {return ::NTV2DeviceCanDoIP(GetDeviceID());}
132 
137 
144  AJA_VIRTUAL bool Open (const UWord inDeviceIndex);
145 
152  AJA_VIRTUAL bool Open (const std::string & inURLSpec);
153 
160  AJA_VIRTUAL bool Close (void);
162 
166 
189  AJA_VIRTUAL bool WriteRegister (const ULWord inRegNum, const ULWord inValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0);
190 
205  AJA_VIRTUAL bool ReadRegister (const ULWord inRegNum, ULWord & outValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0);
206 
222  template<typename T> bool ReadRegister(const ULWord inRegNum, T & outValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0)
223  {
224  ULWord regValue(0);
225  bool result (ReadRegister(inRegNum, regValue, inMask, inShift));
226  if (result)
227  outValue = T(regValue);
228  return result;
229  }
230 
231 #if !defined(READREGMULTICHANGE)
232 
238  AJA_VIRTUAL bool ReadRegisters (NTV2RegisterReads & inOutValues);
239 #endif // !defined(READREGMULTICHANGE)
240  AJA_VIRTUAL bool RestoreHardwareProcampRegisters() = 0;
242 
246 
264  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
265  const bool inIsRead,
266  const ULWord inFrameNumber,
267  ULWord * pFrameBuffer,
268  const ULWord inCardOffsetBytes,
269  const ULWord inTotalByteCount,
270  const bool inSynchronous = true);
271 
299  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
300  const bool inIsRead,
301  const ULWord inFrameNumber,
302  ULWord * pFrameBuffer,
303  const ULWord inCardOffsetBytes,
304  const ULWord inTotalByteCount,
305  const ULWord inNumSegments,
306  const ULWord inHostPitchPerSeg,
307  const ULWord inCardPitchPerSeg,
308  const bool inSynchronous = true) = 0;
309 
310  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
311  const NTV2Channel inDMAChannel,
312  const bool inTarget,
313  const ULWord inFrameNumber,
314  const ULWord inCardOffsetBytes,
315  const ULWord inByteCount,
316  const ULWord inNumSegments,
317  const ULWord inSegmentHostPitch,
318  const ULWord inSegmentCardPitch,
319  const PCHANNEL_P2P_STRUCT & inP2PData) = 0;
321 
325  AJA_VIRTUAL bool ConfigureSubscription (const bool bSubscribe, const INTERRUPT_ENUMS inInterruptType, PULWord & outSubcriptionHdl);
327  AJA_VIRTUAL bool ConfigureInterrupt (const bool bEnable, const INTERRUPT_ENUMS eInterruptType) = 0;
334  AJA_VIRTUAL bool GetInterruptCount (const INTERRUPT_ENUMS eInterrupt, ULWord & outCount) = 0;
335 
336  AJA_VIRTUAL bool WaitForInterrupt (const INTERRUPT_ENUMS eInterrupt, const ULWord timeOutMs = 68);
337 
338  AJA_VIRTUAL HANDLE GetInterruptEvent (const INTERRUPT_ENUMS eInterruptType);
346  AJA_VIRTUAL bool GetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, ULWord & outCount);
347 
355  AJA_VIRTUAL bool SetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, const ULWord inCount);
357 
361 
367  AJA_VIRTUAL bool AutoCirculate (AUTOCIRCULATE_DATA & pAutoCircData);
368 
375  AJA_VIRTUAL bool NTV2Message (NTV2_HEADER * pInMessage);
376 
382  AJA_VIRTUAL inline bool HevcSendMessage (HevcMessageHeader * pMessage) {(void) pMessage; return false;}
383 
384  AJA_VIRTUAL bool ControlDriverDebugMessages (NTV2_DriverDebugMessageSet msgSet, bool enable) = 0;
386 
387  AJA_VIRTUAL inline ULWord GetNumFrameBuffers (void) const {return _ulNumFrameBuffers;}
388  AJA_VIRTUAL inline ULWord GetFrameBufferSize (void) const {return _ulFrameBufferSize;}
389 
396  AJA_VIRTUAL bool DriverGetBitFileInformation (BITFILE_INFO_STRUCT & outBitFileInfo, const NTV2BitFileType inBitFileType = NTV2_VideoProcBitFile);
397 
403  AJA_VIRTUAL bool DriverGetBuildInformation (BUILD_INFO_STRUCT & outBuildInfo);
404 
410  AJA_VIRTUAL bool GetPackageInformation (PACKAGE_INFO_STRUCT & outPkgInfo);
411 
412  AJA_VIRTUAL bool BitstreamWrite (const NTV2Buffer & inBuffer, const bool inFragment, const bool inSwap);
413  AJA_VIRTUAL bool BitstreamReset (const bool inConfiguration, const bool inInterface);
414  AJA_VIRTUAL bool BitstreamStatus (NTV2ULWordVector & outRegValues);
415  AJA_VIRTUAL bool BitstreamLoad (const bool inSuspend, const bool inResume);
416 
420 
425  AJA_VIRTUAL bool IsSupported (const NTV2BoolParamID inParamID) // New in SDK 17.0
426  { ULWord value(0);
427  GetBoolParam (ULWord(inParamID), value);
428  return bool(value);
429  }
434  AJA_VIRTUAL ULWord GetNumSupported (const NTV2NumericParamID inParamID) // New in SDK 17.0
435  { ULWord value(0);
436  GetNumericParam (ULWord(inParamID), value);
437  return value;
438  }
439 
444  AJA_VIRTUAL ULWordSet GetSupportedItems (const NTV2EnumsID inEnumsID); // New in SDK 17.0
446 
447  // stream channel operations
448  AJA_VIRTUAL bool StreamChannelOps (const NTV2Channel inChannel,
449  ULWord flags,
450  NTV2StreamChannel& status);
451 
452  // stream buffer operations
453  AJA_VIRTUAL bool StreamBufferOps (const NTV2Channel inChannel,
454  NTV2_POINTER inBuffer,
455  ULWord64 bufferCookie,
456  ULWord flags,
457  NTV2StreamBuffer& status);
458 
462 
480  AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID);
481 
498  AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID);
499 
518  AJA_VIRTUAL bool AcquireStreamForApplication (const ULWord inAppType, const int32_t inProcessID);
519 
536  AJA_VIRTUAL bool ReleaseStreamForApplication (const ULWord inAppType, const int32_t inProcessID);
537 
551  AJA_VIRTUAL bool SetStreamingApplication (const ULWord inAppType, const int32_t inProcessID);
552 
565  AJA_VIRTUAL bool GetStreamingApplication (ULWord & outAppType, int32_t & outProcessID);
567 
568  AJA_VIRTUAL bool ReadRP188Registers (const NTV2Channel inChannel, RP188_STRUCT * pRP188Data);
569  AJA_VIRTUAL inline std::string GetHostName (void) const {return IsRemote() ? _pRPCAPI->Name() : "";}
570  AJA_VIRTUAL inline bool IsRemote (void) const {return _pRPCAPI ? true : false;}
571 
574  AJA_VIRTUAL inline std::string GetDescription (void) const {return IsRemote() ? _pRPCAPI->Description() : "";} // New in SDK 17.0
575 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_0)
576  AJA_VIRTUAL inline NTV2NubProtocolVersion GetNubProtocolVersion (void) const {return 0;}
577 #endif
578 
579  // DEPRECATED FUNCTIONS
580 #if !defined(NTV2_DEPRECATE_16_0)
581  // SuspendAudio/ResumeAudio were only implemented on MacOS
582  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(bool SuspendAudio(void)) {return true;}
583  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(bool ResumeAudio(const ULWord inFBSize)) {(void) inFBSize; return true;}
584  // Memory Mapping/Unmapping
585  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool MapFrameBuffers(void)) {return false;}
586  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool UnmapFrameBuffers(void)) {return true;}
587  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool MapRegisters(void)) {return false;}
588  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool UnmapRegisters(void)) {return true;}
589  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool MapXena2Flash(void)) {return false;}
590  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool UnmapXena2Flash(void)) {return true;}
591  // Others
592  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool DmaUnlock(void)) {return false;}
593  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool CompleteMemoryForDMA(ULWord * pHostBuffer)) {(void)pHostBuffer; return false;}
594  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool PrepareMemoryForDMA(ULWord * pHostBuffer, const ULWord inNumBytes)) {(void)pHostBuffer; (void)inNumBytes; return false;}
595  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(bool GetInterruptCount(const INTERRUPT_ENUMS eInt, ULWord *pCnt)) {return pCnt ? GetInterruptCount(eInt, *pCnt) : false;}
596  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool ReadRegisterMulti(const ULWord numRegs, ULWord * pOutWhichRegFailed, NTV2RegInfo aRegs[]));
597  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(ULWord GetPCISlotNumber(void) const) {return _pciSlot;}
598  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(Word SleepMs(const LWord msec));
599  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(ULWord GetAudioFrameBufferNumber(void) const) {return GetNumFrameBuffers() - 1;}
600 #endif // !defined(NTV2_DEPRECATE_16_0)
601 #if !defined(NTV2_DEPRECATE_16_3)
602  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool SetDefaultDeviceForPID(const int32_t procID)) {(void)procID; return false;}
603  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool IsDefaultDeviceForPID(const int32_t procID)) {(void)procID; return false;}
604 #endif // !defined(NTV2_DEPRECATE_16_3)
605 
606 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
607 
610  AJA_VIRTUAL bool GetRecordedRegisterWrites (NTV2RegisterWrites & outRegWrites) const;
612  AJA_VIRTUAL bool StartRecordRegisterWrites (const bool inSkipActualWrites = false);
613  AJA_VIRTUAL bool IsRecordingRegisterWrites (void) const;
614  AJA_VIRTUAL bool StopRecordRegisterWrites (void);
615  AJA_VIRTUAL bool PauseRecordRegisterWrites (void);
616  AJA_VIRTUAL bool ResumeRecordRegisterWrites (void);
617  AJA_VIRTUAL ULWord GetNumRecordedRegisterWrites (void) const;
618 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling
620 
621 
622  // PROTECTED METHODS
623  protected:
629  AJA_VIRTUAL bool OpenRemote (const std::string & inURLSpec);
630  AJA_VIRTUAL bool CloseRemote (void);
631  AJA_VIRTUAL bool OpenLocalPhysical (const UWord inDeviceIndex);
632  AJA_VIRTUAL bool CloseLocalPhysical (void);
633  AJA_VIRTUAL bool ParseFlashHeader (BITFILE_INFO_STRUCT & outBitfileInfo);
634  AJA_VIRTUAL bool GetBoolParam (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
635  AJA_VIRTUAL bool GetNumericParam (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
636 
643  AJA_VIRTUAL bool GetRegInfoForBoolParam (const NTV2BoolParamID inParamID, NTV2RegInfo & outRegInfo);
650  AJA_VIRTUAL bool GetRegInfoForNumericParam (const NTV2NumericParamID inParamID, NTV2RegInfo & outRegInfo);
651 
656  AJA_VIRTUAL void BumpEventCount (const INTERRUPT_ENUMS eInterruptType);
657 
661  AJA_VIRTUAL void FinishOpen (void);
662  AJA_VIRTUAL bool ReadFlashULWord (const ULWord inAddress, ULWord & outValue, const ULWord inRetryCount = 1000);
663 
664 
665  // PRIVATE TYPES
666  protected:
667  typedef std::vector<ULWord> _EventCounts;
668  typedef std::vector<PULWord> _EventHandles;
669 
670 
671  // MEMBER DATA
672  protected:
676 #if defined(NTV2_WRITEREG_PROFILING)
679 #endif // NTV2_WRITEREG_PROFILING
684 #if defined(NTV2_WRITEREG_PROFILING)
687 #endif // NTV2_WRITEREG_PROFILING
688 #if !defined(NTV2_DEPRECATE_16_0)
695 #endif // !defined(NTV2_DEPRECATE_16_0)
698  ULWord _pciSlot; // DEPRECATE!
699 
700 }; // CNTV2DriverInterface
701 
702 #endif // NTV2DRIVERINTERFACE_H
PACKAGE_INFO_STRUCT::buildNumber
std::string buildNumber
Definition: ntv2driverinterface.h:54
LWord
int32_t LWord
Definition: ajatypes.h:245
CNTV2DriverInterface::mSkipRegWrites
bool mSkipRegWrites
True if actual register writes are skipped while recording.
Definition: ntv2driverinterface.h:678
HANDLE
short HANDLE
Definition: ajatypes.h:304
NTV2StreamChannel
Definition: ntv2publicinterface.h:8701
INTERRUPT_ENUMS
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
BUILD_INFO_STRUCT
Definition: ntv2publicinterface.h:4887
NTV2_DriverDebugMessageSet
NTV2_DriverDebugMessageSet
Definition: ntv2enums.h:3743
NTV2_VideoProcBitFile
@ NTV2_VideoProcBitFile
Definition: ntv2enums.h:3271
ntv2devicefeatures.h
Declares device capability functions.
CNTV2DriverInterface::_pXena2FlashBaseAddress
ULWord * _pXena2FlashBaseAddress
Definition: ntv2driverinterface.h:692
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific Frame Store. They're also commonly used to i...
Definition: ntv2enums.h:1305
CNTV2DriverInterface::_boardOpened
bool _boardOpened
True if I'm open and connected to the device.
Definition: ntv2driverinterface.h:675
NTV2Buffer
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
Definition: ntv2publicinterface.h:5967
CNTV2DriverInterface::_programStatus
ULWord _programStatus
Definition: ntv2driverinterface.h:680
CNTV2DriverInterface::_ulNumFrameBuffers
ULWord _ulNumFrameBuffers
Definition: ntv2driverinterface.h:696
NTV2DeviceID
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
CNTV2DriverInterface::_pCh2FrameBaseAddress
ULWord * _pCh2FrameBaseAddress
Definition: ntv2driverinterface.h:694
CNTV2DriverInterface::_ulFrameBufferSize
ULWord _ulFrameBufferSize
Definition: ntv2driverinterface.h:697
PACKAGE_INFO_STRUCT::packageNumber
std::string packageNumber
Definition: ntv2driverinterface.h:55
PULWord
uint32_t * PULWord
Definition: ajatypes.h:247
CNTV2DriverInterface::_boardNumber
UWord _boardNumber
My device index number.
Definition: ntv2driverinterface.h:673
CNTV2DriverInterface::_boardID
NTV2DeviceID _boardID
My cached device ID.
Definition: ntv2driverinterface.h:674
CNTV2DriverInterface::SuspendAudio
virtual bool SuspendAudio(void)
Definition: ntv2driverinterface.h:582
CNTV2DriverInterface::mEventCounts
_EventCounts mEventCounts
My event tallies, one for each interrupt type. Note that these.
Definition: ntv2driverinterface.h:683
ajatypes.h
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
CNTV2DriverInterface::IsSupported
virtual bool IsSupported(const NTV2BoolParamID inParamID)
Definition: ntv2driverinterface.h:425
CNTV2DriverInterface::HevcSendMessage
virtual bool HevcSendMessage(HevcMessageHeader *pMessage)
Sends an HEVC message to the NTV2 driver.
Definition: ntv2driverinterface.h:382
CNTV2DriverInterface::mRegWrites
NTV2RegisterWrites mRegWrites
Stores WriteRegister data.
Definition: ntv2driverinterface.h:685
NTV2DMAEngine
NTV2DMAEngine
Definition: ntv2enums.h:1801
NTV2NumericParamID
enum _NTV2NumericParamID NTV2NumericParamID
Used with CNTV2DriverInterface::GetNumericParam to determine device capabilities.
ULWordSet
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
Definition: ntv2publicinterface.h:53
lock.h
Declares the AJALock class.
NTV2NubProtocolVersion
ULWord NTV2NubProtocolVersion
Definition: ntv2nubtypes.h:18
ULWord
uint32_t ULWord
Definition: ajatypes.h:246
NTV2BitFileType
NTV2BitFileType
Definition: ntv2enums.h:3269
CNTV2DriverInterface::ReadRegister
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 virtu...
Definition: ntv2driverinterface.h:222
NTV2EnumsID
enum _NTV2EnumsID NTV2EnumsID
Identifies NTV2 enumerated types, used in CNTV2DriverInterface::GetSupportedItems.
PACKAGE_INFO_STRUCT::time
std::string time
Definition: ntv2driverinterface.h:57
NTV2_HEADER
All new NTV2 structs start with this common header.
Definition: ntv2publicinterface.h:6899
UWord
uint16_t UWord
Definition: ajatypes.h:244
ntv2enums.h
Enumerations for controlling NTV2 devices.
NTV2RegisterReads
NTV2RegWrites NTV2RegisterReads
Definition: ntv2publicinterface.h:3983
ntv2utils.h
Declares numerous NTV2 utility functions.
Word
int16_t Word
Definition: ajatypes.h:243
PACKAGE_INFO_STRUCT
Definition: ntv2driverinterface.h:52
AJA_VIRTUAL
#define AJA_VIRTUAL
Definition: ajatypes.h:153
PACKAGE_INFO_STRUCT::date
std::string date
Definition: ntv2driverinterface.h:56
NTV2ULWordVector
std::vector< ULWord > NTV2ULWordVector
An ordered sequence of ULWords.
Definition: ntv2publicinterface.h:3794
RP188_STRUCT
Definition: ntv2publicinterface.h:4052
hevcMessageHeader
Definition: ntv2publicinterface.h:9761
NTV2StringList
std::vector< std::string > NTV2StringList
Definition: ntv2utils.h:1134
CNTV2DriverInterface::GetNumSupported
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
Definition: ntv2driverinterface.h:434
AJALock
Definition: lock.h:30
NTV2BoolParamID
enum _NTV2BoolParamID NTV2BoolParamID
Used with CNTV2DriverInterface::GetBoolParam to determine device capabilities.
CNTV2DriverInterface::_EventHandles
std::vector< PULWord > _EventHandles
Definition: ntv2driverinterface.h:668
CNTV2DriverInterface::GetDescription
virtual std::string GetDescription(void) const
Definition: ntv2driverinterface.h:574
NTV2_SHOULD_BE_DEPRECATED
#define NTV2_SHOULD_BE_DEPRECATED(__f__)
Definition: ajatypes.h:616
NTV2_DEPRECATED_f
#define NTV2_DEPRECATED_f(__f__)
Definition: ajatypes.h:646
CNTV2DriverInterface::GetNumFrameBuffers
virtual ULWord GetNumFrameBuffers(void) const
Definition: ntv2driverinterface.h:387
false
#define false
Definition: ntv2devicefeatures.h:25
NTV2DeviceCanDoIP
bool NTV2DeviceCanDoIP(const NTV2DeviceID inDeviceID)
Definition: ntv2devicefeatures.hpp:3526
NTV2RegisterWrites
std::vector< NTV2RegInfo > NTV2RegisterWrites
Definition: ntv2publicinterface.h:3980
CNTV2DriverInterface::_pRegisterBaseAddressLength
ULWord _pRegisterBaseAddressLength
Definition: ntv2driverinterface.h:691
ULWord64
uint64_t ULWord64
Definition: ajatypes.h:249
CNTV2DriverInterface::_pCh1FrameBaseAddress
ULWord * _pCh1FrameBaseAddress
Definition: ntv2driverinterface.h:693
AUTOCIRCULATE_P2P_STRUCT
Definition: ntv2publicinterface.h:4626
AJAExport
#define AJAExport
Definition: export.h:33
CNTV2DriverInterface::GetFrameBufferSize
virtual ULWord GetFrameBufferSize(void) const
Definition: ntv2driverinterface.h:388
true
#define true
Definition: ntv2devicefeatures.h:26
CNTV2DriverInterface::mInterruptEventHandles
_EventHandles mInterruptEventHandles
For subscribing to each possible event, one for each interrupt type.
Definition: ntv2driverinterface.h:682
CNTV2DriverInterface::mRecordRegWrites
bool mRecordRegWrites
True if recording; otherwise false when not recording.
Definition: ntv2driverinterface.h:677
PPACKAGE_INFO_STRUCT
struct PACKAGE_INFO_STRUCT * PPACKAGE_INFO_STRUCT
ntv2nubtypes.h
Declares data types and structures used in NTV2 "nub" packets.
CNTV2DriverInterface::_EventCounts
std::vector< ULWord > _EventCounts
Definition: ntv2driverinterface.h:667
ntv2publicinterface.h
Declares enums and structs used by all platform drivers and the SDK.
CNTV2DriverInterface::_pRegisterBaseAddress
ULWord * _pRegisterBaseAddress
Definition: ntv2driverinterface.h:690
CNTV2DriverInterface::mRegWritesLock
AJALock mRegWritesLock
Guard mutex for mRegWrites.
Definition: ntv2driverinterface.h:686
NTV2StreamBuffer
Definition: ntv2publicinterface.h:8741
CNTV2DriverInterface
I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
Definition: ntv2driverinterface.h:64
NTV2RPCClientAPI
Base class of objects that can connect to, and operate remote or fake devices. I have three general A...
Definition: ntv2nubaccess.h:176
CNTV2DriverInterface::_pciSlot
ULWord _pciSlot
Definition: ntv2driverinterface.h:698
CNTV2DriverInterface::_pFrameBaseAddress
ULWord * _pFrameBaseAddress
Definition: ntv2driverinterface.h:689
BITFILE_INFO_STRUCT
Definition: ntv2publicinterface.h:4772
ntv2nubaccess.h
Declares NTV2 "nub" client functions.
NTV2RegInfo
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
Definition: ntv2publicinterface.h:3900
CNTV2DriverInterface::ResumeAudio
virtual bool ResumeAudio(const ULWord inFBSize)
Definition: ntv2driverinterface.h:583
AUTOCIRCULATE_DATA
Definition: ntv2publicinterface.h:4338
CNTV2DriverInterface::_pRPCAPI
NTV2RPCAPI * _pRPCAPI
Points to remote or software device interface; otherwise NULL for local physical device.
Definition: ntv2driverinterface.h:681