8 #ifndef NTV2DRIVERINTERFACE_H 9 #define NTV2DRIVERINTERFACE_H 18 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling 20 #endif // NTV2_WRITEREG_PROFILING Register Write Profiling 24 #ifdef AJA_USE_CPLUSPLUS11 25 #ifndef NTV2_USE_CPLUSPLUS11 26 #error "AJA_USE_CPLUSPLUS11 && !NTV2_USE_CPLUSPLUS11" 31 #ifdef NTV2_USE_CPLUSPLUS11 32 #error "!AJA_USE_CPLUSPLUS11 && NTV2_USE_CPLUSPLUS11" 38 #if defined(AJALinux ) || defined(AJAMac) 40 #elif defined(MSWindows) 45 #if 0 // IoIP/KonaIP10G purge 48 std::string buildNumber;
49 std::string packageNumber;
52 } PACKAGE_INFO_STRUCT, *PPACKAGE_INFO_STRUCT;
53 #endif // IoIP/KonaIP10G purge 70 static void SetShareMode (
const bool inSharedMode);
71 static bool GetShareMode (
void);
78 static void SetOverlappedMode (
const bool inOverlapMode);
79 static bool GetOverlappedMode (
void);
122 AJA_VIRTUAL bool IsDeviceReady (
const bool inCheckValid =
false);
148 AJA_VIRTUAL bool Open (
const std::string & inURLSpec);
221 bool result (ReadRegister(inRegNum, regValue, inMask, inShift));
223 outValue = T(regValue);
227 #if !defined(READREGMULTICHANGE) 235 #endif // !defined(READREGMULTICHANGE) 262 const ULWord inFrameNumber,
264 const ULWord inCardOffsetBytes,
265 const ULWord inTotalByteCount,
266 const bool inSynchronous =
true);
297 const ULWord inFrameNumber,
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);
309 const ULWord inFrameNumber,
310 const ULWord inCardOffsetBytes,
312 const ULWord inNumSegments,
313 const ULWord inSegmentHostPitch,
314 const ULWord inSegmentCardPitch,
376 #if !defined(NTV2_DEPRECATE_17_2) 396 AJA_VIRTUAL bool BitstreamWrite (
const NTV2Buffer & inBuffer,
const bool inFragment,
const bool inSwap);
397 AJA_VIRTUAL bool BitstreamReset (
const bool inConfiguration,
const bool inInterface);
399 AJA_VIRTUAL bool BitstreamLoad (
const bool inSuspend,
const bool inResume);
413 GetBoolParam (
ULWord(inParamID), value);
414 return value ?
true :
false;
424 GetNumericParam (
ULWord(inParamID), value);
469 AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
487 AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
507 AJA_VIRTUAL bool AcquireStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
525 AJA_VIRTUAL bool ReleaseStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
540 AJA_VIRTUAL bool SetStreamingApplication (
const ULWord inAppType,
const int32_t inProcessID);
554 AJA_VIRTUAL bool GetStreamingApplication (
ULWord & outAppType, int32_t & outProcessID);
564 AJA_VIRTUAL std::string GetDescription (
void)
const;
565 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3) 574 #if !defined(NTV2_DEPRECATE_16_0) 594 #endif // !defined(NTV2_DEPRECATE_16_0) 595 #if !defined(NTV2_DEPRECATE_16_3) 598 #endif // !defined(NTV2_DEPRECATE_16_3) 599 #if !defined(NTV2_DEPRECATE_17_6) 602 #if 0 // IoIP/KonaIP10G purge 603 AJA_VIRTUAL bool GetPackageInformation (PACKAGE_INFO_STRUCT & outPkgInfo);
604 #endif // IoIP/KonaIP10G purge 606 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling 612 AJA_VIRTUAL bool StartRecordRegisterWrites (
const bool inSkipActualWrites =
false);
613 AJA_VIRTUAL bool IsRecordingRegisterWrites (
void)
const;
616 AJA_VIRTUAL bool ResumeRecordRegisterWrites (
void);
618 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling 674 void setDeviceIndexNumber (
const UWord num);
678 #if defined(NTV2_WRITEREG_PROFILING) 681 #endif // NTV2_WRITEREG_PROFILING 686 #if defined(NTV2_WRITEREG_PROFILING) 689 #endif // NTV2_WRITEREG_PROFILING 690 #if !defined(NTV2_DEPRECATE_16_0) 697 #endif // !defined(NTV2_DEPRECATE_16_0) 698 #if !defined(NTV2_DEPRECATE_17_2) 702 #if !defined(NTV2_DEPRECATE_16_0) 704 #endif // !defined(NTV2_DEPRECATE_16_0) 708 #endif // NTV2DRIVERINTERFACE_H Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
#define NTV2_DEPRECATED_18_0(__f__)
enum _NTV2NumericParamID NTV2NumericParamID
Used with CNTV2DriverInterface::GetNumericParam to determine device capabilities. ...
virtual bool IsSupported(const NTV2BoolParamID inParamID)
virtual bool UnmapFrameBuffers(void)
Declares the AJALock class.
#define NTV2_DEPRECATED_17_2(__f__)
ULWord * _pRegisterBaseAddress
virtual bool HevcSendMessage(HevcMessageHeader *pMsg)
ULWord * _pCh2FrameBaseAddress
bool NTV2DeviceCanDo25GIP(const NTV2DeviceID inDeviceID)
UWord _boardNumber
My device index number.
virtual bool MapFrameBuffers(void)
#define NTV2_DEPRECATED_16_3(__f__)
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)
#define NTV2_DEPRECATED_17_6(__f__)
One-stop shop for parsing device specifications. (New in SDK 16.3) I do very little in the way of val...
ULWord _ulFrameBufferSize
std::vector< PULWord > _EventHandles
NTV2_DriverDebugMessageSet
ULWord NTV2NubProtocolVersion
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
virtual bool SetDefaultDeviceForPID(const int32_t procID)
Declares NTV2 "nub" client functions.
virtual bool IsRemote(void) const
I'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: ...
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
NTV2DeviceID _boardID
My cached device ID.
Enumerations for controlling NTV2 devices.
virtual bool IsOpen(void) const
virtual bool Is25GIPDevice(void)
bool _boardOpened
True if I'm open and connected to the device.
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.
ULWord _pRegisterBaseAddressLength
_EventHandles mInterruptEventHandles
For subscribing to each possible event, one for each interrupt type.
virtual bool MapXena2Flash(void)
Declares data types and structures used in NTV2 "nub" packets.
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.).
ULWord * _pXena2FlashBaseAddress
virtual ULWord GetPCISlotNumber(void) const
virtual bool GetInterruptCount(const INTERRUPT_ENUMS eInt, ULWord *pCnt)
ULWord * _pFrameBaseAddress
Declares numerous NTV2 utility functions.
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
virtual bool MapRegisters(void)
ULWord * _pCh1FrameBaseAddress
ULWord _ulNumFrameBuffers
virtual bool SuspendAudio(void)
_EventCounts mEventCounts
My event tallies, one for each interrupt type. Note that these.
virtual ULWord GetAudioFrameBufferNumber(void) const
std::vector< ULWord > _EventCounts
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
virtual bool PrepareMemoryForDMA(ULWord *pHostBuffer, const ULWord inNumBytes)
virtual bool CompleteMemoryForDMA(ULWord *pHostBuffer)
#define NTV2_DEPRECATED_16_0(__f__)
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)