|
AJA NTV2 SDK
17.5.0.1492
NTV2 SDK 17.5.0.1492
|
Go to the documentation of this file.
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)
65 static inline UWord MaxNumDevices (
void) {
return 32;}
72 static void SetShareMode (
const bool inSharedMode);
73 static bool GetShareMode (
void);
80 static void SetOverlappedMode (
const bool inOverlapMode);
81 static bool GetOverlappedMode (
void);
115 AJA_VIRTUAL inline bool IsOpen (
void)
const {
return _boardOpened;}
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,
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);
413 AJA_VIRTUAL bool BitstreamLoad (
const bool inSuspend,
const bool inResume);
427 GetBoolParam (
ULWord(inParamID), value);
438 GetNumericParam (
ULWord(inParamID), value);
483 AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
501 AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
521 AJA_VIRTUAL bool AcquireStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
539 AJA_VIRTUAL bool ReleaseStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
554 AJA_VIRTUAL bool SetStreamingApplication (
const ULWord inAppType,
const int32_t inProcessID);
568 AJA_VIRTUAL bool GetStreamingApplication (
ULWord & outAppType, int32_t & outProcessID);
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;}
577 AJA_VIRTUAL std::string GetDescription (
void)
const;
578 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3)
587 #if !defined(NTV2_DEPRECATE_16_0)
607 #endif // !defined(NTV2_DEPRECATE_16_0)
608 #if !defined(NTV2_DEPRECATE_16_3)
611 #endif // !defined(NTV2_DEPRECATE_16_3)
613 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
619 AJA_VIRTUAL bool StartRecordRegisterWrites (
const bool inSkipActualWrites =
false);
620 AJA_VIRTUAL bool IsRecordingRegisterWrites (
void)
const;
623 AJA_VIRTUAL bool ResumeRecordRegisterWrites (
void);
625 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling
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)
707 #endif // !defined(NTV2_DEPRECATE_16_0)
711 #endif // NTV2DRIVERINTERFACE_H
bool mSkipRegWrites
True if actual register writes are skipped while recording.
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
NTV2_DriverDebugMessageSet
Declares device capability functions.
ULWord * _pXena2FlashBaseAddress
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
bool _boardOpened
True if I'm open and connected to the device.
Describes a user-space buffer on the host computer. I have an address and a length,...
bool NTV2DeviceCanDo25GIP(const NTV2DeviceID inDeviceID)
ULWord _ulNumFrameBuffers
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
ULWord * _pCh2FrameBaseAddress
ULWord _ulFrameBufferSize
std::string packageNumber
UWord _boardNumber
My device index number.
NTV2DeviceID _boardID
My cached device ID.
virtual bool SuspendAudio(void)
_EventCounts mEventCounts
My event tallies, one for each interrupt type. Note that these.
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
virtual bool IsSupported(const NTV2BoolParamID inParamID)
virtual bool HevcSendMessage(HevcMessageHeader *pMessage)
Sends an HEVC message to the NTV2 driver.
NTV2RegisterWrites mRegWrites
Stores WriteRegister data.
enum _NTV2NumericParamID NTV2NumericParamID
Used with CNTV2DriverInterface::GetNumericParam to determine device capabilities.
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
Declares the AJALock class.
ULWord NTV2NubProtocolVersion
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...
enum _NTV2EnumsID NTV2EnumsID
Identifies NTV2 enumerated types, used in CNTV2DriverInterface::GetSupportedItems.
All new NTV2 structs start with this common header.
Enumerations for controlling NTV2 devices.
NTV2RegWrites NTV2RegisterReads
Declares numerous NTV2 utility functions.
std::vector< ULWord > NTV2ULWordVector
An ordered sequence of ULWords.
std::vector< std::string > NTV2StringList
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
enum _NTV2BoolParamID NTV2BoolParamID
Used with CNTV2DriverInterface::GetBoolParam to determine device capabilities.
One-stop shop for parsing device specifications. (New in SDK 16.3) I do very little in the way of val...
std::vector< PULWord > _EventHandles
#define NTV2_SHOULD_BE_DEPRECATED(__f__)
#define NTV2_DEPRECATED_f(__f__)
virtual ULWord GetNumFrameBuffers(void) const
bool NTV2DeviceCanDoIP(const NTV2DeviceID inDeviceID)
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
std::vector< NTV2RegInfo > NTV2RegisterWrites
ULWord _pRegisterBaseAddressLength
ULWord * _pCh1FrameBaseAddress
virtual ULWord GetFrameBufferSize(void) const
_EventHandles mInterruptEventHandles
For subscribing to each possible event, one for each interrupt type.
bool mRecordRegWrites
True if recording; otherwise false when not recording.
struct PACKAGE_INFO_STRUCT * PPACKAGE_INFO_STRUCT
Declares data types and structures used in NTV2 "nub" packets.
std::vector< ULWord > _EventCounts
Declares enums and structs used by all platform drivers and the SDK.
ULWord * _pRegisterBaseAddress
AJALock mRegWritesLock
Guard mutex for mRegWrites.
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:
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
ULWord * _pFrameBaseAddress
Declares NTV2 "nub" client functions.
virtual bool ResumeAudio(const ULWord inFBSize)
NTV2RPCAPI * _pRPCAPI
Points to remote or software device interface; otherwise NULL for local physical device.