AJA NTV2 SDK  18.1.0.2439
NTV2 SDK 18.1.0.2439
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 <unistd.h> // for usleep
40 #elif defined(MSWindows)
41  #include <WinSock2.h>
42  #include <assert.h>
43 #endif
44 
45 #if 0 // IoIP/KonaIP10G purge
46 typedef struct
47 {
48  std::string buildNumber;
49  std::string packageNumber;
50  std::string date;
51  std::string time;
52 } PACKAGE_INFO_STRUCT, *PPACKAGE_INFO_STRUCT;
53 #endif // IoIP/KonaIP10G purge
54 
59 {
60  // STATIC (CLASS) METHODS
61  public:
62  static NTV2StringList GetLegalSchemeNames (void);
63  static inline UWord MaxNumDevices (void) {return 32;}
64 
70  static void SetShareMode (const bool inSharedMode);
71  static bool GetShareMode (void);
72 
78  static void SetOverlappedMode (const bool inOverlapMode);
79  static bool GetOverlappedMode (void);
80 
84  public:
87  virtual ~CNTV2DriverInterface();
88 
89  private:
96  CNTV2DriverInterface & operator = (const CNTV2DriverInterface & inRHS);
97 
103  CNTV2DriverInterface (const CNTV2DriverInterface & inObjToCopy);
105 
106  public:
110  AJA_VIRTUAL NTV2DeviceID GetDeviceID (void);
112  AJA_VIRTUAL inline UWord GetIndexNumber (void) const {return _boardNumber;}
113  AJA_VIRTUAL inline bool IsOpen (void) const {return _boardOpened;}
114 
122  AJA_VIRTUAL bool IsDeviceReady (const bool inCheckValid = false);
123  AJA_VIRTUAL bool IsMBSystemValid (void);
124  AJA_VIRTUAL bool IsMBSystemReady (void);
127  AJA_VIRTUAL bool IsLPSystemReady (void);
129 
133 
140  AJA_VIRTUAL bool Open (const UWord inDeviceIndex);
141 
148  AJA_VIRTUAL bool Open (const std::string & inURLSpec);
149 
156  AJA_VIRTUAL bool Close (void);
158 
162 
185  AJA_VIRTUAL bool WriteRegister (const ULWord inRegNum, const ULWord inValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0);
186 
201  AJA_VIRTUAL bool ReadRegister (const ULWord inRegNum, ULWord & outValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0);
202 
218  template<typename T> bool ReadRegister(const ULWord inRegNum, T & outValue, const ULWord inMask = 0xFFFFFFFF, const ULWord inShift = 0)
219  {
220  ULWord regValue(0);
221  bool result (ReadRegister(inRegNum, regValue, inMask, inShift));
222  if (result)
223  outValue = T(regValue);
224  return result;
225  }
226 
227 #if !defined(READREGMULTICHANGE)
228 
234  AJA_VIRTUAL bool ReadRegisters (NTV2RegisterReads & inOutValues);
235 #endif // !defined(READREGMULTICHANGE)
236  //AJA_VIRTUAL inline bool RestoreHardwareProcampRegisters (void) {return false;}
238 
242 
260  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
261  const bool inIsRead,
262  const ULWord inFrameNumber,
263  ULWord * pFrameBuffer,
264  const ULWord inCardOffsetBytes,
265  const ULWord inTotalByteCount,
266  const bool inSynchronous = true);
267 
295  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
296  const bool inIsRead,
297  const ULWord inFrameNumber,
298  ULWord * pFrameBuffer,
299  const ULWord inCardOffsetBytes,
300  const ULWord inTotalByteCount,
301  const ULWord inNumSegments,
302  const ULWord inHostPitchPerSeg,
303  const ULWord inCardPitchPerSeg,
304  const bool inSynchronous = true);
305 
306  AJA_VIRTUAL bool DmaTransfer (const NTV2DMAEngine inDMAEngine,
307  const NTV2Channel inDMAChannel,
308  const bool inTarget,
309  const ULWord inFrameNumber,
310  const ULWord inCardOffsetBytes,
311  const ULWord inByteCount,
312  const ULWord inNumSegments,
313  const ULWord inSegmentHostPitch,
314  const ULWord inSegmentCardPitch,
315  const PCHANNEL_P2P_STRUCT & inP2PData);
317 
321  AJA_VIRTUAL bool ConfigureInterrupt (const bool bEnable, const INTERRUPT_ENUMS eInterruptType);
323 
331  AJA_VIRTUAL bool GetInterruptCount (const INTERRUPT_ENUMS eInterrupt, ULWord & outCount);
332 
340  AJA_VIRTUAL bool WaitForInterrupt (const INTERRUPT_ENUMS eInterrupt, const ULWord timeOutMs = 68);
341 
350  AJA_VIRTUAL bool GetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, ULWord & outCount);
351 
360  AJA_VIRTUAL bool SetInterruptEventCount (const INTERRUPT_ENUMS inEventCode, const ULWord inCount);
361 
369  AJA_VIRTUAL inline bool GetOutputVerticalEventCount (ULWord & outCount, const NTV2Channel inChannel = NTV2_CHANNEL1)
370  {return GetInterruptEventCount(::NTV2ChannelToOutputInterrupt(inChannel), outCount);}
371 
379  AJA_VIRTUAL inline bool GetInputVerticalEventCount (ULWord & outCount, const NTV2Channel inChannel = NTV2_CHANNEL1)
380  {return GetInterruptEventCount(::NTV2ChannelToInputInterrupt(inChannel), outCount);}
381 
389  AJA_VIRTUAL inline bool SetOutputVerticalEventCount (const ULWord inCount, const NTV2Channel inChannel = NTV2_CHANNEL1)
390  {return SetInterruptEventCount(::NTV2ChannelToOutputInterrupt(inChannel), inCount);}
391 
399  AJA_VIRTUAL inline bool SetInputVerticalEventCount (const ULWord inCount, const NTV2Channel inChannel = NTV2_CHANNEL1)
400  {return SetInterruptEventCount(::NTV2ChannelToInputInterrupt(inChannel), inCount);}
402 
406 
412  AJA_VIRTUAL bool AutoCirculate (AUTOCIRCULATE_DATA & pAutoCircData);
413 
420  AJA_VIRTUAL bool NTV2Message (NTV2_HEADER * pInMessage);
421 
422  AJA_VIRTUAL bool ControlDriverDebugMessages (NTV2_DriverDebugMessageSet msgSet, bool enable);
424 
425 #if !defined(NTV2_DEPRECATE_17_2)
426  AJA_VIRTUAL inline NTV2_DEPRECATED_17_2(ULWord GetNumFrameBuffers (void) const) {return _ulNumFrameBuffers;}
427  AJA_VIRTUAL inline NTV2_DEPRECATED_17_2(ULWord GetFrameBufferSize (void) const) {return _ulFrameBufferSize;}
428 #endif
429 
430 
436  AJA_VIRTUAL bool DriverGetBitFileInformation (BITFILE_INFO_STRUCT & outBitFileInfo, const NTV2BitFileType inBitFileType = NTV2_VideoProcBitFile);
437 
443  AJA_VIRTUAL bool DriverGetBuildInformation (BUILD_INFO_STRUCT & outBuildInfo);
444 
445  AJA_VIRTUAL bool BitstreamWrite (const NTV2Buffer & inBuffer, const bool inFragment, const bool inSwap);
446  AJA_VIRTUAL bool BitstreamReset (const bool inConfiguration, const bool inInterface);
447  AJA_VIRTUAL bool BitstreamStatus (NTV2ULWordVector & outRegValues);
448  AJA_VIRTUAL bool BitstreamLoad (const bool inSuspend, const bool inResume);
449 
453 
459  AJA_VIRTUAL bool IsSupported (const NTV2BoolParamID inParamID) // New in SDK 17.0
460  { ULWord value(0);
461  if (IsOpen())
462  GetBoolParam (ULWord(inParamID), value);
463  return value ? true : false;
464  }
470  AJA_VIRTUAL ULWord GetNumSupported (const NTV2NumericParamID inParamID) // New in SDK 17.0
471  { ULWord value(0);
472  if (IsOpen())
473  GetNumericParam (ULWord(inParamID), value);
474  return value;
475  }
476 
482  AJA_VIRTUAL ULWordSet GetSupportedItems (const NTV2EnumsID inEnumsID); // New in SDK 17.0
484 
485  // stream channel operations
486  AJA_VIRTUAL bool StreamChannelOps (const NTV2Channel inChannel, ULWord flags, NTV2StreamChannel & status);
487 
488  // stream buffer operations
489  AJA_VIRTUAL bool StreamBufferOps (const NTV2Channel inChannel, NTV2Buffer & inBuffer,
490  ULWord64 bufferCookie, ULWord flags, NTV2StreamBuffer & status);
491 
492  // mail buffer operations
493  AJA_VIRTUAL bool MailBufferOps (const NTV2Channel inChannel, NTV2Buffer & inBuffer,
494  ULWord dataSize, ULWord flags,
495  ULWord delay, ULWord timeout,
496  NTV2MailBuffer & status);
500 
518  AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID);
519 
536  AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (const ULWord inAppType, const int32_t inProcessID);
537 
556  AJA_VIRTUAL bool AcquireStreamForApplication (const ULWord inAppType, const int32_t inProcessID);
557 
574  AJA_VIRTUAL bool ReleaseStreamForApplication (const ULWord inAppType, const int32_t inProcessID);
575 
589  AJA_VIRTUAL bool SetStreamingApplication (const ULWord inAppType, const int32_t inProcessID);
590 
603  AJA_VIRTUAL bool GetStreamingApplication (ULWord & outAppType, int32_t & outProcessID);
605 
606  AJA_VIRTUAL bool ReadRP188Registers (const NTV2Channel inChannel, RP188_STRUCT * pRP188Data);
607  AJA_VIRTUAL inline std::string GetHostName (void) const {return IsRemote() ? _pRPCAPI->Name() : "";}
608  AJA_VIRTUAL inline bool IsRemote (void) const {return _pRPCAPI ? true : false;}
609  AJA_VIRTUAL inline bool IsRemoteConnected (void) const {return IsRemote() ? _pRPCAPI->IsConnected() : false;}
610 
613  AJA_VIRTUAL std::string GetDescription (void) const; // New in SDK 17.0
614 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3)
615  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(NTV2NubProtocolVersion GetNubProtocolVersion (void) const) {return 0;}
616 #endif
617 
620  virtual NTV2Dictionary ConnectParams (void) const; // New in SDK 17.1
621 
622  // DEPRECATED FUNCTIONS
623 #if !defined(NTV2_DEPRECATE_16_0)
624  // SuspendAudio/ResumeAudio were only implemented on MacOS
625  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool SuspendAudio(void)) {return true;}
626  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool ResumeAudio(const ULWord inFBSize)) {(void) inFBSize; return true;}
627  // Memory Mapping/Unmapping
628  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool MapFrameBuffers(void)) {return false;}
629  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool UnmapFrameBuffers(void)) {return true;}
630  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool MapRegisters(void)) {return false;}
631  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool UnmapRegisters(void)) {return true;}
632  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool MapXena2Flash(void)) {return false;}
633  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool UnmapXena2Flash(void)) {return true;}
634  // Others
635  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool DmaUnlock(void)) {return false;}
636  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool CompleteMemoryForDMA(ULWord * pHostBuffer)) {(void)pHostBuffer; return false;}
637  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool PrepareMemoryForDMA(ULWord * pHostBuffer, const ULWord inNumBytes)) {(void)pHostBuffer; (void)inNumBytes; return false;}
638  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool GetInterruptCount(const INTERRUPT_ENUMS eInt, ULWord *pCnt)) {return pCnt ? GetInterruptCount(eInt, *pCnt) : false;}
639  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool ReadRegisterMulti(const ULWord numRegs, ULWord * pOutWhichRegFailed, NTV2RegInfo aRegs[]));
640  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(ULWord GetPCISlotNumber(void) const) {return _pciSlot;}
641  AJA_VIRTUAL NTV2_DEPRECATED_16_0(Word SleepMs(const LWord msec));
642  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(ULWord GetAudioFrameBufferNumber(void) const) {return GetNumFrameBuffers() - 1;}
643 #endif // !defined(NTV2_DEPRECATE_16_0)
644 #if !defined(NTV2_DEPRECATE_16_3)
645  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(bool SetDefaultDeviceForPID(const int32_t procID)) {(void)procID; return false;}
646  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(bool IsDefaultDeviceForPID(const int32_t procID)) {(void)procID; return false;}
647 #endif // !defined(NTV2_DEPRECATE_16_3)
648 #if !defined(NTV2_DEPRECATE_17_6)
649  AJA_VIRTUAL inline bool NTV2_DEPRECATED_17_6(HevcSendMessage(HevcMessageHeader* pMsg)) {(void)pMsg; return false;}
650 #endif
651 #if 0 // IoIP/KonaIP10G purge
652  AJA_VIRTUAL bool GetPackageInformation (PACKAGE_INFO_STRUCT & outPkgInfo); // Obsolete
653 #endif // IoIP/KonaIP10G purge
654 
655 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
656 
659  AJA_VIRTUAL bool GetRecordedRegisterWrites (NTV2RegisterWrites & outRegWrites) const;
661  AJA_VIRTUAL bool StartRecordRegisterWrites (const bool inSkipActualWrites = false);
662  AJA_VIRTUAL bool IsRecordingRegisterWrites (void) const;
663  AJA_VIRTUAL bool StopRecordRegisterWrites (void);
664  AJA_VIRTUAL bool PauseRecordRegisterWrites (void);
665  AJA_VIRTUAL bool ResumeRecordRegisterWrites (void);
666  AJA_VIRTUAL ULWord GetNumRecordedRegisterWrites (void) const;
667 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling
669 
673 
680  AJA_VIRTUAL bool GetBoolParam (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
681 
688  AJA_VIRTUAL bool GetNumericParam (const ULWord inParamID, ULWord & outValue); // New in SDK 17.0
689 
693  AJA_VIRTUAL bool GetBoolParamWithDeviceID (const ULWord inParamID, ULWord & outValue); // New in SDK 18.1
694 
698  AJA_VIRTUAL bool GetNumericParamWithDeviceID (const ULWord inParamID, ULWord & outValue); // New in SDK 18.1
699 
703  AJA_VIRTUAL bool HasRegInfoForBoolParam (const ULWord inParamID) {NTV2RegInfo i; bool flip; return GetRegInfoForBoolParam(NTV2BoolParamID(inParamID),i,flip);} // New in SDK 18.1
704 
708  AJA_VIRTUAL bool HasRegInfoForNumericParam (const ULWord inParamID) {NTV2RegInfo i; return GetRegInfoForNumericParam(NTV2NumericParamID(inParamID),i);} // New in SDK 18.1
709 
717  AJA_VIRTUAL bool GetRegInfoForBoolParam (const NTV2BoolParamID inParamID, NTV2RegInfo & outRegInfo, bool & outFlipSense);
718 
725  AJA_VIRTUAL bool GetRegInfoForNumericParam (const NTV2NumericParamID inParamID, NTV2RegInfo & outRegInfo);
727 
728 
729  // PROTECTED METHODS
730  protected:
736  AJA_VIRTUAL bool OpenRemote (const NTV2DeviceSpecParser & inSpec);
737  AJA_VIRTUAL bool CloseRemote (void);
738  AJA_VIRTUAL bool OpenLocalPhysical (const UWord inDeviceIndex);
739  AJA_VIRTUAL bool CloseLocalPhysical (void);
740 
745  AJA_VIRTUAL void BumpEventCount (const INTERRUPT_ENUMS eInterruptType);
746 
750  AJA_VIRTUAL void FinishOpen (void);
751  AJA_VIRTUAL bool ParseFlashHeader (BITFILE_INFO_STRUCT & outBitfileInfo);
752  AJA_VIRTUAL bool ReadFlashULWord (const ULWord inAddress, ULWord & outValue, const ULWord inRetryCount = 1000);
753 
754 
755  // PRIVATE TYPES
756  protected:
757  typedef std::vector<ULWord> _EventCounts;
758 
759 
760  // MEMBER DATA
761  protected:
762  void setDeviceIndexNumber (const UWord num);
766 #if defined(NTV2_WRITEREG_PROFILING)
769 #endif // NTV2_WRITEREG_PROFILING
773 #if defined(NTV2_WRITEREG_PROFILING)
776 #endif // NTV2_WRITEREG_PROFILING
777 #if !defined(NTV2_DEPRECATE_16_0)
784 #endif // !defined(NTV2_DEPRECATE_16_0)
785 #if !defined(NTV2_DEPRECATE_17_2)
788 #endif
789 #if !defined(NTV2_DEPRECATE_16_0)
790  ULWord _pciSlot; // DEPRECATE!
791 #endif // !defined(NTV2_DEPRECATE_16_0)
792 
793 }; // CNTV2DriverInterface
794 
795 #endif // NTV2DRIVERINTERFACE_H
virtual bool HasRegInfoForBoolParam(const ULWord inParamID)
(Internal SDK use only) Answers whether or not the given parameter&#39;s value is determined by a device ...
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
enum _NTV2NumericParamID NTV2NumericParamID
Used with CNTV2DriverInterface::GetNumericParam to determine device capabilities. ...
virtual bool IsSupported(const NTV2BoolParamID inParamID)
virtual bool UnmapFrameBuffers(void)
#define NTV2_DEPRECATED_17_2(__f__)
Declares the AJALock class.
#define NTV2_DEPRECATED_16_0(__f__)
virtual bool HevcSendMessage(HevcMessageHeader *pMsg)
virtual bool HasRegInfoForNumericParam(const ULWord inParamID)
(Internal SDK use only) Answers whether or not the given parameter&#39;s value is determined by a device ...
bool NTV2DeviceCanDo25GIP(const NTV2DeviceID inDeviceID)
UWord _boardNumber
My device index number.
virtual bool MapFrameBuffers(void)
enum _NTV2EnumsID NTV2EnumsID
Identifies NTV2 enumerated types, used in CNTV2DriverInterface::GetSupportedItems.
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...
virtual bool IsDefaultDeviceForPID(const int32_t procID)
virtual UWord GetIndexNumber(void) const
enum _NTV2BoolParamID NTV2BoolParamID
Used with CNTV2DriverInterface::GetBoolParam to determine device capabilities.
ULWord _pciSlot
defined(NTV2_DEPRECATE_17_2)
virtual bool UnmapRegisters(void)
int32_t LWord
Definition: ajatypes.h:235
One-stop shop for parsing device specifications. (New in SDK 16.3) I do very little in the way of val...
Definition: lock.h:28
INTERRUPT_ENUMS NTV2ChannelToInputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent input INTERRUPT_ENUMS value.
Definition: ntv2utils.cpp:4941
NTV2_DriverDebugMessageSet
Definition: ntv2enums.h:3835
ULWord NTV2NubProtocolVersion
Definition: ntv2nubtypes.h:16
uint32_t ULWord
Definition: ajatypes.h:236
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They&#39;re also commonly use...
Definition: ntv2enums.h:1361
virtual bool SetDefaultDeviceForPID(const int32_t procID)
Declares NTV2 "nub" client functions.
virtual bool IsRemote(void) const
I&#39;m the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
An object that can connect to, and operate remote or fake devices. I have three general API groups: ...
virtual bool GetInputVerticalEventCount(ULWord &outCount, const NTV2Channel inChannel=NTV2_CHANNEL1)
Answers with the number of input interrupt events that this device instance successfully waited for o...
#define true
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
NTV2DeviceID _boardID
My cached device ID.
Enumerations for controlling NTV2 devices.
int16_t Word
Definition: ajatypes.h:233
virtual bool IsOpen(void) const
virtual bool Is25GIPDevice(void)
bool _boardOpened
True if I&#39;m open and connected to the device.
#define AJA_VIRTUAL
Definition: ajatypes.h:143
virtual bool GetOutputVerticalEventCount(ULWord &outCount, const NTV2Channel inChannel=NTV2_CHANNEL1)
Answers with the number of output interrupt events that this device instance successfully waited for ...
NTV2DMAEngine
Definition: ntv2enums.h:1861
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
std::vector< ULWord > NTV2ULWordVector
An ordered sequence of ULWords.
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
bool mRecordRegWrites
True if recording; otherwise false when not recording.
All new NTV2 structs start with this common header.
NTV2RegWrites NTV2RegisterReads
AJALock mRegWritesLock
Guard mutex for mRegWrites.
virtual bool MapXena2Flash(void)
Declares data types and structures used in NTV2 "nub" packets.
uint64_t ULWord64
Definition: ajatypes.h:239
#define NTV2_DEPRECATED_17_6(__f__)
NTV2BitFileType
Definition: ntv2enums.h:3354
virtual bool UnmapXena2Flash(void)
Describes a user-space buffer on the host computer. I have an address and a length, plus some optional attributes (allocated by SDK?, page-aligned? etc.).
virtual ULWord GetPCISlotNumber(void) const
virtual bool GetInterruptCount(const INTERRUPT_ENUMS eInt, ULWord *pCnt)
#define AJAExport
Definition: export.h:33
Declares numerous NTV2 utility functions.
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
virtual bool MapRegisters(void)
virtual bool SetOutputVerticalEventCount(const ULWord inCount, const NTV2Channel inChannel=NTV2_CHANNEL1)
Resets the output interrupt event tally for this device instance for the given channel.
virtual bool SuspendAudio(void)
uint16_t UWord
Definition: ajatypes.h:234
_EventCounts mEventCounts
My event tallies, one for each interrupt type. Note that these.
Specifies channel or FrameStore 1 (or the first item).
Definition: ntv2enums.h:1363
virtual ULWord GetAudioFrameBufferNumber(void) const
std::vector< ULWord > _EventCounts
#define NTV2_DEPRECATED_18_0(__f__)
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
#define NTV2_DEPRECATED_16_3(__f__)
virtual bool PrepareMemoryForDMA(ULWord *pHostBuffer, const ULWord inNumBytes)
virtual bool CompleteMemoryForDMA(ULWord *pHostBuffer)
INTERRUPT_ENUMS NTV2ChannelToOutputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent output INTERRUPT_ENUMS value.
Definition: ntv2utils.cpp:4951
bool NTV2DeviceCanDoIP(const NTV2DeviceID inDeviceID)
NTV2RegisterWrites mRegWrites
Stores WriteRegister data.
std::vector< std::string > NTV2StringList
std::vector< NTV2RegInfo > NTV2RegisterWrites
bool mSkipRegWrites
True if actual register writes are skipped while recording.
virtual bool ResumeAudio(const ULWord inFBSize)
NTV2RPCAPI * _pRPCAPI
Points to remote or software device interface; otherwise NULL for local physical device.
Declares enums and structs used by all platform drivers and the SDK.
virtual bool IsIPDevice(void)
virtual bool IsRemoteConnected(void) const
static UWord MaxNumDevices(void)
virtual std::string GetHostName(void) const
Declares device capability functions.
virtual bool DmaUnlock(void)
virtual bool SetInputVerticalEventCount(const ULWord inCount, const NTV2Channel inChannel=NTV2_CHANNEL1)
Resets the input interrupt event tally for this device instance for the given channel.