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,
425 #if !defined(NTV2_DEPRECATE_17_2) 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);
448 AJA_VIRTUAL bool BitstreamLoad (
const bool inSuspend,
const bool inResume);
462 GetBoolParam (
ULWord(inParamID), value);
463 return value ?
true :
false;
473 GetNumericParam (
ULWord(inParamID), value);
518 AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
536 AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
556 AJA_VIRTUAL bool AcquireStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
574 AJA_VIRTUAL bool ReleaseStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
589 AJA_VIRTUAL bool SetStreamingApplication (
const ULWord inAppType,
const int32_t inProcessID);
603 AJA_VIRTUAL bool GetStreamingApplication (
ULWord & outAppType, int32_t & outProcessID);
613 AJA_VIRTUAL std::string GetDescription (
void)
const;
614 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3) 623 #if !defined(NTV2_DEPRECATE_16_0) 643 #endif // !defined(NTV2_DEPRECATE_16_0) 644 #if !defined(NTV2_DEPRECATE_16_3) 647 #endif // !defined(NTV2_DEPRECATE_16_3) 648 #if !defined(NTV2_DEPRECATE_17_6) 651 #if 0 // IoIP/KonaIP10G purge 652 AJA_VIRTUAL bool GetPackageInformation (PACKAGE_INFO_STRUCT & outPkgInfo);
653 #endif // IoIP/KonaIP10G purge 655 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling 661 AJA_VIRTUAL bool StartRecordRegisterWrites (
const bool inSkipActualWrites =
false);
662 AJA_VIRTUAL bool IsRecordingRegisterWrites (
void)
const;
665 AJA_VIRTUAL bool ResumeRecordRegisterWrites (
void);
667 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling 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) 789 #if !defined(NTV2_DEPRECATE_16_0) 791 #endif // !defined(NTV2_DEPRECATE_16_0) 795 #endif // NTV2DRIVERINTERFACE_H virtual bool HasRegInfoForBoolParam(const ULWord inParamID)
(Internal SDK use only) Answers whether or not the given parameter'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.
ULWord * _pRegisterBaseAddress
#define NTV2_DEPRECATED_16_0(__f__)
virtual bool HevcSendMessage(HevcMessageHeader *pMsg)
ULWord * _pCh2FrameBaseAddress
virtual bool HasRegInfoForNumericParam(const ULWord inParamID)
(Internal SDK use only) Answers whether or not the given parameter'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)
One-stop shop for parsing device specifications. (New in SDK 16.3) I do very little in the way of val...
ULWord _ulFrameBufferSize
INTERRUPT_ENUMS NTV2ChannelToInputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent input INTERRUPT_ENUMS value.
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: ...
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...
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.
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 ...
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
virtual bool MapXena2Flash(void)
Declares data types and structures used in NTV2 "nub" packets.
#define NTV2_DEPRECATED_17_6(__f__)
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
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.
ULWord _ulNumFrameBuffers
virtual bool SuspendAudio(void)
_EventCounts mEventCounts
My event tallies, one for each interrupt type. Note that these.
Specifies channel or FrameStore 1 (or the first item).
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.
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.