AJA NTV2 SDK  17.5.0.1492
NTV2 SDK 17.5.0.1492
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 typedef struct
49 {
50  std::string buildNumber;
51  std::string packageNumber;
52  std::string date;
53  std::string time;
55 
56 
61 {
62  // STATIC (CLASS) METHODS
63  public:
64  static NTV2StringList GetLegalSchemeNames (void);
65  static inline UWord MaxNumDevices (void) {return 32;}
66 
72  static void SetShareMode (const bool inSharedMode);
73  static bool GetShareMode (void);
74 
80  static void SetOverlappedMode (const bool inOverlapMode);
81  static bool GetOverlappedMode (void);
82 
86  public:
89  virtual ~CNTV2DriverInterface();
90 
91  private:
98  CNTV2DriverInterface & operator = (const CNTV2DriverInterface & inRHS);
99 
105  CNTV2DriverInterface (const CNTV2DriverInterface & inObjToCopy);
107 
108  public:
112  AJA_VIRTUAL NTV2DeviceID GetDeviceID (void);
114  AJA_VIRTUAL inline UWord GetIndexNumber (void) const {return _boardNumber;}
115  AJA_VIRTUAL inline bool IsOpen (void) const {return _boardOpened;}
116 
124  AJA_VIRTUAL bool IsDeviceReady (const bool inCheckValid = false);
125  AJA_VIRTUAL bool IsMBSystemValid (void);
126  AJA_VIRTUAL bool IsMBSystemReady (void);
127  AJA_VIRTUAL inline bool IsIPDevice (void) {return ::NTV2DeviceCanDoIP(GetDeviceID());}
128  AJA_VIRTUAL inline bool Is25GIPDevice (void) {return ::NTV2DeviceCanDo25GIP(GetDeviceID());}
129  AJA_VIRTUAL bool IsLPSystemReady (void);
131 
135 
142  AJA_VIRTUAL bool Open (const UWord inDeviceIndex);
143 
150  AJA_VIRTUAL bool Open (const std::string & inURLSpec);
151 
158  AJA_VIRTUAL bool Close (void);
160 
164 
187  AJA_VIRTUAL bool WriteRegister (const ULWord inRegNum, const ULWord inValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0);
188 
203  AJA_VIRTUAL bool ReadRegister (const ULWord inRegNum, ULWord & outValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0);
204 
220  template<typename T> bool ReadRegister(const ULWord inRegNum, T & outValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0)
221  {
222  ULWord regValue(0);
223  bool result (ReadRegister(inRegNum, regValue, inMask, inShift));
224  if (result)
225  outValue = T(regValue);
226  return result;
227  }
228 
229 #if !defined(READREGMULTICHANGE)
230 
236  AJA_VIRTUAL bool ReadRegisters (NTV2RegisterReads & inOutValues);
237 #endif // !defined(READREGMULTICHANGE)
238  //AJA_VIRTUAL inline bool RestoreHardwareProcampRegisters (void) {return false;}
240 
244 
262  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
263  const bool inIsRead,
264  const ULWord inFrameNumber,
265  ULWord * pFrameBuffer,
266  const ULWord inCardOffsetBytes,
267  const ULWord inTotalByteCount,
268  const bool inSynchronous = true);
269 
297  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
298  const bool inIsRead,
299  const ULWord inFrameNumber,
300  ULWord * pFrameBuffer,
301  const ULWord inCardOffsetBytes,
302  const ULWord inTotalByteCount,
303  const ULWord inNumSegments,
304  const ULWord inHostPitchPerSeg,
305  const ULWord inCardPitchPerSeg,
306  const bool inSynchronous = true);
307 
308  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
309  const NTV2Channel inDMAChannel,
310  const bool inTarget,
311  const ULWord inFrameNumber,
312  const ULWord inCardOffsetBytes,
313  const ULWord inByteCount,
314  const ULWord inNumSegments,
315  const ULWord inSegmentHostPitch,
316  const ULWord inSegmentCardPitch,
317  const PCHANNEL_P2P_STRUCT & inP2PData);
319 
323  AJA_VIRTUAL bool ConfigureSubscription (const bool bSubscribe, const INTERRUPT_ENUMS inInterruptType, PULWord & outSubcriptionHdl);
325  AJA_VIRTUAL bool ConfigureInterrupt (const bool bEnable, const INTERRUPT_ENUMS eInterruptType);
332  AJA_VIRTUAL bool GetInterruptCount (const INTERRUPT_ENUMS eInterrupt, ULWord & outCount);
333 
334  AJA_VIRTUAL bool WaitForInterrupt (const INTERRUPT_ENUMS eInterrupt, const ULWord timeOutMs = 68);
335 
336  AJA_VIRTUAL HANDLE GetInterruptEvent (const INTERRUPT_ENUMS eInterruptType);
344  AJA_VIRTUAL bool GetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, ULWord & outCount);
345 
353  AJA_VIRTUAL bool SetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, const ULWord inCount);
355 
359 
365  AJA_VIRTUAL bool AutoCirculate (AUTOCIRCULATE_DATA & pAutoCircData);
366 
373  AJA_VIRTUAL bool NTV2Message (NTV2_HEADER * pInMessage);
374 
380  AJA_VIRTUAL inline bool HevcSendMessage (HevcMessageHeader * pMessage) {(void) pMessage; return false;}
381 
382  AJA_VIRTUAL bool ControlDriverDebugMessages (NTV2_DriverDebugMessageSet msgSet, bool enable);
384 
385  AJA_VIRTUAL inline ULWord GetNumFrameBuffers (void) const {return _ulNumFrameBuffers;}
386  AJA_VIRTUAL inline ULWord GetFrameBufferSize (void) const {return _ulFrameBufferSize;}
387 
394  AJA_VIRTUAL bool DriverGetBitFileInformation (BITFILE_INFO_STRUCT & outBitFileInfo, const NTV2BitFileType inBitFileType = NTV2_VideoProcBitFile);
395 
401  AJA_VIRTUAL bool DriverGetBuildInformation (BUILD_INFO_STRUCT & outBuildInfo);
402 
408  AJA_VIRTUAL bool GetPackageInformation (PACKAGE_INFO_STRUCT & outPkgInfo);
409 
410  AJA_VIRTUAL bool BitstreamWrite (const NTV2Buffer & inBuffer, const bool inFragment, const bool inSwap);
411  AJA_VIRTUAL bool BitstreamReset (const bool inConfiguration, const bool inInterface);
412  AJA_VIRTUAL bool BitstreamStatus (NTV2ULWordVector & outRegValues);
413  AJA_VIRTUAL bool BitstreamLoad (const bool inSuspend, const bool inResume);
414 
418 
424  AJA_VIRTUAL bool IsSupported (const NTV2BoolParamID inParamID) // New in SDK 17.0
425  { ULWord value(0);
426  if (IsOpen())
427  GetBoolParam (ULWord(inParamID), value);
428  return bool(value);
429  }
435  AJA_VIRTUAL ULWord GetNumSupported (const NTV2NumericParamID inParamID) // New in SDK 17.0
436  { ULWord value(0);
437  if (IsOpen())
438  GetNumericParam (ULWord(inParamID), value);
439  return value;
440  }
441 
447  AJA_VIRTUAL ULWordSet GetSupportedItems (const NTV2EnumsID inEnumsID); // New in SDK 17.0
449 
450  // stream channel operations
451  AJA_VIRTUAL bool StreamChannelOps (const NTV2Channel inChannel,
452  ULWord flags,
453  NTV2StreamChannel& status);
454 
455  // stream buffer operations
456  AJA_VIRTUAL bool StreamBufferOps (const NTV2Channel inChannel,
457  NTV2Buffer& inBuffer,
458  ULWord64 bufferCookie,
459  ULWord flags,
460  NTV2StreamBuffer& status);
461 
465 
483  AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID);
484 
501  AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID);
502 
521  AJA_VIRTUAL bool AcquireStreamForApplication (const ULWord inAppType, const int32_t inProcessID);
522 
539  AJA_VIRTUAL bool ReleaseStreamForApplication (const ULWord inAppType, const int32_t inProcessID);
540 
554  AJA_VIRTUAL bool SetStreamingApplication (const ULWord inAppType, const int32_t inProcessID);
555 
568  AJA_VIRTUAL bool GetStreamingApplication (ULWord & outAppType, int32_t & outProcessID);
570 
571  AJA_VIRTUAL bool ReadRP188Registers (const NTV2Channel inChannel, RP188_STRUCT * pRP188Data);
572  AJA_VIRTUAL inline std::string GetHostName (void) const {return IsRemote() ? _pRPCAPI->Name() : "";}
573  AJA_VIRTUAL inline bool IsRemote (void) const {return _pRPCAPI ? true : false;}
574 
577  AJA_VIRTUAL std::string GetDescription (void) const; // New in SDK 17.0
578 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3)
579  AJA_VIRTUAL inline NTV2NubProtocolVersion GetNubProtocolVersion (void) const {return 0;}
580 #endif
581 
584  virtual NTV2Dictionary ConnectParams (void) const; // New in SDK 17.1
585 
586  // DEPRECATED FUNCTIONS
587 #if !defined(NTV2_DEPRECATE_16_0)
588  // SuspendAudio/ResumeAudio were only implemented on MacOS
589  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(bool SuspendAudio(void)) {return true;}
590  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(bool ResumeAudio(const ULWord inFBSize)) {(void) inFBSize; return true;}
591  // Memory Mapping/Unmapping
592  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool MapFrameBuffers(void)) {return false;}
593  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool UnmapFrameBuffers(void)) {return true;}
594  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool MapRegisters(void)) {return false;}
595  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool UnmapRegisters(void)) {return true;}
596  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool MapXena2Flash(void)) {return false;}
597  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool UnmapXena2Flash(void)) {return true;}
598  // Others
599  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool DmaUnlock(void)) {return false;}
600  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool CompleteMemoryForDMA(ULWord * pHostBuffer)) {(void)pHostBuffer; return false;}
601  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool PrepareMemoryForDMA(ULWord * pHostBuffer, const ULWord inNumBytes)) {(void)pHostBuffer; (void)inNumBytes; return false;}
602  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(bool GetInterruptCount(const INTERRUPT_ENUMS eInt, ULWord *pCnt)) {return pCnt ? GetInterruptCount(eInt, *pCnt) : false;}
603  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool ReadRegisterMulti(const ULWord numRegs, ULWord * pOutWhichRegFailed, NTV2RegInfo aRegs[]));
604  AJA_VIRTUAL inline NTV2_DEPRECATED_f(ULWord GetPCISlotNumber(void) const) {return _pciSlot;}
605  AJA_VIRTUAL NTV2_DEPRECATED_f(Word SleepMs(const LWord msec));
606  AJA_VIRTUAL inline NTV2_SHOULD_BE_DEPRECATED(ULWord GetAudioFrameBufferNumber(void) const) {return GetNumFrameBuffers() - 1;}
607 #endif // !defined(NTV2_DEPRECATE_16_0)
608 #if !defined(NTV2_DEPRECATE_16_3)
609  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool SetDefaultDeviceForPID(const int32_t procID)) {(void)procID; return false;}
610  AJA_VIRTUAL inline NTV2_DEPRECATED_f(bool IsDefaultDeviceForPID(const int32_t procID)) {(void)procID; return false;}
611 #endif // !defined(NTV2_DEPRECATE_16_3)
612 
613 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
614 
617  AJA_VIRTUAL bool GetRecordedRegisterWrites (NTV2RegisterWrites & outRegWrites) const;
619  AJA_VIRTUAL bool StartRecordRegisterWrites (const bool inSkipActualWrites = false);
620  AJA_VIRTUAL bool IsRecordingRegisterWrites (void) const;
621  AJA_VIRTUAL bool StopRecordRegisterWrites (void);
622  AJA_VIRTUAL bool PauseRecordRegisterWrites (void);
623  AJA_VIRTUAL bool ResumeRecordRegisterWrites (void);
624  AJA_VIRTUAL ULWord GetNumRecordedRegisterWrites (void) const;
625 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling
627 
628 
629  // PROTECTED METHODS
630  protected:
636  AJA_VIRTUAL bool OpenRemote (const NTV2DeviceSpecParser & inSpec);
637  AJA_VIRTUAL bool CloseRemote (void);
638  AJA_VIRTUAL bool OpenLocalPhysical (const UWord inDeviceIndex);
639  AJA_VIRTUAL bool CloseLocalPhysical (void);
640  AJA_VIRTUAL bool ParseFlashHeader (BITFILE_INFO_STRUCT & outBitfileInfo);
641  AJA_VIRTUAL bool GetBoolParam (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
642  AJA_VIRTUAL bool GetNumericParam (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
643 
650  AJA_VIRTUAL bool GetRegInfoForBoolParam (const NTV2BoolParamID inParamID, NTV2RegInfo & outRegInfo);
657  AJA_VIRTUAL bool GetRegInfoForNumericParam (const NTV2NumericParamID inParamID, NTV2RegInfo & outRegInfo);
658 
663  AJA_VIRTUAL void BumpEventCount (const INTERRUPT_ENUMS eInterruptType);
664 
668  AJA_VIRTUAL void FinishOpen (void);
669  AJA_VIRTUAL bool ReadFlashULWord (const ULWord inAddress, ULWord & outValue, const ULWord inRetryCount = 1000);
670 
671 
672  // PRIVATE TYPES
673  protected:
674  typedef std::vector<ULWord> _EventCounts;
675  typedef std::vector<PULWord> _EventHandles;
676 
677 
678  // MEMBER DATA
679  protected:
683 #if defined(NTV2_WRITEREG_PROFILING)
686 #endif // NTV2_WRITEREG_PROFILING
691 #if defined(NTV2_WRITEREG_PROFILING)
694 #endif // NTV2_WRITEREG_PROFILING
695 #if !defined(NTV2_DEPRECATE_16_0)
702 #endif // !defined(NTV2_DEPRECATE_16_0)
705 #if !defined(NTV2_DEPRECATE_16_0)
706  ULWord _pciSlot; // DEPRECATE!
707 #endif // !defined(NTV2_DEPRECATE_16_0)
708 
709 }; // CNTV2DriverInterface
710 
711 #endif // NTV2DRIVERINTERFACE_H
PACKAGE_INFO_STRUCT::buildNumber
std::string buildNumber
Definition: ntv2driverinterface.h:50
LWord
int32_t LWord
Definition: ajatypes.h:254
CNTV2DriverInterface::mSkipRegWrites
bool mSkipRegWrites
True if actual register writes are skipped while recording.
Definition: ntv2driverinterface.h:685
HANDLE
short HANDLE
Definition: ajatypes.h:317
NTV2StreamChannel
Definition: ntv2publicinterface.h:8861
INTERRUPT_ENUMS
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
BUILD_INFO_STRUCT
Definition: ntv2publicinterface.h:4977
NTV2_DriverDebugMessageSet
NTV2_DriverDebugMessageSet
Definition: ntv2enums.h:3799
NTV2_VideoProcBitFile
@ NTV2_VideoProcBitFile
Definition: ntv2enums.h:3324
ntv2devicefeatures.h
Declares device capability functions.
CNTV2DriverInterface::_pXena2FlashBaseAddress
ULWord * _pXena2FlashBaseAddress
Definition: ntv2driverinterface.h:699
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
Definition: ntv2enums.h:1343
CNTV2DriverInterface::_boardOpened
bool _boardOpened
True if I'm open and connected to the device.
Definition: ntv2driverinterface.h:682
NTV2Buffer
Describes a user-space buffer on the host computer. I have an address and a length,...
Definition: ntv2publicinterface.h:6094
NTV2DeviceCanDo25GIP
bool NTV2DeviceCanDo25GIP(const NTV2DeviceID inDeviceID)
Definition: ntv2devicefeatures.hpp:569
CNTV2DriverInterface::_programStatus
ULWord _programStatus
Definition: ntv2driverinterface.h:687
CNTV2DriverInterface::_ulNumFrameBuffers
ULWord _ulNumFrameBuffers
Definition: ntv2driverinterface.h:703
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:701
CNTV2DriverInterface::_ulFrameBufferSize
ULWord _ulFrameBufferSize
Definition: ntv2driverinterface.h:704
PACKAGE_INFO_STRUCT::packageNumber
std::string packageNumber
Definition: ntv2driverinterface.h:51
PULWord
uint32_t * PULWord
Definition: ajatypes.h:256
CNTV2DriverInterface::_boardNumber
UWord _boardNumber
My device index number.
Definition: ntv2driverinterface.h:680
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::void
j template void())
Definition: json.hpp:4893
CNTV2DriverInterface::_boardID
NTV2DeviceID _boardID
My cached device ID.
Definition: ntv2driverinterface.h:681
CNTV2DriverInterface::SuspendAudio
virtual bool SuspendAudio(void)
Definition: ntv2driverinterface.h:589
CNTV2DriverInterface::mEventCounts
_EventCounts mEventCounts
My event tallies, one for each interrupt type. Note that these.
Definition: ntv2driverinterface.h:690
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:424
CNTV2DriverInterface::HevcSendMessage
virtual bool HevcSendMessage(HevcMessageHeader *pMessage)
Sends an HEVC message to the NTV2 driver.
Definition: ntv2driverinterface.h:380
CNTV2DriverInterface::mRegWrites
NTV2RegisterWrites mRegWrites
Stores WriteRegister data.
Definition: ntv2driverinterface.h:692
NTV2DMAEngine
NTV2DMAEngine
Definition: ntv2enums.h:1842
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:54
lock.h
Declares the AJALock class.
NTV2NubProtocolVersion
ULWord NTV2NubProtocolVersion
Definition: ntv2nubtypes.h:18
ULWord
uint32_t ULWord
Definition: ajatypes.h:255
NTV2BitFileType
NTV2BitFileType
Definition: ntv2enums.h:3322
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:220
NTV2EnumsID
enum _NTV2EnumsID NTV2EnumsID
Identifies NTV2 enumerated types, used in CNTV2DriverInterface::GetSupportedItems.
PACKAGE_INFO_STRUCT::time
std::string time
Definition: ntv2driverinterface.h:53
NTV2_HEADER
All new NTV2 structs start with this common header.
Definition: ntv2publicinterface.h:7065
UWord
uint16_t UWord
Definition: ajatypes.h:253
ntv2enums.h
Enumerations for controlling NTV2 devices.
NTV2RegisterReads
NTV2RegWrites NTV2RegisterReads
Definition: ntv2publicinterface.h:4072
ntv2utils.h
Declares numerous NTV2 utility functions.
Word
int16_t Word
Definition: ajatypes.h:252
PACKAGE_INFO_STRUCT
Definition: ntv2driverinterface.h:48
AJA_VIRTUAL
#define AJA_VIRTUAL
Definition: ajatypes.h:162
PACKAGE_INFO_STRUCT::date
std::string date
Definition: ntv2driverinterface.h:52
NTV2ULWordVector
std::vector< ULWord > NTV2ULWordVector
An ordered sequence of ULWords.
Definition: ntv2publicinterface.h:3840
RP188_STRUCT
Definition: ntv2publicinterface.h:4141
hevcMessageHeader
Definition: ntv2publicinterface.h:9953
NTV2StringList
std::vector< std::string > NTV2StringList
Definition: ntv2utils.h:1143
CNTV2DriverInterface::GetNumSupported
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
Definition: ntv2driverinterface.h:435
AJALock
Definition: lock.h:28
NTV2BoolParamID
enum _NTV2BoolParamID NTV2BoolParamID
Used with CNTV2DriverInterface::GetBoolParam to determine device capabilities.
NTV2DeviceSpecParser
One-stop shop for parsing device specifications. (New in SDK 16.3) I do very little in the way of val...
Definition: ntv2nubaccess.h:146
CNTV2DriverInterface::_EventHandles
std::vector< PULWord > _EventHandles
Definition: ntv2driverinterface.h:675
NTV2_SHOULD_BE_DEPRECATED
#define NTV2_SHOULD_BE_DEPRECATED(__f__)
Definition: ajatypes.h:523
NTV2_DEPRECATED_f
#define NTV2_DEPRECATED_f(__f__)
Definition: ajatypes.h:555
CNTV2DriverInterface::GetNumFrameBuffers
virtual ULWord GetNumFrameBuffers(void) const
Definition: ntv2driverinterface.h:385
false
#define false
Definition: ntv2devicefeatures.h:25
NTV2DeviceCanDoIP
bool NTV2DeviceCanDoIP(const NTV2DeviceID inDeviceID)
Definition: ntv2devicefeatures.hpp:3696
NTV2RegInfo
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
Definition: ntv2publicinterface.h:3977
NTV2RegisterWrites
std::vector< NTV2RegInfo > NTV2RegisterWrites
Definition: ntv2publicinterface.h:4069
CNTV2DriverInterface::_pRegisterBaseAddressLength
ULWord _pRegisterBaseAddressLength
Definition: ntv2driverinterface.h:698
ULWord64
uint64_t ULWord64
Definition: ajatypes.h:258
CNTV2DriverInterface::_pCh1FrameBaseAddress
ULWord * _pCh1FrameBaseAddress
Definition: ntv2driverinterface.h:700
AUTOCIRCULATE_P2P_STRUCT
Definition: ntv2publicinterface.h:4716
AJAExport
#define AJAExport
Definition: export.h:33
CNTV2DriverInterface::GetFrameBufferSize
virtual ULWord GetFrameBufferSize(void) const
Definition: ntv2driverinterface.h:386
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:689
CNTV2DriverInterface::mRecordRegWrites
bool mRecordRegWrites
True if recording; otherwise false when not recording.
Definition: ntv2driverinterface.h:684
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:674
ntv2publicinterface.h
Declares enums and structs used by all platform drivers and the SDK.
CNTV2DriverInterface::_pRegisterBaseAddress
ULWord * _pRegisterBaseAddress
Definition: ntv2driverinterface.h:697
CNTV2DriverInterface::mRegWritesLock
AJALock mRegWritesLock
Guard mutex for mRegWrites.
Definition: ntv2driverinterface.h:693
NTV2StreamBuffer
Definition: ntv2publicinterface.h:8921
CNTV2DriverInterface
I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
Definition: ntv2driverinterface.h:60
NTV2RPCClientAPI
An object that can connect to, and operate remote or fake devices. I have three general API groups:
Definition: ntv2nubaccess.h:249
CNTV2DriverInterface::_pciSlot
ULWord _pciSlot
Definition: ntv2driverinterface.h:706
NTV2Dictionary
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
Definition: ntv2nubaccess.h:89
CNTV2DriverInterface::_pFrameBaseAddress
ULWord * _pFrameBaseAddress
Definition: ntv2driverinterface.h:696
BITFILE_INFO_STRUCT
Definition: ntv2publicinterface.h:4862
ntv2nubaccess.h
Declares NTV2 "nub" client functions.
CNTV2DriverInterface::ResumeAudio
virtual bool ResumeAudio(const ULWord inFBSize)
Definition: ntv2driverinterface.h:590
AUTOCIRCULATE_DATA
Definition: ntv2publicinterface.h:4427
CNTV2DriverInterface::_pRPCAPI
NTV2RPCAPI * _pRPCAPI
Points to remote or software device interface; otherwise NULL for local physical device.
Definition: ntv2driverinterface.h:688