|
AJA NTV2 SDK
17.1.1.1245
NTV2 SDK 17.1.1.1245
|
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);
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,
408 AJA_VIRTUAL bool BitstreamWrite (
const NTV2Buffer & inBuffer,
const bool inFragment,
const bool inSwap);
409 AJA_VIRTUAL bool BitstreamReset (
const bool inConfiguration,
const bool inInterface);
411 AJA_VIRTUAL bool BitstreamLoad (
const bool inSuspend,
const bool inResume);
425 GetBoolParam (
ULWord(inParamID), value);
436 GetNumericParam (
ULWord(inParamID), value);
481 AJA_VIRTUAL bool AcquireStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
499 AJA_VIRTUAL bool ReleaseStreamForApplicationWithReference (
const ULWord inAppType,
const int32_t inProcessID);
519 AJA_VIRTUAL bool AcquireStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
537 AJA_VIRTUAL bool ReleaseStreamForApplication (
const ULWord inAppType,
const int32_t inProcessID);
552 AJA_VIRTUAL bool SetStreamingApplication (
const ULWord inAppType,
const int32_t inProcessID);
566 AJA_VIRTUAL bool GetStreamingApplication (
ULWord & outAppType, int32_t & outProcessID);
570 AJA_VIRTUAL inline std::string GetHostName (
void)
const {
return IsRemote() ? _pRPCAPI->Name() :
"";}
571 AJA_VIRTUAL inline bool IsRemote (
void)
const {
return _pRPCAPI ?
true :
false;}
575 AJA_VIRTUAL std::string GetDescription (
void)
const;
576 #if defined(NTV2_NUB_CLIENT_SUPPORT) && !defined(NTV2_DEPRECATE_16_3)
585 #if !defined(NTV2_DEPRECATE_16_0)
605 #endif // !defined(NTV2_DEPRECATE_16_0)
606 #if !defined(NTV2_DEPRECATE_16_3)
609 #endif // !defined(NTV2_DEPRECATE_16_3)
611 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
617 AJA_VIRTUAL bool StartRecordRegisterWrites (
const bool inSkipActualWrites =
false);
618 AJA_VIRTUAL bool IsRecordingRegisterWrites (
void)
const;
621 AJA_VIRTUAL bool ResumeRecordRegisterWrites (
void);
623 #endif // NTV2_WRITEREG_PROFILING // Register Write Profiling
634 AJA_VIRTUAL bool OpenRemote (
const std::string & inURLSpec);
681 #if defined(NTV2_WRITEREG_PROFILING)
684 #endif // NTV2_WRITEREG_PROFILING
689 #if defined(NTV2_WRITEREG_PROFILING)
692 #endif // NTV2_WRITEREG_PROFILING
693 #if !defined(NTV2_DEPRECATE_16_0)
700 #endif // !defined(NTV2_DEPRECATE_16_0)
703 #if !defined(NTV2_DEPRECATE_16_0)
705 #endif // !defined(NTV2_DEPRECATE_16_0)
709 #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.
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
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.
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)
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
virtual bool RestoreHardwareProcampRegisters(void)
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.
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
virtual bool ResumeAudio(const ULWord inFBSize)
NTV2RPCAPI * _pRPCAPI
Points to remote or software device interface; otherwise NULL for local physical device.