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) 42 #elif defined(MSWindows) 72 static void SetShareMode (
const bool inSharedMode);
73 static bool GetShareMode (
void);
80 static void SetOverlappedMode (
const bool inOverlapMode);
81 static bool GetOverlappedMode (
void);
124 AJA_VIRTUAL bool IsDeviceReady (
const bool inCheckValid =
false);
150 AJA_VIRTUAL bool Open (
const std::string & inURLSpec);
223 bool result (ReadRegister(inRegNum, regValue, inMask, inShift));
225 outValue = T(regValue);
229 #if !defined(READREGMULTICHANGE) 237 #endif // !defined(READREGMULTICHANGE) 264 const ULWord inFrameNumber,
266 const ULWord inCardOffsetBytes,
267 const ULWord inTotalByteCount,
268 const bool inSynchronous =
true);
299 const ULWord inFrameNumber,
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);
311 const ULWord inFrameNumber,
312 const ULWord inCardOffsetBytes,
314 const ULWord inNumSegments,
315 const ULWord inSegmentHostPitch,
316 const ULWord inSegmentCardPitch,
378 #if !defined(NTV2_DEPRECATE_17_2) 405 AJA_VIRTUAL bool BitstreamWrite (
const NTV2Buffer & inBuffer,
const bool inFragment,
const bool inSwap);
406 AJA_VIRTUAL bool BitstreamReset (
const bool inConfiguration,
const bool inInterface);
408 AJA_VIRTUAL bool BitstreamLoad (
const bool inSuspend,
const bool inResume);
422 GetBoolParam (
ULWord(inParamID), value);
433 GetNumericParam (
ULWord(inParamID), value);
478 AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
496 AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
516 AJA_VIRTUAL bool AcquireStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
534 AJA_VIRTUAL bool ReleaseStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
549 AJA_VIRTUAL bool SetStreamingApplication (
const ULWord inAppType,
const int32_t inProcessID);
563 AJA_VIRTUAL bool GetStreamingApplication (
ULWord & outAppType, int32_t & outProcessID);
573 AJA_VIRTUAL std::string GetDescription (
void)
const;
574 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3) 583 #if !defined(NTV2_DEPRECATE_16_0) 603 #endif // !defined(NTV2_DEPRECATE_16_0) 604 #if !defined(NTV2_DEPRECATE_16_3) 607 #endif // !defined(NTV2_DEPRECATE_16_3) 608 #if !defined(NTV2_DEPRECATE_17_6) 612 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling 618 AJA_VIRTUAL bool StartRecordRegisterWrites (
const bool inSkipActualWrites =
false);
619 AJA_VIRTUAL bool IsRecordingRegisterWrites (
void)
const;
622 AJA_VIRTUAL bool ResumeRecordRegisterWrites (
void);
624 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling 680 void setDeviceIndexNumber (
const UWord num);
684 #if defined(NTV2_WRITEREG_PROFILING) 687 #endif // NTV2_WRITEREG_PROFILING 692 #if defined(NTV2_WRITEREG_PROFILING) 695 #endif // NTV2_WRITEREG_PROFILING 696 #if !defined(NTV2_DEPRECATE_16_0) 703 #endif // !defined(NTV2_DEPRECATE_16_0) 704 #if !defined(NTV2_DEPRECATE_17_2) 708 #if !defined(NTV2_DEPRECATE_16_0) 710 #endif // !defined(NTV2_DEPRECATE_16_0) 714 #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.
std::string packageNumber
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.
std::vector< std::string > NTV2StringList
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< 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.
struct PACKAGE_INFO_STRUCT * PPACKAGE_INFO_STRUCT
virtual bool DmaUnlock(void)