AJA NTV2 SDK  18.1.0.2439
NTV2 SDK 18.1.0.2439
ntv2card.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2CARD_H
9 #define NTV2CARD_H
10 
11 #if defined (MSWindows)
12  #include "ntv2windriverinterface.h"
13 #elif defined (AJAMac)
14  #include "ntv2macdriverinterface.h"
15 #elif defined (AJALinux)
17 #elif defined (AJABareMetal)
19 #endif
20 #include "ntv2signalrouter.h"
21 #include "ntv2utils.h"
22 #include "ntv2devicecapabilities.h"
23 
24 
29 #if defined (MSWindows)
31 #elif defined (AJAMac)
33 #elif defined (AJALinux)
35 #elif defined (AJABareMetal)
37 #endif
38 {
39 public:
43 
47  CNTV2Card ();
48 
57  explicit CNTV2Card ( const UWord inDeviceIndex,
58  const std::string & inHostName = std::string());
59 
63  virtual ~CNTV2Card();
65 
66 
70 
75  AJA_VIRTUAL std::string GetDisplayName (void);
76 
81  AJA_VIRTUAL std::string GetModelName (void);
82 
87  AJA_VIRTUAL Word GetDeviceVersion (void);
88 
93  AJA_VIRTUAL std::string GetDeviceVersionString (void);
94 
99  AJA_VIRTUAL std::string GetDriverVersionString (void);
100 
101  AJA_VIRTUAL std::string GetDescription (void) const;
102 
111  AJA_VIRTUAL bool GetDriverVersionComponents (UWord & outMajor, UWord & outMinor, UWord & outPoint, UWord & outBuild);
112 
118  AJA_VIRTUAL uint64_t GetSerialNumber (void); // From CNTV2Status
119 
124  AJA_VIRTUAL bool GetSerialNumberString (std::string & outSerialNumberString); // From CNTV2Status
125 
131  AJA_VIRTUAL inline bool GetPCIDeviceID (ULWord & outPCIDeviceID) {return ReadRegister (kVRegPCIDeviceID, outPCIDeviceID);}
132 
136  AJA_VIRTUAL NTV2BreakoutType GetBreakoutHardware (void);
137 
141  AJA_VIRTUAL bool GetLPExternalConfigurationURLString (std::string & outURLString);
142  AJA_VIRTUAL bool GetLPTunnelConfigurationURLString (std::string & outURLString);
143  AJA_VIRTUAL int GetSFPConfigurationURLStrings(std::vector<std::string> & sfpURLStrings);
144 
148  AJA_VIRTUAL inline class DeviceCapabilities & features (void) {return mDevCap;} // New in SDK 17.0
149 #if !defined(NTV2_DEPRECATE_16_3)
150  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoFormat (const NTV2FrameRate inFR, const NTV2FrameGeometry inFG, const NTV2Standard inStd));
151  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetFrameBufferSize(void));
152  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetAudioFrameBuffer(void));
153  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetAudioFrameBuffer2(void));
154  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetFrameBufferSize (const NTV2FrameGeometry inFrameGeometry, const NTV2FrameBufferFormat inFBFormat));
155  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetNumberFrameBuffers (const NTV2FrameGeometry inFrameGeometry, const NTV2FrameBufferFormat inFBFormat));
156  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetAudioFrameBuffer (const NTV2FrameGeometry inFrameGeometry, const NTV2FrameBufferFormat inFBFormat));
157  AJA_VIRTUAL NTV2_DEPRECATED_16_3(ULWord DeviceGetAudioFrameBuffer2 (const NTV2FrameGeometry inFrameGeometry, const NTV2FrameBufferFormat inFBFormat));
158  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoVideoFormat (const NTV2VideoFormat inVF));
159  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoFrameBufferFormat (const NTV2PixelFormat inPF));
160  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoWidget (const NTV2WidgetID inWgtID));
161  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoConversionMode (const NTV2ConversionMode inCM));
162  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoDSKMode (const NTV2DSKMode inDSKM));
163  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool DeviceCanDoInputSource (const NTV2InputSource inSrc));
167 #endif // defined(NTV2_DEPRECATE_16_3)
168  AJA_VIRTUAL ULWord DeviceGetNumberFrameBuffers(void);
170 
171 
175 
189  AJA_VIRTUAL bool DMARead (const ULWord inFrameNumber, ULWord * pFrameBuffer, const ULWord inOffsetBytes, const ULWord inByteCount);
190 
204  AJA_VIRTUAL bool DMAWrite (const ULWord inFrameNumber, const ULWord * pFrameBuffer, const ULWord inOffsetBytes, const ULWord inByteCount);
205 
206 
219  AJA_VIRTUAL bool DMAReadFrame (const ULWord inFrameNumber, ULWord * pOutFrameBuffer, const ULWord inByteCount);
220 
238  AJA_VIRTUAL bool DMAReadFrame (const ULWord inFrameNumber, ULWord * pHostBuffer, const ULWord inByteCount, const NTV2Channel inChannel);
239 
252  AJA_VIRTUAL bool DMAWriteFrame (const ULWord inFrameNumber, const ULWord * pInFrameBuffer, const ULWord inByteCount);
253 
271  AJA_VIRTUAL bool DMAWriteFrame (const ULWord inFrameNumber, const ULWord * pInFrameBuffer, const ULWord inByteCount, const NTV2Channel inChannel);
272 
288  AJA_VIRTUAL bool DMAReadSegments ( const ULWord inFrameNumber,
289  ULWord * pFrameBuffer,
290  const ULWord inCardOffsetBytes,
291  const ULWord inSegmentByteCount,
292  const ULWord inNumSegments,
293  const ULWord inSegmentHostPitch,
294  const ULWord inSegmentCardPitch);
295 
311  AJA_VIRTUAL bool DMAWriteSegments ( const ULWord inFrameNumber,
312  const ULWord * pFrameBuffer,
313  const ULWord inOffsetBytes,
314  const ULWord inSegmentByteCount,
315  const ULWord inNumSegments,
316  const ULWord inSegmentHostPitch,
317  const ULWord inSegmentCardPitch);
318 
322  AJA_VIRTUAL bool DmaP2PTargetFrame (NTV2Channel channel, // frame buffer channel output frame to update on completion
323  ULWord frameNumber, // frame number to target
324  ULWord frameOffset, // frame buffer offset (bytes)
325  PCHANNEL_P2P_STRUCT pP2PData); // p2p target data (output)
326 
327  AJA_VIRTUAL bool DmaP2PTransferFrame (NTV2DMAEngine DMAEngine, // dma engine for transfer
328  ULWord frameNumber, // source frame number
329  ULWord frameOffset, // source frame buffer offset (bytes)
330  ULWord transferSize, // transfer size (bytes)
331  ULWord numSegments, // number of segments (0 if not a segmented transfer)
332  ULWord segmentTargetPitch, // target frame pitch (0 if not a segmented transfer)
333  ULWord segmentCardPitch, // source frame pitch (0 if not a segmented transfer)
334  PCHANNEL_P2P_STRUCT pP2PData); // p2p target data
335 
351  AJA_VIRTUAL bool DMAReadAudio ( const NTV2AudioSystem inAudioSystem,
352  ULWord * pOutAudioBuffer,
353  const ULWord inOffsetBytes,
354  const ULWord inByteCount);
355 
371  AJA_VIRTUAL bool DMAWriteAudio ( const NTV2AudioSystem inAudioSystem,
372  const ULWord * pInAudioBuffer,
373  const ULWord inOffsetBytes,
374  const ULWord inByteCount);
375 
398  AJA_VIRTUAL bool DMAReadAnc ( const ULWord inFrameNumber,
399  NTV2Buffer & outAncF1Buffer,
400  NTV2Buffer & outAncF2Buffer = NULL_POINTER,
401  const NTV2Channel inChannel = NTV2_CHANNEL1);
402 
431  AJA_VIRTUAL bool DMAWriteAnc ( const ULWord inFrameNumber,
432  NTV2Buffer & inAncF1Buffer,
433  NTV2Buffer & inAncF2Buffer = NULL_POINTER,
434  const NTV2Channel inChannel = NTV2_CHANNEL1);
435 
436 
447  AJA_VIRTUAL bool DMAWriteLUTTable ( const ULWord inFrameNumber, const ULWord * pInLUTBuffer, const ULWord inLUTIndex,const ULWord inByteCount = LUTTablePartitionSize);
448 
457  AJA_VIRTUAL bool DMABufferLock (const NTV2Buffer & inBuffer, bool inMap = false, bool inRDMA = false); // New in SDK 15.5
458 
471  AJA_VIRTUAL inline bool DMABufferLock (const ULWord * pInBuffer, const ULWord inByteCount, bool inMap = false, bool inRDMA = false)
472  {
473  return DMABufferLock(NTV2Buffer(pInBuffer, inByteCount), inMap, inRDMA);
474  }
475 
476 
483  AJA_VIRTUAL bool DMABufferUnlock (const NTV2Buffer & inBuffer);
484 
492  AJA_VIRTUAL inline bool DMABufferUnlock (const ULWord * pInBuffer, const ULWord inByteCount)
493  {
494  return DMABufferUnlock(NTV2Buffer(pInBuffer, inByteCount));
495  }
496 
502  AJA_VIRTUAL bool DMABufferUnlockAll ();
503 
512  AJA_VIRTUAL bool DMABufferAutoLock (const bool inEnable, const bool inMap = false, const ULWord64 inMaxLockSize = 0);
513 
514 
525  AJA_VIRTUAL bool DMAClearAncRegion ( const UWord inStartFrameNumber,
526  const UWord inEndFrameNumber,
527  const NTV2AncillaryDataRegion inAncRegion = NTV2_AncRgn_All,
528  const NTV2Channel inChannel = NTV2_CHANNEL1);
529 
540  AJA_VIRTUAL bool GetDeviceFrameInfo (const UWord inFrameNumber, const NTV2Channel inChannel,
541  uint64_t & outAddress, uint64_t & outLength);
542 
543  AJA_VIRTUAL bool GetDeviceFrameInfo (const UWord inFrameNumber, const NTV2Channel inChannel, ULWord & outIntrinsicSize,
544  bool & outMultiFmt, bool & outQuad, bool & outQuadQuad, bool & outSquares, bool & outTSI,
545  uint64_t & outAddress, uint64_t & outLength); // New in SDK 16.2
546 
555  AJA_VIRTUAL bool DeviceAddressToFrameNumber (const uint64_t inAddress, UWord & outFrameNumber, const NTV2Channel inChannel = NTV2_CHANNEL1);
556 
570  AJA_VIRTUAL bool GetAncRegionOffsetAndSize (ULWord & outByteOffset, ULWord & outByteCount,
571  const NTV2AncillaryDataRegion inAncRegion = NTV2_AncRgn_All);
572 
584  AJA_VIRTUAL bool GetAncRegionOffsetFromBottom (ULWord & outByteOffsetFromBottom,
585  const NTV2AncillaryDataRegion inAncRegion = NTV2_AncRgn_All);
587 
588 //
589 // Set/Get Parameter routines
590 //
591  #if defined (AJAMac)
592  #define AJA_RETAIL_DEFAULT true
593  #else // else !defined (AJAMac)
594  #define AJA_RETAIL_DEFAULT false
595  #endif // !defined (AJAMac)
596 
613  AJA_VIRTUAL bool SetVideoFormat (const NTV2VideoFormat inVideoFormat, const bool inIsAJARetail = AJA_RETAIL_DEFAULT, const bool inKeepVancSettings = false, const NTV2Channel inChannel = NTV2_CHANNEL1);
614 
626  AJA_VIRTUAL bool SetVideoFormat (const NTV2ChannelSet & inFrameStores, const NTV2VideoFormat inVideoFormat, const bool inIsAJARetail = AJA_RETAIL_DEFAULT);
627 
635  AJA_VIRTUAL bool SetFrameGeometry (NTV2FrameGeometry inGeometry, bool inIsRetail = AJA_RETAIL_DEFAULT, NTV2Channel inChannel = NTV2_CHANNEL1);
636 
652  AJA_VIRTUAL bool SetFrameBufferFormat (NTV2Channel inChannel,
653  NTV2FrameBufferFormat inNewFormat,
654  bool inIsAJARetail = AJA_RETAIL_DEFAULT,
658 
674  AJA_VIRTUAL bool SetFrameBufferFormat (const NTV2ChannelSet & inFrameStores,
675  const NTV2FrameBufferFormat inNewFormat,
676  const bool inIsAJARetail = AJA_RETAIL_DEFAULT,
677  const NTV2HDRXferChars inXferChars = NTV2_VPID_TC_SDR_TV,
678  const NTV2HDRColorimetry inColorimetry = NTV2_VPID_Color_Rec709,
679  const NTV2HDRLuminance inLuminance = NTV2_VPID_Luminance_YCbCr);
680 
693  AJA_VIRTUAL bool SetReference (const NTV2ReferenceSource inRefSource, const bool inKeepFramePulseSelect = false);
694 
701  AJA_VIRTUAL bool GetReference (NTV2ReferenceSource & outRefSource);
702 
709  AJA_VIRTUAL bool EnableFramePulseReference (const bool inEnable); // New in SDK 15.5
710 
718  AJA_VIRTUAL bool GetEnableFramePulseReference (bool & outEnabled); // New in SDK 15.5
719 
726  AJA_VIRTUAL bool SetFramePulseReference (const NTV2ReferenceSource inRefSource); // New in SDK 15.5
727 
734  AJA_VIRTUAL bool GetFramePulseReference (NTV2ReferenceSource & outRefSource); // New in SDK 15.5
735 
742  AJA_VIRTUAL bool GetTaskMode (NTV2TaskMode & outMode); // New in SDK 18.0
743 
753  AJA_VIRTUAL bool SetTaskMode (const NTV2TaskMode inMode); // New in SDK 18.0
754 
765  AJA_VIRTUAL bool SetMode (const NTV2Channel inChannel, const NTV2Mode inNewValue, const bool inIsRetail = AJA_RETAIL_DEFAULT);
766 
776  AJA_VIRTUAL bool SetMode (const NTV2ChannelSet & inChannels, const NTV2Mode inMode);
777 
786  AJA_VIRTUAL bool GetMode (const NTV2Channel inChannel, NTV2Mode & outValue);
787 
788  AJA_VIRTUAL bool GetFrameGeometry (NTV2FrameGeometry & outValue, NTV2Channel inChannel = NTV2_CHANNEL1);
789 
800  AJA_VIRTUAL bool GetFrameBufferFormat (NTV2Channel inChannel, NTV2FrameBufferFormat & outValue);
801 
802 
803  // The rest of the routines
804  AJA_VIRTUAL bool GetVideoFormat (NTV2VideoFormat & outValue, NTV2Channel inChannel = NTV2_CHANNEL1);
805 
806  AJA_VIRTUAL bool SetStandard (NTV2Standard inValue, NTV2Channel inChannel = NTV2_CHANNEL1);
807  AJA_VIRTUAL bool GetStandard (NTV2Standard & outValue, NTV2Channel inChannel = NTV2_CHANNEL1);
808 
809  AJA_VIRTUAL bool IsProgressiveStandard (bool & outIsProgressive, NTV2Channel inChannel = NTV2_CHANNEL1);
810 
811  AJA_VIRTUAL bool IsSDStandard (bool & outIsStandardDef, NTV2Channel inChannel = NTV2_CHANNEL1);
812 
821  AJA_VIRTUAL bool SetFrameRate (NTV2FrameRate inNewValue, NTV2Channel inChannel = NTV2_CHANNEL1);
822 
831  AJA_VIRTUAL bool GetFrameRate (NTV2FrameRate & outValue, NTV2Channel inChannel = NTV2_CHANNEL1);
832 
843  AJA_VIRTUAL bool SetSmpte372 (ULWord inValue, NTV2Channel inChannel = NTV2_CHANNEL1);
844 
854  AJA_VIRTUAL bool GetSmpte372 (ULWord & outValue, NTV2Channel inChannel = NTV2_CHANNEL1);
855 
856  AJA_VIRTUAL bool SetProgressivePicture (ULWord value);
857  AJA_VIRTUAL bool GetProgressivePicture (ULWord & outValue);
858 
869  AJA_VIRTUAL bool SetQuadFrameEnable (const bool inValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
870 
878  AJA_VIRTUAL bool GetQuadFrameEnable (bool & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
879 
890  AJA_VIRTUAL bool SetQuadQuadFrameEnable (const bool inValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
891 
899  AJA_VIRTUAL bool GetQuadQuadFrameEnable (bool & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
900 
909  AJA_VIRTUAL bool SetQuadQuadSquaresEnable (const bool inValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
910 
919  AJA_VIRTUAL bool GetQuadQuadSquaresEnable (bool & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
920 
932  AJA_VIRTUAL bool Set4kSquaresEnable (const bool inIsEnabled, const NTV2Channel inChannel);
933 
943  AJA_VIRTUAL bool Get4kSquaresEnable (bool & outIsEnabled, const NTV2Channel inChannel);
944 
955  AJA_VIRTUAL bool SetTsiFrameEnable (const bool inIsEnabled, const NTV2Channel inChannel);
956 
965  AJA_VIRTUAL bool GetTsiFrameEnable (bool & outIsEnabled, const NTV2Channel inChannel);
966 
973  AJA_VIRTUAL bool GetTsiMuxSyncFail (bool & outSyncFailed, const NTV2Channel inWhichTsiMux);
974 
975  AJA_VIRTUAL bool SetFrameBufferQuarterSizeMode (NTV2Channel inChannel, NTV2QuarterSizeExpandMode inValue);
976  AJA_VIRTUAL bool GetFrameBufferQuarterSizeMode (NTV2Channel inChannel, NTV2QuarterSizeExpandMode & outValue);
977 
978  AJA_VIRTUAL bool SetFrameBufferQuality (NTV2Channel inChannel, NTV2FrameBufferQuality inValue);
979  AJA_VIRTUAL bool GetFrameBufferQuality (NTV2Channel inChannel, NTV2FrameBufferQuality & outValue);
980 
981  AJA_VIRTUAL bool SetEncodeAsPSF (NTV2Channel inChannel, NTV2EncodeAsPSF inValue);
982  AJA_VIRTUAL bool GetEncodeAsPSF (NTV2Channel inChannel, NTV2EncodeAsPSF & outValue);
983 
995  AJA_VIRTUAL bool SetFrameBufferOrientation (const NTV2Channel inChannel, const NTV2FBOrientation inValue);
996 
1007  AJA_VIRTUAL bool GetFrameBufferOrientation (const NTV2Channel inChannel, NTV2FBOrientation & outValue);
1008 
1034  AJA_VIRTUAL bool SetOutputFrame (const NTV2Channel inChannel, const ULWord inValue);
1035 
1044  AJA_VIRTUAL bool GetOutputFrame (const NTV2Channel inChannel, ULWord & outValue);
1045 
1072  AJA_VIRTUAL bool SetInputFrame (const NTV2Channel inChannel, const ULWord inValue);
1073 
1084  AJA_VIRTUAL bool GetInputFrame (const NTV2Channel inChannel, ULWord & outValue);
1085 
1086  AJA_VIRTUAL bool SetDualLinkOutputEnable (const bool inIsEnabled);
1087  AJA_VIRTUAL bool GetDualLinkOutputEnable (bool & outIsEnabled);
1088 
1089  AJA_VIRTUAL bool SetDualLinkInputEnable (const bool inIsEnabled);
1090  AJA_VIRTUAL bool GetDualLinkInputEnable (bool & outIsEnabled);
1091 
1098  AJA_VIRTUAL bool SetVideoLimiting (const NTV2VideoLimiting inValue);
1099 
1106  AJA_VIRTUAL bool GetVideoLimiting (NTV2VideoLimiting & outValue);
1107 
1108  AJA_VIRTUAL bool SetEnableVANCData (const bool inVANCenabled, const bool inTallerVANC, const NTV2Standard inStandard, const NTV2FrameGeometry inGeometry, const NTV2Channel inChannel = NTV2_CHANNEL1);
1109  AJA_VIRTUAL bool SetEnableVANCData (const bool inVANCenabled, const bool inTallerVANC = false, const NTV2Channel inChannel = NTV2_CHANNEL1);
1110 
1119  AJA_VIRTUAL bool SetVANCMode (const NTV2VANCMode inVancMode, const NTV2Channel inChannel = NTV2_CHANNEL1);
1120 
1128  AJA_VIRTUAL bool SetVANCMode (const NTV2ChannelSet & inChannels, const NTV2VANCMode inVancMode);
1129 
1138  AJA_VIRTUAL bool GetVANCMode (NTV2VANCMode & outVancMode, const NTV2Channel inChannel = NTV2_CHANNEL1);
1139 
1152  AJA_VIRTUAL bool SetVANCShiftMode (NTV2Channel inChannel, NTV2VANCDataShiftMode inMode);
1153 
1166  AJA_VIRTUAL bool SetVANCShiftMode (NTV2ChannelSet & inChannels, const NTV2VANCDataShiftMode inMode); // New in SDK 16.2
1167 
1181  AJA_VIRTUAL bool GetVANCShiftMode (NTV2Channel inChannel, NTV2VANCDataShiftMode & outValue);
1182 
1183  AJA_VIRTUAL bool SetPulldownMode (NTV2Channel inChannel, bool inValue);
1184  AJA_VIRTUAL bool GetPulldownMode (NTV2Channel inChannel, bool & outValue);
1185 
1196  AJA_VIRTUAL bool ReadLineCount (ULWord & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
1197 
1198 #if !defined(NTV2_DEPRECATE_18_1)
1200  AJA_VIRTUAL inline NTV2_DEPRECATED_18_1(bool GetAlphaFromInput2Bit (ULWord & outVal)) {return ReadRegister (kRegCh1Control, outVal, kRegMaskAlphaFromInput2, kRegShiftAlphaFromInput2);}
1201 #endif
1202 #if !defined(NTV2_DEPRECATE_18_0)
1203  AJA_VIRTUAL inline NTV2_DEPRECATED_18_0(bool GetEveryFrameServices(NTV2TaskMode & m)) {return GetTaskMode(m);}
1204  AJA_VIRTUAL inline NTV2_DEPRECATED_18_0(bool SetEveryFrameServices(const NTV2TaskMode m)) {return SetTaskMode(m);}
1205 #endif // defined(NTV2_DEPRECATE_18_0)
1206 #if !defined(NTV2_DEPRECATE_16_3)
1207  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool SetDefaultVideoOutMode(ULWord mode));
1208  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool GetDefaultVideoOutMode(ULWord & outMode));
1209 #endif // defined(NTV2_DEPRECATE_16_3)
1210 #if !defined(NTV2_DEPRECATE_16_2)
1211  AJA_VIRTUAL NTV2_DEPRECATED_16_2(bool GetActiveFrameDimensions (NTV2FrameDimensions & outFrameDimensions, const NTV2Channel inChannel = NTV2_CHANNEL1));
1212  AJA_VIRTUAL NTV2_DEPRECATED_16_2(NTV2FrameDimensions GetActiveFrameDimensions (const NTV2Channel inChannel = NTV2_CHANNEL1));
1213  AJA_VIRTUAL NTV2_DEPRECATED_16_2(bool GetNumberActiveLines (ULWord & outNumActiveLines));
1214  AJA_VIRTUAL NTV2_DEPRECATED_16_2(bool FlipFlopPage (const NTV2Channel inChannel));
1215  AJA_VIRTUAL NTV2_DEPRECATED_16_2(bool SetPCIAccessFrame (const NTV2Channel inChannel, const ULWord inValue, const bool inWaitForVBI = true));
1216  AJA_VIRTUAL NTV2_DEPRECATED_16_2(bool GetPCIAccessFrame (const NTV2Channel inChannel, ULWord & outValue));
1217 #endif // !defined(NTV2_DEPRECATE_16_2)
1218 #if !defined(NTV2_DEPRECATE_16_0)
1219  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool SetEnableVANCData (const NTV2ChannelSet & inChannels, const bool inVANCenable, const bool inTallerVANC = false)) {return SetVANCMode(inChannels, NTV2VANCModeFromBools(inVANCenable, inTallerVANC));}
1220  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool SetVANCMode (const NTV2VANCMode m, const NTV2Standard st, const NTV2FrameGeometry fg,
1221  const NTV2Channel ch = NTV2_CHANNEL1)) {(void) st; (void) fg; return SetVANCMode(m, ch);}
1222  #define Set425FrameEnable SetTsiFrameEnable // Replace calls to Set425FrameEnable with calls to SetTsiFrameEnable instead
1223  #define Get425FrameEnable GetTsiFrameEnable // Replace calls to Get425FrameEnable with calls to GetTsiFrameEnable instead
1224 #endif // NTV2_DEPRECATE_16_0
1225 
1226 
1230 
1241  AJA_VIRTUAL bool SetMixerVancOutputFromForeground (const UWord inWhichMixer, const bool inFromForegroundSource = true);
1242 
1252  AJA_VIRTUAL bool GetMixerVancOutputFromForeground (const UWord inWhichMixer, bool & outIsFromForegroundSource);
1253 
1254 
1262  AJA_VIRTUAL bool SetMixerFGInputControl (const UWord inWhichMixer, const NTV2MixerKeyerInputControl inInputControl);
1263 
1271  AJA_VIRTUAL bool GetMixerFGInputControl (const UWord inWhichMixer, NTV2MixerKeyerInputControl & outInputControl);
1272 
1280  AJA_VIRTUAL bool SetMixerBGInputControl (const UWord inWhichMixer, const NTV2MixerKeyerInputControl inInputControl);
1281 
1289  AJA_VIRTUAL bool GetMixerBGInputControl (const UWord inWhichMixer, NTV2MixerKeyerInputControl & outInputControl);
1290 
1298  AJA_VIRTUAL bool SetMixerMode (const UWord inWhichMixer, const NTV2MixerKeyerMode inMode);
1299 
1307  AJA_VIRTUAL bool GetMixerMode (const UWord inWhichMixer, NTV2MixerKeyerMode & outMode);
1308 
1316  AJA_VIRTUAL bool SetMixerCoefficient (const UWord inWhichMixer, const ULWord inMixCoefficient);
1317 
1325  AJA_VIRTUAL bool GetMixerCoefficient (const UWord inWhichMixer, ULWord & outMixCoefficient);
1326 
1335  AJA_VIRTUAL bool GetMixerSyncStatus (const UWord inWhichMixer, bool & outIsSyncOK);
1336 
1344  AJA_VIRTUAL bool GetMixerFGMatteEnabled (const UWord inWhichMixer, bool & outIsEnabled);
1345 
1353  AJA_VIRTUAL bool SetMixerFGMatteEnabled (const UWord inWhichMixer, const bool inIsEnabled);
1354 
1362  AJA_VIRTUAL bool GetMixerBGMatteEnabled (const UWord inWhichMixer, bool & outIsEnabled);
1363 
1371  AJA_VIRTUAL bool SetMixerBGMatteEnabled (const UWord inWhichMixer, const bool inIsEnabled);
1372 
1380  AJA_VIRTUAL bool GetMixerMatteColor (const UWord inWhichMixer, YCbCr10BitPixel & outYCbCrValue);
1381 
1389  AJA_VIRTUAL bool SetMixerMatteColor (const UWord inWhichMixer, const YCbCr10BitPixel inYCbCrValue);
1390 
1397  AJA_VIRTUAL bool MixerHasRGBModeSupport (const UWord inWhichMixer, bool & outIsSupported);
1398 
1405  AJA_VIRTUAL bool SetMixerRGBRange (const UWord inWhichMixer, const NTV2MixerRGBRange inRGBRange);
1406 
1413  AJA_VIRTUAL bool GetMixerRGBRange (const UWord inWhichMixer, NTV2MixerRGBRange & outRGBRange);
1415 
1416 
1420 
1431  AJA_VIRTUAL bool SetNumberAudioChannels (const ULWord inNumChannels, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1432 
1441  AJA_VIRTUAL bool SetNumberAudioChannels (const ULWord inNumChannels, const NTV2AudioSystemSet & inAudioSystems); // New in SDK 16.2
1442 
1453  AJA_VIRTUAL bool GetNumberAudioChannels (ULWord & outNumChannels, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1454 
1462  AJA_VIRTUAL bool SetAudioRate (const NTV2AudioRate inRate, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1463 
1471  AJA_VIRTUAL bool GetAudioRate (NTV2AudioRate & outRate, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1472 
1481  AJA_VIRTUAL bool SetAudioBufferSize (const NTV2AudioBufferSize inValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1482 
1491  AJA_VIRTUAL bool SetAudioBufferSize (const NTV2AudioBufferSize inSize, const NTV2AudioSystemSet & inAudioSystems); // New in SDK 16.2
1492 
1500  AJA_VIRTUAL bool GetAudioBufferSize (NTV2AudioBufferSize & outSize, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1501 
1509  AJA_VIRTUAL bool SetAudio20BitMode (const NTV2AudioSystem inAudioSystem, const bool inEnable); // New in SDK 13.0
1510 
1520  AJA_VIRTUAL bool GetAudio20BitMode (const NTV2AudioSystem inAudioSystem, bool & outEnable); // New in SDK 13.0
1521 
1531  AJA_VIRTUAL bool SetAudioLoopBack (const NTV2AudioLoopBack inMode, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1532 
1541  AJA_VIRTUAL bool SetAudioLoopBack (const NTV2AudioLoopBack inMode, const NTV2AudioSystemSet & inAudioSystems); // New in SDK 16.2
1542 
1552  AJA_VIRTUAL bool GetAudioLoopBack (NTV2AudioLoopBack & outMode, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1553 
1554 
1555  AJA_VIRTUAL bool SetAudioAnalogLevel (const NTV2AudioLevel value, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1556  AJA_VIRTUAL bool GetAudioAnalogLevel (NTV2AudioLevel & outValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1557  AJA_VIRTUAL bool SetEncodedAudioMode (const NTV2EncodedAudioMode value, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1558  AJA_VIRTUAL bool GetEncodedAudioMode (NTV2EncodedAudioMode & outValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1559 
1567  AJA_VIRTUAL bool SetEmbeddedAudioClock (const NTV2EmbeddedAudioClock inValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1568 
1576  AJA_VIRTUAL bool GetEmbeddedAudioClock (NTV2EmbeddedAudioClock & outValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1577 
1591  AJA_VIRTUAL bool GetAudioWrapAddress (ULWord & outWrapAddress, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1592 
1602  AJA_VIRTUAL bool GetAudioReadOffset (ULWord & outReadOffset, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1603 
1616  AJA_VIRTUAL bool GetAudioMemoryOffset (const ULWord inOffsetBytes, ULWord & outAbsByteOffset,
1617  const NTV2AudioSystem inAudioSystem, const bool inCaptureBuffer = false); // New in SDK 13.0
1618 
1630  AJA_VIRTUAL bool ReadAudioLastOut (ULWord & outValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1631 
1642  AJA_VIRTUAL bool ReadAudioLastIn (ULWord & outValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1643 
1658  AJA_VIRTUAL bool StartAudioOutput (const NTV2AudioSystem inAudioSystem, const bool inWaitForVBI = false); // New in SDK 14.3
1659 
1670  AJA_VIRTUAL bool StopAudioOutput (const NTV2AudioSystem inAudioSystem); // New in SDK 14.3
1671 
1681  AJA_VIRTUAL bool IsAudioOutputRunning (const NTV2AudioSystem inAudioSystem, bool & outIsRunning); // New in SDK 14.3
1682 
1694  AJA_VIRTUAL bool SetAudioOutputPause (const NTV2AudioSystem inAudioSystem, const bool inPausePlayout); // New in SDK 12.3
1695 
1704  AJA_VIRTUAL bool GetAudioOutputPause (const NTV2AudioSystem inAudioSystem, bool & outIsPaused); // New in SDK 12.3
1705 
1720  AJA_VIRTUAL bool StartAudioInput (const NTV2AudioSystem inAudioSystem, const bool inWaitForVBI = false); // New in SDK 14.3
1721 
1733  AJA_VIRTUAL bool StopAudioInput (const NTV2AudioSystem inAudioSystem); // New in SDK 14.3
1734 
1743  AJA_VIRTUAL bool IsAudioInputRunning (const NTV2AudioSystem inAudioSystem, bool & outIsRunning); // New in SDK 14.3
1744 
1756  AJA_VIRTUAL bool SetAudioCaptureEnable (const NTV2AudioSystem inAudioSystem, const bool inEnable); // New in SDK 12.3
1757 
1768  AJA_VIRTUAL bool GetAudioCaptureEnable (const NTV2AudioSystem inAudioSystem, bool & outEnable); // New in SDK 12.3
1769 
1778  AJA_VIRTUAL bool SetAudioPlayCaptureModeEnable (const NTV2AudioSystem inAudioSystem, const bool inEnable);
1779 
1790  AJA_VIRTUAL bool GetAudioPlayCaptureModeEnable (const NTV2AudioSystem inAudioSystem, bool & outEnable);
1791 
1803  AJA_VIRTUAL bool SetAudioInputDelay (const NTV2AudioSystem inAudioSystem, const ULWord inDelay);
1804 
1815  AJA_VIRTUAL bool GetAudioInputDelay (const NTV2AudioSystem inAudioSystem, ULWord & outDelay);
1816 
1817 
1828  AJA_VIRTUAL bool SetAudioOutputDelay (const NTV2AudioSystem inAudioSystem, const ULWord inDelay);
1829 
1840  AJA_VIRTUAL bool GetAudioOutputDelay (const NTV2AudioSystem inAudioSystem, ULWord & outDelay);
1841 
1842 
1854  AJA_VIRTUAL bool SetAudioPCMControl (const NTV2AudioSystem inAudioSystem, const bool inIsNonPCM); // New in SDK 12.1
1855 
1856 
1866  AJA_VIRTUAL bool GetAudioPCMControl (const NTV2AudioSystem inAudioSystem, bool & outIsNonPCM); // New in SDK 12.1
1867 
1868 
1882  AJA_VIRTUAL bool SetAudioPCMControl (const NTV2AudioSystem inAudioSystem, const NTV2AudioChannelPair inChannelPair, const bool inIsNonPCM); // New in SDK 12.2
1883 
1884 
1893  AJA_VIRTUAL bool SetAudioPCMControl (const NTV2AudioSystem inAudioSystem, const NTV2AudioChannelPairs & inNonPCMChannelPairs); // New in SDK 12.4
1894 
1895 
1909  AJA_VIRTUAL bool GetAudioPCMControl (const NTV2AudioSystem inAudioSystem, const NTV2AudioChannelPair inChannelPair, bool & outIsNonPCM); // New in SDK 12.2
1910 
1911 
1921  AJA_VIRTUAL bool GetAudioPCMControl (const NTV2AudioSystem inAudioSystem, NTV2AudioChannelPairs & outNonPCMChannelPairs); // New in SDK 12.4
1922 
1923 
1932  AJA_VIRTUAL bool IsAudioChannelPairPresent (const NTV2AudioSystem inAudioSystem, const NTV2AudioChannelPair inChannelPair, bool & outIsPresent); // New in SDK 12.5
1933 
1934 
1945  AJA_VIRTUAL bool GetDetectedAudioChannelPairs (const NTV2AudioSystem inAudioSystem, NTV2AudioChannelPairs & outDetectedChannelPairs); // New in SDK 12.5
1946 
1947 
1954  AJA_VIRTUAL bool GetDetectedAESChannelPairs (NTV2AudioChannelPairs & outDetectedChannelPairs); // New in SDK 13.0
1955 
1956 
1970  AJA_VIRTUAL bool SetAudioSystemInputSource (const NTV2AudioSystem inAudioSystem, const NTV2AudioSource inAudioSource, const NTV2EmbeddedAudioInput inEmbeddedInput);
1971 
1983  AJA_VIRTUAL bool GetAudioSystemInputSource (const NTV2AudioSystem inAudioSystem, NTV2AudioSource & outAudioSource, NTV2EmbeddedAudioInput & outEmbeddedSource);
1984 
1998  AJA_VIRTUAL bool SetEmbeddedAudioInput (const NTV2EmbeddedAudioInput inEmbeddedSource, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
1999 
2010  AJA_VIRTUAL bool GetEmbeddedAudioInput (NTV2EmbeddedAudioInput & outEmbeddedSource, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
2011 
2019  virtual bool InputAudioChannelPairHasPCM (const NTV2Channel inSDIInputConnector, const NTV2AudioChannelPair inAudioChannelPair, bool & outIsPCM); // New in SDK 12.3
2020 
2031  virtual bool GetInputAudioChannelPairsWithPCM (const NTV2Channel inSDIInputConnector, NTV2AudioChannelPairs & outChannelPairs); // New in SDK 12.3
2032 
2039  virtual bool GetInputAudioChannelPairsWithoutPCM (const NTV2Channel inSDIInputConnector, NTV2AudioChannelPairs & outChannelPairs); // New in SDK 12.3
2040 
2048  AJA_VIRTUAL bool GetSuspendHostAudio (bool & outIsSuspended); // New in SDK 12.1
2049 
2058  AJA_VIRTUAL bool SetSuspendHostAudio (const bool inSuspend); // New in SDK 12.1
2059 
2070  AJA_VIRTUAL bool GetAESOutputSource (const NTV2Audio4ChannelSelect inAESAudioChannels, NTV2AudioSystem & outSrcAudioSystem, NTV2Audio4ChannelSelect & outSrcAudioChannels); // New in SDK 12.5
2071 
2082  AJA_VIRTUAL bool SetAESOutputSource (const NTV2Audio4ChannelSelect inAESAudioChannels, const NTV2AudioSystem inSrcAudioSystem, const NTV2Audio4ChannelSelect inSrcAudioChannels); // New in SDK 12.5
2083 
2092  AJA_VIRTUAL bool SetAudioOutputMonitorSource (const NTV2AudioChannelPair inChannelPair, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1);
2093 
2102  AJA_VIRTUAL bool GetAudioOutputMonitorSource (NTV2AudioChannelPair & outChannelPair, NTV2AudioSystem & outAudioSystem);
2103 
2112  AJA_VIRTUAL bool GetAudioOutputEraseMode (const NTV2AudioSystem inAudioSystem, bool & outEraseModeEnabled); // New in SDK 13.0
2113 
2122  AJA_VIRTUAL bool SetAudioOutputEraseMode (const NTV2AudioSystem inAudioSystem, const bool & inEraseModeEnabled); // New in SDK 13.0
2123 
2131  AJA_VIRTUAL bool GetAudioOutputAESSyncModeBit (const NTV2AudioSystem inAudioSystem, bool & outAESSyncModeBitSet); // New in SDK 15.2
2132 
2140  AJA_VIRTUAL bool SetAudioOutputAESSyncModeBit (const NTV2AudioSystem inAudioSystem, const bool & inAESSyncModeBitSet); // New in SDK 15.2
2141 
2150  AJA_VIRTUAL bool SetAnalogAudioTransmitEnable (const NTV2Audio4ChannelSelect inChannelQuad, const bool inEnable); // New in SDK 16.1
2151 
2160  AJA_VIRTUAL bool GetAnalogAudioTransmitEnable (const NTV2Audio4ChannelSelect inChannelQuad, bool & outEnabled); // New in SDK 16.1
2161 
2171  AJA_VIRTUAL bool GetRawAudioTimer (ULWord & outValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1); // New in SDK 15.5
2172 
2180  AJA_VIRTUAL bool EnableBOBAnalogAudioIn (bool inEnable); // New in SDK 17.0
2181 
2189  AJA_VIRTUAL bool SetMultiLinkAudioMode (const NTV2AudioSystem inAudioSystem, const bool inEnable); // New in SDK 16.2
2190 
2198  AJA_VIRTUAL bool GetMultiLinkAudioMode (const NTV2AudioSystem inAudioSystem, bool & outEnabled); // New in SDK 16.2
2199 
2200 #if !defined(NTV2_DEPRECATE_16_0)
2201  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool WriteAudioSource (const ULWord inValue, const NTV2Channel inChannel = NTV2_CHANNEL1));
2202  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool ReadAudioSource (ULWord & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1));
2203  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool SetAudioOutputReset (const NTV2AudioSystem inAudioSystem, const bool inIsReset)) {return inIsReset ? StopAudioOutput(inAudioSystem) : StartAudioOutput(inAudioSystem);}
2204  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool GetAudioOutputReset (const NTV2AudioSystem inAudioSystem, bool & outIsReset)) {if(!IsAudioOutputRunning(inAudioSystem, outIsReset)) return false; outIsReset = !outIsReset; return true; }
2205  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool SetAudioInputReset (const NTV2AudioSystem inAudioSystem, const bool inIsReset)) {return inIsReset ? StopAudioInput(inAudioSystem) : StartAudioInput(inAudioSystem);}
2206  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool GetAudioInputReset (const NTV2AudioSystem inAudioSystem, bool & outIsReset)) {if(!IsAudioInputRunning(inAudioSystem, outIsReset)) return false; outIsReset = !outIsReset; return true; }
2207 #endif // !defined(NTV2_DEPRECATE_16_0)
2208 #if !defined(NTV2_DEPRECATE_16_1)
2209  AJA_VIRTUAL NTV2_DEPRECATED_16_1(bool SetAnalogAudioIOConfiguration (const NTV2AnalogAudioIO inConfig));
2210  AJA_VIRTUAL NTV2_DEPRECATED_16_1(bool GetAnalogAudioIOConfiguration (NTV2AnalogAudioIO & outConfig));
2211  AJA_VIRTUAL inline NTV2_DEPRECATED_16_1(bool ReadAudioLastOut (ULWord & outValue, const NTV2Channel inChannel)) {return ReadAudioLastOut(outValue, NTV2AudioSystem(inChannel));}
2212  AJA_VIRTUAL inline NTV2_DEPRECATED_16_1(bool ReadAudioLastIn (ULWord & outValue, const NTV2Channel inChannel)) {return ReadAudioLastIn(outValue, NTV2AudioSystem(inChannel));}
2213  AJA_VIRTUAL inline NTV2_DEPRECATED_16_1(bool WriteAudioLastOut (ULWord & outValue, const NTV2Channel inChannel)) {(void)outValue;(void)inChannel; return false;}
2214 #endif // !defined(NTV2_DEPRECATE_16_1)
2215 #if !defined(NTV2_DEPRECATE_16_3)
2216  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(bool WriteAudioLastOut (const ULWord inValue, const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1)) {(void)inValue;(void)inAudioSystem; return false;}
2217 #endif // !defined(NTV2_DEPRECATE_16_3)
2218 #if !defined(NTV2_DEPRECATE_17_0)
2220 #endif // !defined(NTV2_DEPRECATE_17_0)
2221 #if !defined(NTV2_DEPRECATE_17_5)
2222  AJA_VIRTUAL inline NTV2_DEPRECATED_17_5(bool GetAudioOutputEmbedderState (const NTV2Channel sdi, bool & enb)) {return GetSDIOutputAudioEnabled(sdi,enb);}
2223  AJA_VIRTUAL inline NTV2_DEPRECATED_17_5(bool SetAudioOutputEmbedderState (const NTV2Channel sdi, const bool & enb)) {return SetSDIOutputAudioEnabled(sdi,enb);}
2224 #endif // defined(NTV2_DEPRECATE_17_5)
2225 
2230 
2239  AJA_VIRTUAL bool GetAudioMixerInputAudioSystem (const NTV2AudioMixerInput inMixerInput, NTV2AudioSystem & outAudioSystem); // New in SDK 15.5
2240 
2248  AJA_VIRTUAL bool SetAudioMixerInputAudioSystem (const NTV2AudioMixerInput inMixerInput, const NTV2AudioSystem inAudioSystem); // New in SDK 15.5
2249 
2258  AJA_VIRTUAL bool GetAudioMixerInputChannelSelect (const NTV2AudioMixerInput inMixerInput, NTV2AudioChannelPair & outChannelPair); // New in SDK 15.5
2259 
2268  AJA_VIRTUAL bool SetAudioMixerInputChannelSelect (const NTV2AudioMixerInput inMixerInput, const NTV2AudioChannelPair inChannelPair); // New in SDK 15.5
2269 
2281  AJA_VIRTUAL bool GetAudioMixerInputGain (const NTV2AudioMixerInput inMixerInput, const NTV2AudioMixerChannel inChannel, ULWord & outGainValue); // New in SDK 15.5
2282 
2294  AJA_VIRTUAL bool SetAudioMixerInputGain (const NTV2AudioMixerInput inMixerInput, const NTV2AudioMixerChannel inChannel, const ULWord inGainValue); // New in SDK 15.5
2295 
2303  AJA_VIRTUAL bool GetAudioMixerOutputGain (ULWord & outGainValue); // New in SDK 15.5
2304 
2312  AJA_VIRTUAL bool SetAudioMixerOutputGain (const ULWord inGainValue); // New in SDK 15.5
2313 
2323  AJA_VIRTUAL bool GetAudioMixerOutputLevels (const NTV2AudioChannelPairs & inChannelPairs, std::vector<uint32_t> & outLevels); // New in SDK 15.5
2324 
2332  AJA_VIRTUAL bool GetHeadphoneOutputGain (ULWord & outGainValue);
2333 
2341  AJA_VIRTUAL bool SetHeadphoneOutputGain (const ULWord inGainValue);
2342 
2352  AJA_VIRTUAL bool GetAudioMixerInputChannelsMute (const NTV2AudioMixerInput inMixerInput, NTV2AudioChannelsMuted16 & outMutes); // New in SDK 15.5
2353 
2364  AJA_VIRTUAL bool SetAudioMixerInputChannelsMute (const NTV2AudioMixerInput inMixerInput, const NTV2AudioChannelsMuted16 inMutes); // New in SDK 15.5
2365 
2376  AJA_VIRTUAL bool GetAudioMixerInputLevels (const NTV2AudioMixerInput inMixerInput, const NTV2AudioChannelPairs & inChannelPairs, std::vector<uint32_t> & outLevels); // New in SDK 15.5
2377 
2384  AJA_VIRTUAL bool GetAudioMixerLevelsSampleCount (ULWord & outSampleCount); // New in SDK 15.5
2385 
2393  AJA_VIRTUAL bool SetAudioMixerLevelsSampleCount (const ULWord inSampleCount); // New in SDK 15.5
2394 
2402  AJA_VIRTUAL bool GetAudioMixerOutputChannelsMute (NTV2AudioChannelsMuted16 & outMutes); // New in SDK 15.5
2403 
2412  AJA_VIRTUAL bool SetAudioMixerOutputChannelsMute (const NTV2AudioChannelsMuted16 inMutes); // New in SDK 15.5
2414 
2415  #if !defined(NTV2_DEPRECATE_16_3)
2417  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(bool ReadGlobalControl(ULWord * pOutVal)) {return pOutVal ? ReadRegister(kRegGlobalControl, *pOutVal) : false;}
2418  #endif // !defined(NTV2_DEPRECATE_16_3)
2419 
2420 
2424  AJA_VIRTUAL bool IsXilinxProgrammed (void);
2426  AJA_VIRTUAL bool GetProgramStatus (SSC_GET_FIRMWARE_PROGRESS_STRUCT * statusStruct);
2427 
2436  AJA_VIRTUAL bool GetRunningFirmwarePackageRevision (ULWord & outRevision);
2437 
2438 
2447  AJA_VIRTUAL bool GetRunningFirmwareRevision (UWord & outRevision);
2448 
2463  AJA_VIRTUAL bool GetRunningFirmwareDate (UWord & outYear, UWord & outMonth, UWord & outDay);
2464 
2479  AJA_VIRTUAL bool GetRunningFirmwareTime (UWord & outHours, UWord & outMinutes, UWord & outSeconds);
2480 
2495  AJA_VIRTUAL bool GetRunningFirmwareDate (std::string & outDate, std::string & outTime);
2496 
2503  AJA_VIRTUAL bool GetRunningFirmwareUserID (ULWord & outUserID); // New in SDK 16.1
2505 
2506 #if !defined(NTV2_DEPRECATE_16_0)
2507  // OEM Mapping to Userspace Functions
2508  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool GetBaseAddress(NTV2Channel channel, ULWord **pBaseAddress));
2509  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool GetBaseAddress(ULWord **pBaseAddress));
2510  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool GetRegisterBaseAddress(ULWord regNumber, ULWord ** pRegAddress));
2511  AJA_VIRTUAL NTV2_DEPRECATED_16_0(bool GetXena2FlashBaseAddress(ULWord ** pXena2FlashAddress));
2512 #endif // !defined(NTV2_DEPRECATE_16_0)
2513 #if !defined(NTV2_DEPRECATE_17_0)
2514  // Read-Only Status Registers
2515  AJA_VIRTUAL inline NTV2_DEPRECATED_17_0(bool ReadStatusRegister (ULWord *pVal)) {return pVal ? ReadRegister(kRegStatus, *pVal) : false;}
2516  AJA_VIRTUAL inline NTV2_DEPRECATED_17_0(bool ReadStatus2Register (ULWord *pVal)) {return pVal ? ReadRegister(kRegStatus2, *pVal) : false;}
2517  AJA_VIRTUAL inline NTV2_DEPRECATED_17_0(bool ReadInputStatusRegister (ULWord *pVal)) {return pVal ? ReadRegister(kRegInputStatus, *pVal) : false;}
2518  AJA_VIRTUAL inline NTV2_DEPRECATED_17_0(bool ReadInputStatus2Register (ULWord *pVal)) {return pVal ? ReadRegister(kRegInputStatus2, *pVal) : false;}
2519  AJA_VIRTUAL inline NTV2_DEPRECATED_17_0(bool ReadInput56StatusRegister (ULWord *pVal)) {return pVal ? ReadRegister(kRegInput56Status, *pVal) : false;}
2520  AJA_VIRTUAL inline NTV2_DEPRECATED_17_0(bool ReadInput78StatusRegister (ULWord *pVal)) {return pVal ? ReadRegister(kRegInput78Status, *pVal) : false;}
2524 #endif // !defined(NTV2_DEPRECATE_17_0)
2525 #if !defined(NTV2_DEPRECATE_18_1)
2529  AJA_VIRTUAL NTV2_DEPRECATED_18_1(bool ProgramMainFlash (const std::string & filePath, const bool forceUpdate = false, const bool quiet = false));
2530 #endif // !defined(NTV2_DEPRECATE_18_1)
2531 
2532 
2536 
2543  AJA_VIRTUAL inline bool SetLEDState (const ULWord inValue) {return WriteRegister (kRegGlobalControl, inValue, kRegMaskLED, kRegShiftLED);}
2544 
2551  AJA_VIRTUAL inline bool GetLEDState (ULWord & outValue) {return ReadRegister (kRegGlobalControl, outValue, kRegMaskLED, kRegShiftLED);}
2553 
2554 
2558 
2567  AJA_VIRTUAL bool SetRP188Mode (const NTV2Channel inChannel, const NTV2_RP188Mode inMode);
2568 
2576  AJA_VIRTUAL bool GetRP188Mode (const NTV2Channel inChannel, NTV2_RP188Mode & outMode);
2577 
2586  AJA_VIRTUAL bool SetRP188Data (const NTV2Channel inSDIOutput, const NTV2_RP188 & inRP188Data);
2587 
2602  AJA_VIRTUAL bool GetRP188Data (const NTV2Channel inSDIInput, NTV2_RP188 & outRP188Data);
2603 
2612  AJA_VIRTUAL bool SetRP188SourceFilter (const NTV2Channel inSDIInput, const UWord inFilterValue);
2613 
2624  AJA_VIRTUAL bool GetRP188SourceFilter (const NTV2Channel inSDIInput, UWord & outFilterValue);
2625 
2636  AJA_VIRTUAL bool IsRP188BypassEnabled (const NTV2Channel inSDIOutput, bool & outIsBypassEnabled);
2637 
2645  AJA_VIRTUAL bool DisableRP188Bypass (const NTV2Channel inSDIOutput);
2646 
2654  AJA_VIRTUAL bool EnableRP188Bypass (const NTV2Channel inSDIOutput);
2655 
2664  AJA_VIRTUAL bool SetRP188BypassSource (const NTV2Channel inSDIOutput, const UWord inSDIInput);
2665 
2674  AJA_VIRTUAL bool GetRP188BypassSource (const NTV2Channel inSDIOutput, UWord & outSDIInput);
2676 
2677 
2681  //
2683  // Enable Interrupt/Event
2684  //
2685  AJA_VIRTUAL bool EnableInterrupt (const INTERRUPT_ENUMS inEventCode); // GENERIC!
2686 
2693  AJA_VIRTUAL bool EnableOutputInterrupt (const NTV2Channel channel = NTV2_CHANNEL1);
2694 
2701  AJA_VIRTUAL bool EnableInputInterrupt (const NTV2Channel channel = NTV2_CHANNEL1);
2702 
2709  AJA_VIRTUAL bool EnableInputInterrupt (const NTV2ChannelSet & inFrameStores);
2710 
2711 
2712  // Disable Interrupt/Event
2713 
2714  AJA_VIRTUAL bool DisableInterrupt (const INTERRUPT_ENUMS inEventCode); // GENERIC!
2715 
2722  AJA_VIRTUAL bool DisableOutputInterrupt (const NTV2Channel channel = NTV2_CHANNEL1);
2723 
2730  AJA_VIRTUAL bool DisableInputInterrupt (const NTV2Channel channel = NTV2_CHANNEL1);
2731 
2738  AJA_VIRTUAL bool DisableInputInterrupt (const NTV2ChannelSet & inFrameStores);
2739 
2740  AJA_VIRTUAL bool GetCurrentInterruptMasks (NTV2InterruptMask & mask1, NTV2Interrupt2Mask & mask2);
2741 
2742 
2743  // Subscribe to events
2744 
2752  AJA_VIRTUAL bool SubscribeEvent (const INTERRUPT_ENUMS inEventCode); // GENERIC!
2753 
2763  AJA_VIRTUAL inline bool SubscribeOutputVerticalEvent (const NTV2Channel inChannel = NTV2_CHANNEL1) {return SubscribeEvent(::NTV2ChannelToOutputInterrupt(inChannel));}
2764 
2765 
2775  AJA_VIRTUAL bool SubscribeOutputVerticalEvent (const NTV2ChannelSet & inChannels);
2776 
2777 
2787  AJA_VIRTUAL inline bool SubscribeInputVerticalEvent (const NTV2Channel inChannel = NTV2_CHANNEL1) {return SubscribeEvent(::NTV2ChannelToInputInterrupt(inChannel));}
2788 
2789 
2799  AJA_VIRTUAL bool SubscribeInputVerticalEvent (const NTV2ChannelSet & inChannels);
2800 
2801 
2802  // Unsubscribe from events
2803 
2810  AJA_VIRTUAL bool UnsubscribeEvent (const INTERRUPT_ENUMS inEventCode); // GENERIC!
2811 
2819  AJA_VIRTUAL inline bool UnsubscribeOutputVerticalEvent (const NTV2Channel inChannel) {return UnsubscribeEvent(::NTV2ChannelToOutputInterrupt(inChannel));}
2820 
2828  AJA_VIRTUAL bool UnsubscribeOutputVerticalEvent (const NTV2ChannelSet & inChannels);
2829 
2837  AJA_VIRTUAL inline bool UnsubscribeInputVerticalEvent (const NTV2Channel inChannel = NTV2_CHANNEL1) {return UnsubscribeEvent(::NTV2ChannelToInputInterrupt(inChannel));}
2838 
2846  AJA_VIRTUAL bool UnsubscribeInputVerticalEvent (const NTV2ChannelSet & inChannels);
2847 
2848 
2849  // Get interrupt counts
2850 
2858  AJA_VIRTUAL bool GetOutputVerticalInterruptCount (ULWord & outCount, const NTV2Channel inChannel = NTV2_CHANNEL1);
2859 
2867  AJA_VIRTUAL bool GetInputVerticalInterruptCount (ULWord & outCount, const NTV2Channel inChannel = NTV2_CHANNEL1);
2868 
2869 
2870  // Current field ID
2871 
2878  AJA_VIRTUAL bool GetOutputFieldID (const NTV2Channel inChannel, NTV2FieldID & outFieldID);
2879 
2886  AJA_VIRTUAL bool GetInputFieldID (const NTV2Channel inChannel, NTV2FieldID & outFieldID);
2887 
2888 
2889  // Wait for event
2890 
2912  AJA_VIRTUAL bool WaitForOutputVerticalInterrupt (const NTV2Channel inChannel = NTV2_CHANNEL1, UWord inRepeatCount = 1);
2913 
2935  AJA_VIRTUAL bool WaitForOutputFieldID (const NTV2FieldID inFieldID, const NTV2Channel inChannel = NTV2_CHANNEL1);
2936 
2955  AJA_VIRTUAL bool WaitForInputVerticalInterrupt (const NTV2Channel inChannel = NTV2_CHANNEL1, UWord inRepeatCount = 1);
2956 
2977  AJA_VIRTUAL bool WaitForInputFieldID (const NTV2FieldID inFieldID, const NTV2Channel inChannel = NTV2_CHANNEL1);
2978 
2979 
2980  // RegisterAccess Control
2981 
2990  AJA_VIRTUAL bool SetRegisterWriteMode (const NTV2RegisterWriteMode inValue, const NTV2Channel inFrameStore = NTV2_CHANNEL1);
2991 
3000  AJA_VIRTUAL bool GetRegisterWriteMode (NTV2RegisterWriteMode & outValue, const NTV2Channel inFrameStore = NTV2_CHANNEL1);
3001 
3002  #if !defined (NTV2_DEPRECATE_16_0)
3003  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool SetRegisterWritemode(NTV2RegisterWriteMode inVal, const NTV2Channel inChan=NTV2_CHANNEL1)) {return SetRegisterWriteMode(inVal,inChan);}
3004  AJA_VIRTUAL inline NTV2_DEPRECATED_16_0(bool GetRegisterWritemode(NTV2RegisterWriteMode & outVal, const NTV2Channel inChan=NTV2_CHANNEL1)) {return SetRegisterWriteMode(outVal,inChan);}
3005  #endif // NTV2_DEPRECATE_16_0
3006 
3008  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool SetForce64(ULWord force64));
3009  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool GetForce64(ULWord* force64));
3010  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool Get64BitAutodetect(ULWord* autodetect64));
3011 
3015  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool GetFrameStamp (NTV2Crosspoint channelSpec, ULWord frameNum, FRAME_STAMP_STRUCT* pFrameStamp));
3017  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool GetAutoCirculate (NTV2Crosspoint channelSpec, AUTOCIRCULATE_STATUS_STRUCT* autoCirculateStatus));
3018 
3019 
3083  AJA_VIRTUAL bool AutoCirculateInitForInput ( const NTV2Channel inChannel,
3084  const UWord inFrameCount = 7,
3085  const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_INVALID,
3086  const ULWord inOptionFlags = 0,
3087  const UByte inNumChannels = 1,
3088  const UWord inStartFrameNumber = 0,
3089  const UWord inEndFrameNumber = 0);
3090 
3140  AJA_VIRTUAL bool AutoCirculateInitForInput ( const NTV2Channel inChannel,
3141  const NTV2ACFrameRange & inFrameRange,
3142  const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_INVALID,
3143  const ULWord inOptionFlags = 0,
3144  const UByte inNumChannels = 1);
3145 
3206  AJA_VIRTUAL bool AutoCirculateInitForOutput (const NTV2Channel inChannel,
3207  const UWord inFrameCount = 7,
3208  const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_INVALID,
3209  const ULWord inOptionFlags = 0,
3210  const UByte inNumChannels = 1,
3211  const UWord inStartFrameNumber = 0,
3212  const UWord inEndFrameNumber = 0);
3213 
3260  AJA_VIRTUAL bool AutoCirculateInitForOutput (const NTV2Channel inChannel,
3261  const NTV2ACFrameRange & inFrameRange,
3262  const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_INVALID,
3263  const ULWord inOptionFlags = 0,
3264  const UByte inNumChannels = 1);
3265 
3305  AJA_VIRTUAL bool AutoCirculateStart (const NTV2Channel inChannel, const ULWord64 inStartTime = 0);
3306 
3321  AJA_VIRTUAL bool AutoCirculateStop (const NTV2Channel inChannel, const bool inAbort = false);
3322 
3331  AJA_VIRTUAL bool AutoCirculateStop (const NTV2ChannelSet & inChannels, const bool inAbort = false); // New in SDK 17.0
3332 
3344  AJA_VIRTUAL bool AutoCirculatePause (const NTV2Channel inChannel, const UWord inAtFrameNum = 0xFFFF); // Added inAtFrameNum in SDK 16.2
3345 
3357  AJA_VIRTUAL bool AutoCirculateResume (const NTV2Channel inChannel, const bool inClearDropCount = false);
3358 
3374  AJA_VIRTUAL bool AutoCirculateFlush (const NTV2Channel inChannel, const bool inClearDropCount = false);
3375 
3392  AJA_VIRTUAL bool AutoCirculatePreRoll (const NTV2Channel inChannel, const ULWord inPreRollFrames);
3393 
3405  AJA_VIRTUAL bool AutoCirculateGetStatus (const NTV2Channel inChannel, AUTOCIRCULATE_STATUS & outStatus);
3406 
3407 
3424  AJA_VIRTUAL bool AutoCirculateGetFrameStamp (const NTV2Channel inChannel, const ULWord inFrameNumber, FRAME_STAMP & outFrameInfo);
3425 
3441  AJA_VIRTUAL bool AutoCirculateSetActiveFrame (const NTV2Channel inChannel, const ULWord inNewActiveFrame);
3442 
3479  AJA_VIRTUAL bool AutoCirculateTransfer (const NTV2Channel inChannel, AUTOCIRCULATE_TRANSFER & transferInfo);
3480 
3500  AJA_VIRTUAL bool FindUnallocatedFrames (const UWord inFrameCount, LWord & outStartFrame, LWord & outEndFrame,
3501  const NTV2Channel inFrameStore = NTV2_CHANNEL_INVALID);
3503 
3507 #define NTV2_STREAM_SUCCESS(__status__) (__status__ == NTV2_STREAM_SUCCESS)
3509 #define NTV2_STREAM_FAIL(__status__) (__status__ != NTV2_STREAM_SUCCESS)
3510 
3516  AJA_VIRTUAL ULWord StreamChannelInitialize (const NTV2Channel inChannel);
3517 
3522  AJA_VIRTUAL ULWord StreamChannelRelease (const NTV2Channel inChannel);
3523 
3530  AJA_VIRTUAL ULWord StreamChannelStart (const NTV2Channel inChannel,
3531  NTV2StreamChannel& status);
3532 
3539  AJA_VIRTUAL ULWord StreamChannelStop (const NTV2Channel inChannel,
3540  NTV2StreamChannel& status);
3541 
3548  AJA_VIRTUAL ULWord StreamChannelFlush (const NTV2Channel inChannel,
3549  NTV2StreamChannel& status);
3550 
3556  AJA_VIRTUAL ULWord StreamChannelStatus (const NTV2Channel inChannel,
3557  NTV2StreamChannel& status);
3558 
3564  AJA_VIRTUAL ULWord StreamChannelWait (const NTV2Channel inChannel,
3565  NTV2StreamChannel& status);
3566 
3573  AJA_VIRTUAL ULWord StreamBufferQueue (const NTV2Channel inChannel,
3574  NTV2Buffer& inBuffer,
3575  ULWord64 bufferCookie,
3576  NTV2StreamBuffer& status);
3577 
3583  AJA_VIRTUAL ULWord StreamBufferRelease (const NTV2Channel inChannel,
3584  NTV2StreamBuffer& status);
3585 
3591  AJA_VIRTUAL ULWord StreamBufferStatus (const NTV2Channel inChannel,
3592  ULWord64 bufferCookie,
3593  NTV2StreamBuffer& status);
3595 
3596 
3597 #if defined(READREGMULTICHANGE)
3598 
3608  AJA_VIRTUAL bool ReadRegisters (const NTV2RegNumSet & inRegNums, NTV2RegisterValueMap & outValues);
3609 #endif // defined(READREGMULTICHANGE)
3610 
3618  AJA_VIRTUAL bool BankSelectReadRegister (const NTV2RegInfo & inBankSelect, NTV2RegInfo & inOutRegInfo);
3619 
3626  AJA_VIRTUAL bool WriteRegisters (const NTV2RegisterWrites & inRegWrites);
3627 
3635  AJA_VIRTUAL bool BankSelectWriteRegister (const NTV2RegInfo & inBankSelect, const NTV2RegInfo & inRegInfo);
3636 
3645  AJA_VIRTUAL bool WriteVirtualData (const ULWord inTag, const void* inVirtualData, const ULWord inVirtualDataSize);
3646 
3655  AJA_VIRTUAL bool ReadVirtualData (const ULWord inTag, void* outVirtualData, const ULWord inVirtualDataSize);
3656 
3663  AJA_VIRTUAL bool ReadSDIStatistics (NTV2SDIInStatistics & outStats);
3664 
3672  AJA_VIRTUAL bool SetFrameBufferSize (const NTV2Framesize inSize);
3673 
3681  AJA_VIRTUAL bool SetFrameBufferSize (const NTV2Channel inChannel, const NTV2Framesize inValue);
3682 
3690  AJA_VIRTUAL bool GetFrameBufferSize (const NTV2Channel inChannel, NTV2Framesize & outValue);
3691 #if !defined(NTV2_DEPRECATE_17_2)
3692  using CNTV2DriverInterface::GetFrameBufferSize; // Keep CNTV2DriverInterface::GetFrameBufferSize visible after being shadowed by CNTV2Card::GetFrameBufferSize
3693 #endif
3694 
3695 
3700  AJA_VIRTUAL bool IsBufferSizeSetBySW (void);
3701 
3709  AJA_VIRTUAL bool DisableChannel (const NTV2Channel inChannel);
3710 
3718  AJA_VIRTUAL bool DisableChannels (const NTV2ChannelSet & inChannels);
3719 
3727  AJA_VIRTUAL bool EnableChannel (const NTV2Channel inChannel);
3728 
3739  AJA_VIRTUAL bool EnableChannels (const NTV2ChannelSet & inChannels, const bool inDisableOthers = false);
3740 
3748  AJA_VIRTUAL bool IsChannelEnabled (const NTV2Channel inChannel, bool & outEnabled);
3749 
3756  AJA_VIRTUAL bool GetEnabledChannels (NTV2ChannelSet & outChannels); // New in SDK 16.3
3757 
3764  AJA_VIRTUAL bool GetDisabledChannels (NTV2ChannelSet & outChannels); // New in SDK 16.3
3765 
3766  AJA_VIRTUAL bool SetVideoDACMode (NTV2VideoDACMode inValue);
3767  AJA_VIRTUAL bool GetVideoDACMode (NTV2VideoDACMode & outValue);
3768 
3769 
3773  AJA_VIRTUAL bool GetNominalMinMaxHV (int & outNominalH, int & outMinH, int & outMaxH, int & outNominalV, int & outMinV, int & outMaxV);
3775 
3787  AJA_VIRTUAL bool SetVideoHOffset (const int inHOffset, const UWord inOutputSpigot = 0);
3788 
3799  AJA_VIRTUAL bool GetVideoHOffset (int & outHOffset, const UWord inOutputSpigot = 0);
3800 
3812  AJA_VIRTUAL bool SetVideoVOffset (const int inVOffset, const UWord inOutputSpigot = 0);
3813 
3824  AJA_VIRTUAL bool GetVideoVOffset (int & outVOffset, const UWord inOutputSpigot = 0);
3825 
3826  AJA_VIRTUAL bool SetAnalogOutHTiming (ULWord inValue);
3827  AJA_VIRTUAL bool GetAnalogOutHTiming (ULWord & outValue);
3828 
3843  AJA_VIRTUAL bool WriteOutputTimingControl (const ULWord inValue, const UWord inOutputSpigot = 0);
3844 
3855  AJA_VIRTUAL bool ReadOutputTimingControl (ULWord & outValue, const UWord inOutputSpigot = 0);
3856 
3857  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool SetSDI1OutHTiming (ULWord value));
3858  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool GetSDI1OutHTiming(ULWord* value));
3859  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool SetSDI2OutHTiming (ULWord value));
3860  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool GetSDI2OutHTiming(ULWord* value));
3862 
3866  /*
3868  @brief Sets the VPID payload value(s) for each link of the given 3G SDI output.
3869  @param[in] inValueA Specifies the "Link A" VPID value to be embedded in the "A" link output signal.
3870  @param[in] inValueB Specifies the "Link B" VPID value to be embedded in the "B" link output signal.
3871  @param[in] inOutputSpigot Specifies the SDI output connector of interest as a zero-based index value.
3872  Defaults to zero, the first SDI output connector.
3873  @return True if successful; otherwise false.
3874  */
3875  AJA_VIRTUAL bool SetSDIOutVPID (const ULWord inValueA, const ULWord inValueB, const UWord inOutputSpigot = NTV2_CHANNEL1);
3876 
3877  /*
3878  @brief Answers with the VPID payload value(s) that are currently being embedded for each link of the given 3G SDI output.
3879  @param[out] outValueA Receives the VPID payload value currently being embedded in the "A" link output signal.
3880  @param[out] outValueB Receives the VPID payload value currently being embedded in the "B" link output signal.
3881  @param[in] inOutputSpigot Specifies the SDI output connector of interest as a zero-based index value.
3882  Defaults to zero, the first SDI output connector.
3883  @return True if successful; otherwise false.
3884  */
3885  AJA_VIRTUAL bool GetSDIOutVPID (ULWord & outValueA, ULWord & outValueB, const UWord inOutputSpigot = NTV2_CHANNEL1);
3886 
3887  /*
3888  @brief Reads the latest received VPID payload value(s) for each link of the given SDI input.
3889  @param[in] inSDIInput Specifies the 3G SDI input connector as an ::NTV2Channel, a zero-based index value.
3890  @param[out] outValueA Receives the "Link A" VPID payload value -- or zero if VPID was not present.
3891  @param[out] outValueB Receives the "Link B" VPID payload value -- or zero if VPID was not present.
3892  @return True if successful; otherwise false.
3893  */
3894  AJA_VIRTUAL bool ReadSDIInVPID (const NTV2Channel inSDIInput, ULWord & outValueA, ULWord & outValueB);
3895 
3900  AJA_VIRTUAL bool GetVPIDValidA (const NTV2Channel inChannel);
3901 
3906  AJA_VIRTUAL bool GetVPIDValidB (const NTV2Channel inChannel);
3908 
3915  AJA_VIRTUAL bool SetSDIOutputStandard (const UWord inOutputSpigot, const NTV2Standard inValue);
3916 
3924  AJA_VIRTUAL bool SetSDIOutputStandard (const NTV2ChannelSet & inSDIOutputs, const NTV2Standard inValue); // New in SDK v16.0
3925 
3932  AJA_VIRTUAL bool GetSDIOutputStandard (const UWord inOutputSpigot, NTV2Standard & outValue);
3933 
3934 
3938  AJA_VIRTUAL bool SetUpConvertMode (const NTV2UpConvertMode inValue);
3940  AJA_VIRTUAL bool GetUpConvertMode (NTV2UpConvertMode & outValue);
3941  AJA_VIRTUAL bool SetConverterOutStandard (const NTV2Standard inValue);
3942  AJA_VIRTUAL bool GetConverterOutStandard (NTV2Standard & outValue);
3943  AJA_VIRTUAL bool SetConverterOutRate (const NTV2FrameRate inValue);
3944  AJA_VIRTUAL bool GetConverterOutRate (NTV2FrameRate & outValue);
3945  AJA_VIRTUAL bool SetConverterInStandard (const NTV2Standard inValue);
3946  AJA_VIRTUAL bool GetConverterInStandard (NTV2Standard & outValue);
3947  AJA_VIRTUAL bool SetConverterInRate (const NTV2FrameRate inValue);
3948  AJA_VIRTUAL bool GetConverterInRate (NTV2FrameRate & outValue);
3949  AJA_VIRTUAL bool SetConverterPulldown (const ULWord inValue);
3950  AJA_VIRTUAL bool GetConverterPulldown (ULWord & outValue);
3951  AJA_VIRTUAL bool SetUCPassLine21 (const ULWord inValue);
3952  AJA_VIRTUAL bool GetUCPassLine21 (ULWord & outValue);
3953  AJA_VIRTUAL bool SetUCAutoLine21 (const ULWord inValue);
3954  AJA_VIRTUAL bool GetUCAutoLine21 (ULWord & outValue);
3955 
3956  AJA_VIRTUAL bool SetDownConvertMode (const NTV2DownConvertMode inValue);
3957  AJA_VIRTUAL bool GetDownConvertMode (NTV2DownConvertMode & outValue);
3958  AJA_VIRTUAL bool SetIsoConvertMode (const NTV2IsoConvertMode inValue);
3959  AJA_VIRTUAL bool GetIsoConvertMode (NTV2IsoConvertMode & outValue);
3960  AJA_VIRTUAL bool SetEnableConverter (const bool inValue);
3961  AJA_VIRTUAL bool GetEnableConverter (bool & outValue);
3962  AJA_VIRTUAL bool SetDeinterlaceMode (const ULWord inValue);
3963  AJA_VIRTUAL bool GetDeinterlaceMode (ULWord & outValue);
3964 
3965  AJA_VIRTUAL bool SetConversionMode (const NTV2ConversionMode inConversionMode);
3966  AJA_VIRTUAL bool GetConversionMode (NTV2ConversionMode & outConversionMode);
3968 
3972 
3982  AJA_VIRTUAL bool SetColorSpaceMethod (const NTV2ColorSpaceMethod inCSCMethod, const NTV2Channel inChannel);
3983 
3992  AJA_VIRTUAL bool GetColorSpaceMethod (NTV2ColorSpaceMethod & outMethod, const NTV2Channel inChannel = NTV2_CHANNEL1);
3993 
4002  AJA_VIRTUAL bool SetColorSpaceMatrixSelect (const NTV2ColorSpaceMatrixType inType, const NTV2Channel inChannel = NTV2_CHANNEL1);
4003 
4012  AJA_VIRTUAL bool GetColorSpaceMatrixSelect (NTV2ColorSpaceMatrixType & outType, const NTV2Channel inChannel = NTV2_CHANNEL1);
4013 
4023  AJA_VIRTUAL bool DownloadLUTToHW (const NTV2DoubleArray & inRedLUT, const NTV2DoubleArray & inGreenLUT, const NTV2DoubleArray & inBlueLUT,
4024  const NTV2Channel inLUT, const int inBank);
4025  AJA_VIRTUAL bool Download12BitLUTToHW (const NTV2DoubleArray & inRedLUT, const NTV2DoubleArray & inGreenLUT, const NTV2DoubleArray & inBlueLUT,
4026  const NTV2Channel inLUT, const int inBank);
4027 
4037  AJA_VIRTUAL bool DownloadLUTToHW (const UWordSequence & inRedLUT, const UWordSequence & inGreenLUT, const UWordSequence & inBlueLUT,
4038  const NTV2Channel inLUT, const int inBank);
4039  AJA_VIRTUAL bool Download12BitLUTToHW (const UWordSequence & inRedLUT, const UWordSequence & inGreenLUT, const UWordSequence & inBlueLUT,
4040  const NTV2Channel inLUT, const int inBank);
4041 
4049  AJA_VIRTUAL bool SetLUTEnable (const bool inEnable, const NTV2Channel inLUT);
4050 
4051  static bool GenerateGammaTable (const NTV2LutType inLUTType, const int inBank, NTV2DoubleArray & outTable, const NTV2LutBitDepth inBitDepth = NTV2_LUT10Bit);
4052  static bool GenerateGammaTable (const NTV2LutType inLUTType, const int inBank, UWordSequence & outTable, const NTV2LutBitDepth inBitDepth = NTV2_LUT10Bit);
4053 
4063  AJA_VIRTUAL bool LoadLUTTables (const NTV2DoubleArray & inRedLUT, const NTV2DoubleArray & inGreenLUT, const NTV2DoubleArray & inBlueLUT);
4064  AJA_VIRTUAL bool Load12BitLUTTables (const NTV2DoubleArray & inRedLUT, const NTV2DoubleArray & inGreenLUT, const NTV2DoubleArray & inBlueLUT);
4065 
4075  AJA_VIRTUAL bool WriteLUTTables (const UWordSequence & inRedLUT, const UWordSequence & inGreenLUT, const UWordSequence & inBlueLUT);
4076  AJA_VIRTUAL bool Write12BitLUTTables (const UWordSequence & inRedLUT, const UWordSequence & inGreenLUT, const UWordSequence & inBlueLUT);
4077 
4087  AJA_VIRTUAL bool GetLUTTables (NTV2DoubleArray & outRedLUT, NTV2DoubleArray & outGreenLUT, NTV2DoubleArray & outBlueLUT);
4088  AJA_VIRTUAL bool Get12BitLUTTables (NTV2DoubleArray & outRedLUT, NTV2DoubleArray & outGreenLUT, NTV2DoubleArray & outBlueLUT);
4089 
4099  AJA_VIRTUAL bool ReadLUTTables (UWordSequence & outRedLUT, UWordSequence & outGreenLUT, UWordSequence & outBlueLUT);
4100  AJA_VIRTUAL bool Read12BitLUTTables (UWordSequence & outRedLUT, UWordSequence & outGreenLUT, UWordSequence & outBlueLUT);
4101 
4102  AJA_VIRTUAL bool SetLUTV2HostAccessBank (const NTV2ColorCorrectionHostAccessBank inValue);
4103  AJA_VIRTUAL bool GetLUTV2HostAccessBank (NTV2ColorCorrectionHostAccessBank & outValue, const NTV2Channel inChannel);
4104 
4105  AJA_VIRTUAL bool SetLUTV3HostAccessBank (const NTV2ColorCorrectionHostAccessBank inValue);
4106  AJA_VIRTUAL bool GetLUTV3HostAccessBank (NTV2ColorCorrectionHostAccessBank & outValue, const NTV2Channel inChannel);
4107 
4108  AJA_VIRTUAL bool SetLUTV2OutputBank (const NTV2Channel inLUTWidget, const ULWord inBank);
4109  AJA_VIRTUAL bool GetLUTV2OutputBank (const NTV2Channel inLUTWidget, ULWord & outBank);
4110 
4111  AJA_VIRTUAL bool SetLUTV3OutputBank (const NTV2Channel inLUTWidget, const ULWord inBank);
4112  AJA_VIRTUAL bool GetLUTV3OutputBank (const NTV2Channel inLUTWidget, ULWord & outBank);
4113 
4114  AJA_VIRTUAL bool Has12BitLUTSupport (const NTV2Channel inChannel = NTV2_CHANNEL1);
4115 
4121  AJA_VIRTUAL bool Set12BitLUTPlaneSelect (const NTV2LUTPlaneSelect inLUTPlane, const NTV2Channel inChannel = NTV2_MAX_NUM_CHANNELS);
4122 
4128  AJA_VIRTUAL bool Get12BitLUTPlaneSelect (NTV2LUTPlaneSelect & outLUTPlane, const NTV2Channel inChannel = NTV2_MAX_NUM_CHANNELS);
4129 
4139  AJA_VIRTUAL bool SetColorSpaceRGBBlackRange (const NTV2_CSC_RGB_Range inRange, const NTV2Channel inChannel = NTV2_CHANNEL1);
4140 
4150  AJA_VIRTUAL bool GetColorSpaceRGBBlackRange (NTV2_CSC_RGB_Range & outRange, const NTV2Channel inChannel = NTV2_CHANNEL1);
4151 
4152  AJA_VIRTUAL bool SetColorSpaceUseCustomCoefficient (const ULWord inUseCustomCoefficient, const NTV2Channel inChannel = NTV2_CHANNEL1);
4153  AJA_VIRTUAL bool GetColorSpaceUseCustomCoefficient (ULWord & outUseCustomCoefficient, const NTV2Channel inChannel = NTV2_CHANNEL1);
4154 
4165  AJA_VIRTUAL bool SetColorSpaceMakeAlphaFromKey (const bool inMakeAlphaFromKey, const NTV2Channel inChannel = NTV2_CHANNEL1);
4166 
4177  AJA_VIRTUAL bool GetColorSpaceMakeAlphaFromKey (ULWord & outMakeAlphaFromKey, const NTV2Channel inChannel = NTV2_CHANNEL1);
4178 
4194  AJA_VIRTUAL bool GetColorSpaceVideoKeySyncFail (bool & outVideoKeySyncFail, const NTV2Channel inChannel = NTV2_CHANNEL1);
4195 
4196  AJA_VIRTUAL bool SetColorSpaceCustomCoefficients (const NTV2CSCCustomCoeffs & inCustomCoefficients, const NTV2Channel inChannel = NTV2_CHANNEL1);
4197  AJA_VIRTUAL bool GetColorSpaceCustomCoefficients (NTV2CSCCustomCoeffs & outCustomCoefficients, const NTV2Channel inChannel = NTV2_CHANNEL1);
4198 
4199  AJA_VIRTUAL bool SetColorSpaceCustomCoefficients12Bit (const NTV2CSCCustomCoeffs & inCustomCoefficients, const NTV2Channel inChannel = NTV2_CHANNEL1);
4200  AJA_VIRTUAL bool GetColorSpaceCustomCoefficients12Bit (NTV2CSCCustomCoeffs & outCustomCoefficients, const NTV2Channel inChannel = NTV2_CHANNEL1);
4201 
4202  AJA_VIRTUAL bool SetLUTControlSelect (const NTV2LUTControlSelect inLUTSelect);
4203  AJA_VIRTUAL bool GetLUTControlSelect (NTV2LUTControlSelect & outLUTSelect);
4204 
4205  //
4206  // Color Correction Functions (KHD only )
4207  //
4208  AJA_VIRTUAL bool SetColorCorrectionMode(const NTV2Channel inChannel, const NTV2ColorCorrectionMode inMode);
4209  AJA_VIRTUAL bool GetColorCorrectionMode(const NTV2Channel inChannel, NTV2ColorCorrectionMode & outMode);
4210 
4218  AJA_VIRTUAL bool SetColorCorrectionOutputBank (const NTV2Channel inLUTWidget, const ULWord inBank);
4219 
4227  AJA_VIRTUAL bool GetColorCorrectionOutputBank (const NTV2Channel inLUTWidget, ULWord & outBank);
4228 
4229  AJA_VIRTUAL bool SetColorCorrectionHostAccessBank (const NTV2ColorCorrectionHostAccessBank inValue);
4230  AJA_VIRTUAL bool GetColorCorrectionHostAccessBank (NTV2ColorCorrectionHostAccessBank & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
4231 
4232  AJA_VIRTUAL bool SetColorCorrectionSaturation (const NTV2Channel inChannel, const ULWord inValue);
4233  AJA_VIRTUAL bool GetColorCorrectionSaturation (const NTV2Channel inChannel, ULWord & outValue);
4234 
4235  AJA_VIRTUAL bool SetDitherFor8BitInputs (const NTV2Channel inChannel, const ULWord inDither);
4236  AJA_VIRTUAL bool GetDitherFor8BitInputs (const NTV2Channel inChannel, ULWord & outDither);
4237 
4238  // Old APIs
4239  static NTV2_SHOULD_BE_DEPRECATED(bool GenerateGammaTable (const NTV2LutType inLUTType, const int inBank, double * pOutTable));
4240  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(NTV2ColorSpaceMethod GetColorSpaceMethod (const NTV2Channel inChannel));
4241  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool DownloadLUTToHW(const double * pInTable, const NTV2Channel inChannel, const int inBank));
4242  AJA_VIRTUAL NTV2_SHOULD_BE_DEPRECATED(bool LoadLUTTable (const double * pInTable));
4244 
4245 
4246  AJA_VIRTUAL bool SetSecondaryVideoFormat(NTV2VideoFormat inFormat); // RETAIL USE ONLY
4247  AJA_VIRTUAL bool GetSecondaryVideoFormat(NTV2VideoFormat & outFormat); // RETAIL USE ONLY
4248 
4249  #if !defined(R2_DEPRECATE)
4250  AJA_VIRTUAL bool SetInputVideoSelect (NTV2InputVideoSelect inInputSelect); // RETAIL USE ONLY
4251  AJA_VIRTUAL bool GetInputVideoSelect(NTV2InputVideoSelect & outInputSelect); // RETAIL USE ONLY
4252  #endif
4253 
4254  // --------------------------------------------
4255  // GetNTV2VideoFormat functions
4256  // @deprecated These static functions don't work correctly, and will be deprecated.
4257  // For a given frame rate, geometry and transport, there may be 2 (or more!) possible matching video formats.
4258  // The improved GetNTV2VideoFormat function may return a new CNTV2SDIVideoInfo object that can be interrogated about many things.
4259  // @note This function originated in CNTV2Status.
4260  static NTV2VideoFormat GetNTV2VideoFormat (NTV2FrameRate frameRate, UByte inputGeometry, bool progressiveTransport, bool isThreeG, bool progressivePicture=false);
4261  static NTV2VideoFormat GetNTV2VideoFormat (NTV2FrameRate frameRate, NTV2Standard standard, bool isThreeG, UByte inputGeometry=0, bool progressivePicture=false, bool isSquareDivision = true);
4262  // --------------------------------------------
4263 
4264 public:
4276  AJA_VIRTUAL NTV2VideoFormat GetInputVideoFormat (const NTV2InputSource inVideoSource = NTV2_INPUTSOURCE_SDI1, const bool inIsProgressive = false);
4277 
4289  AJA_VIRTUAL NTV2VideoFormat GetSDIInputVideoFormat (NTV2Channel inChannel, bool inIsProgressive = false);
4290 
4296  AJA_VIRTUAL NTV2VideoFormat GetHDMIInputVideoFormat (NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4297 
4302  AJA_VIRTUAL NTV2VideoFormat GetAnalogInputVideoFormat (void);
4303 
4308  AJA_VIRTUAL NTV2VideoFormat GetAnalogCompositeInputVideoFormat (void);
4309 
4319  AJA_VIRTUAL NTV2VideoFormat GetReferenceVideoFormat (void);
4320 
4321  AJA_VIRTUAL NTV2FrameRate GetSDIInputRate (const NTV2Channel channel);
4322  AJA_VIRTUAL NTV2FrameGeometry GetSDIInputGeometry (const NTV2Channel channel);
4323  AJA_VIRTUAL bool GetSDIInputIsProgressive (const NTV2Channel channel);
4324 
4325  AJA_VIRTUAL bool GetSDIInput3GPresent (bool & outValue, const NTV2Channel channel);
4326  AJA_VIRTUAL bool GetSDIInput3GbPresent (bool & outValue, const NTV2Channel channel);
4327  AJA_VIRTUAL bool GetSDIInput6GPresent (bool & outValue, const NTV2Channel channel);
4328  AJA_VIRTUAL bool GetSDIInput12GPresent (bool & outValue, const NTV2Channel channel);
4329 
4333 
4343  AJA_VIRTUAL bool GetConnectedOutput (const NTV2InputCrosspointID inInputXpt, NTV2OutputCrosspointID & outOutputXpt);
4344 
4354  AJA_VIRTUAL bool GetConnectedInput (const NTV2OutputCrosspointID inOutputXpt, NTV2InputCrosspointID & outInputXpt);
4355 
4364  AJA_VIRTUAL bool GetConnectedInputs (const NTV2OutputCrosspointID inOutputXpt, NTV2InputCrosspointIDSet & outInputXpts); // New in SDK 15.5
4365 
4377  AJA_VIRTUAL bool Connect (const NTV2InputCrosspointID inInputXpt, const NTV2OutputCrosspointID inOutputXpt, const bool inValidate = false);
4378 
4388  AJA_VIRTUAL bool Connect (const NTV2XptConnection & inConnection, const bool inValidate = false);
4389 
4396  AJA_VIRTUAL bool Disconnect (const NTV2InputCrosspointID inInputXpt);
4397 
4406  AJA_VIRTUAL bool IsConnected (const NTV2InputCrosspointID inInputXpt, bool & outIsConnected);
4407 
4417  AJA_VIRTUAL bool IsConnected (const NTV2XptConnection inConnection, bool & outIsConnected);
4418 
4427  AJA_VIRTUAL bool IsConnectedTo (const NTV2InputCrosspointID inInputXpt, const NTV2OutputCrosspointID inOutputXpt, bool & outIsConnected);
4428 
4438  AJA_VIRTUAL bool CanConnect (const NTV2InputCrosspointID inInputXpt, const NTV2OutputCrosspointID inOutputXpt, bool & outCanConnect);
4439 
4448  AJA_VIRTUAL bool CanConnect (const NTV2XptConnection & inConnection, bool & outCanConnect);
4449 
4458  AJA_VIRTUAL bool SupportedOutputXptsForInputXpt (const NTV2InputXptID inInputXptID, NTV2OutputXptIDSet & outOutputXpts);
4459 
4460 
4479  AJA_VIRTUAL bool ApplySignalRoute (const CNTV2SignalRouter & inRouter, const bool inReplace = false);
4480 
4481 
4500  AJA_VIRTUAL bool ApplySignalRoute (const NTV2XptConnections & inConnections, const bool inReplace = false);
4501 
4508  AJA_VIRTUAL bool RemoveConnections (const NTV2XptConnections & inConnections);
4509 
4517  AJA_VIRTUAL bool ClearRouting (void);
4518 
4525  AJA_VIRTUAL bool GetRouting (CNTV2SignalRouter & outRouting);
4526 
4533  AJA_VIRTUAL bool GetConnections (NTV2XptConnections & outConnections); // New in SDK 16.0
4534 
4542  AJA_VIRTUAL bool GetRoutingForChannel (const NTV2Channel inChannel, CNTV2SignalRouter & outRouting);
4543 
4544 #if !defined(NTV2_DEPRECATE_17_0)
4546 #endif // !defined(NTV2_DEPRECATE_17_0)
4547 
4552  AJA_VIRTUAL bool GetPossibleConnections (NTV2PossibleConnections & outConnections);
4553 
4559  AJA_VIRTUAL bool GetAllWidgetInputs (NTV2InputXptIDSet & outInputs); // New in SDK 17.6
4560 
4566  AJA_VIRTUAL bool GetAllWidgetOutputs (NTV2OutputXptIDSet & outOutputs); // New in SDK 17.6
4568 
4569 
4574  AJA_VIRTUAL bool WriteSDProcAmpControlsInitialized (const ULWord inNewValue = 1);
4576  AJA_VIRTUAL bool WriteSDBrightnessAdjustment (const ULWord inNewValue);
4577  AJA_VIRTUAL bool WriteSDContrastAdjustment (const ULWord inNewValue);
4578  AJA_VIRTUAL bool WriteSDSaturationAdjustment (const ULWord inNewValue);
4579  AJA_VIRTUAL bool WriteSDHueAdjustment (const ULWord inNewValue);
4580  AJA_VIRTUAL bool WriteSDCbOffsetAdjustment (const ULWord inNewValue);
4581  AJA_VIRTUAL bool WriteSDCrOffsetAdjustment (const ULWord inNewValue);
4582  AJA_VIRTUAL bool WriteHDProcAmpControlsInitialized (const ULWord inNewValue = 1);
4583  AJA_VIRTUAL bool WriteHDBrightnessAdjustment (const ULWord inNewValue);
4584  AJA_VIRTUAL bool WriteHDContrastAdjustment (const ULWord inNewValue);
4585  AJA_VIRTUAL bool WriteHDSaturationAdjustmentCb (const ULWord inNewValue);
4586  AJA_VIRTUAL bool WriteHDSaturationAdjustmentCr (const ULWord inNewValue);
4587  AJA_VIRTUAL bool WriteHDCbOffsetAdjustment (const ULWord inNewValue);
4588  AJA_VIRTUAL bool WriteHDCrOffsetAdjustment (const ULWord inNewValue);
4589 
4590  AJA_VIRTUAL bool ReadSDProcAmpControlsInitialized (ULWord & outValue);
4591  AJA_VIRTUAL bool ReadSDBrightnessAdjustment (ULWord & outValue);
4592  AJA_VIRTUAL bool ReadSDContrastAdjustment (ULWord & outValue);
4593  AJA_VIRTUAL bool ReadSDSaturationAdjustment (ULWord & outValue);
4594  AJA_VIRTUAL bool ReadSDHueAdjustment (ULWord & outValue);
4595  AJA_VIRTUAL bool ReadSDCbOffsetAdjustment (ULWord & outValue);
4596  AJA_VIRTUAL bool ReadSDCrOffsetAdjustment (ULWord & outValue);
4597  AJA_VIRTUAL bool ReadHDProcAmpControlsInitialized (ULWord & outValue);
4598  AJA_VIRTUAL bool ReadHDBrightnessAdjustment (ULWord & outValue);
4599  AJA_VIRTUAL bool ReadHDContrastAdjustment (ULWord & outValue);
4600  AJA_VIRTUAL bool ReadHDSaturationAdjustmentCb (ULWord & outValue);
4601  AJA_VIRTUAL bool ReadHDSaturationAdjustmentCr (ULWord & outValue);
4602  AJA_VIRTUAL bool ReadHDCbOffsetAdjustment (ULWord & outValue);
4603  AJA_VIRTUAL bool ReadHDCrOffsetAdjustment (ULWord & outValue);
4604 
4605  // FS1 (and other?) ProcAmp methods
4606  AJA_VIRTUAL bool WriteProcAmpC1YAdjustment (const ULWord inNewValue);
4607  AJA_VIRTUAL bool WriteProcAmpC1CBAdjustment (const ULWord inNewValue);
4608  AJA_VIRTUAL bool WriteProcAmpC1CRAdjustment (const ULWord inNewValue);
4609  AJA_VIRTUAL bool WriteProcAmpC2CBAdjustment (const ULWord inNewValue);
4610  AJA_VIRTUAL bool WriteProcAmpC2CRAdjustment (const ULWord inNewValue);
4611  AJA_VIRTUAL bool WriteProcAmpOffsetYAdjustment (const ULWord inNewValue);
4612  AJA_VIRTUAL bool ReadProcAmpC1YAdjustment (ULWord & outValue);
4613  AJA_VIRTUAL bool ReadProcAmpC1CBAdjustment (ULWord & outValue);
4614  AJA_VIRTUAL bool ReadProcAmpC1CRAdjustment (ULWord & outValue);
4615  AJA_VIRTUAL bool ReadProcAmpC2CBAdjustment (ULWord & outValue);
4616  AJA_VIRTUAL bool ReadProcAmpC2CRAdjustment (ULWord & outValue);
4617  AJA_VIRTUAL bool ReadProcAmpOffsetYAdjustment (ULWord & outValue);
4618 
4619  #if !defined(R2_DEPRECATE)
4620  AJA_VIRTUAL bool SetAnalogInputADCMode (const NTV2LSVideoADCMode inValue);
4621  AJA_VIRTUAL bool GetAnalogInputADCMode (NTV2LSVideoADCMode & outValue);
4622  #endif
4623 
4625 
4629 
4636  AJA_VIRTUAL bool GetHDMIInputColor (NTV2LHIHDMIColorSpace & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4637 
4644  AJA_VIRTUAL bool SetHDMIInputRange (const NTV2HDMIRange inNewValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4645 
4652  AJA_VIRTUAL bool GetHDMIInputRange (NTV2HDMIRange & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4653 
4660  AJA_VIRTUAL bool GetHDMIInputAudioChannels (NTV2HDMIAudioChannels & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4661 
4668  AJA_VIRTUAL bool SetHDMIInColorSpace (const NTV2HDMIColorSpace inNewValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4669 
4676  AJA_VIRTUAL bool GetHDMIInColorSpace (NTV2HDMIColorSpace & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4677 
4684  AJA_VIRTUAL bool GetHDMIInProtocol (NTV2HDMIProtocol & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4685 
4692  AJA_VIRTUAL bool GetHDMIInIsLocked (bool & outIsLocked, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4693 
4694  AJA_VIRTUAL bool SetHDMIInAudioSampleRateConverterEnable (const bool inNewValue, const NTV2Channel inChannel = NTV2_CHANNEL1);
4695  AJA_VIRTUAL bool GetHDMIInAudioSampleRateConverterEnable (bool & outIsEnabled, const NTV2Channel inChannel = NTV2_CHANNEL1);
4696 
4703  AJA_VIRTUAL bool SetHDMIInBitDepth (const NTV2HDMIBitDepth inNewValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4704 
4711  AJA_VIRTUAL bool GetHDMIInBitDepth (NTV2HDMIBitDepth & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4712 
4720  AJA_VIRTUAL bool GetHDMIInAudioChannel34Swap (bool & outIsSwapped, const NTV2Channel inHDMIInput = NTV2_CHANNEL1); // New in SDK v16.0
4721 
4729  AJA_VIRTUAL bool SetHDMIInAudioChannel34Swap (const bool inIsSwapped, const NTV2Channel inHDMIInput = NTV2_CHANNEL1); // New in SDK v16.0
4730 
4731 
4738  AJA_VIRTUAL bool GetHDMIInVideoRange (NTV2HDMIRange & outValue, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4739 
4746  AJA_VIRTUAL bool GetHDMIInDynamicRange (HDRRegValues & outRegValues, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4747 
4754  AJA_VIRTUAL bool GetHDMIInDynamicRange (HDRFloatValues & outFloatValues, const NTV2Channel inHDMIInput = NTV2_CHANNEL1);
4755 
4762  AJA_VIRTUAL bool GetHDMIInColorimetry (NTV2HDMIColorimetry & outColorimetry, const NTV2Channel inHDMIInput = NTV2_CHANNEL1); // New in SDK v16.0
4763 
4770  AJA_VIRTUAL bool GetHDMIInDolbyVision (bool & outIsDetected, const NTV2Channel inHDMIInput = NTV2_CHANNEL1); // New in SDK v16.0
4771 
4772  AJA_VIRTUAL bool SetHDMIOut3DPresent (const bool inIs3DPresent);
4773  AJA_VIRTUAL bool GetHDMIOut3DPresent (bool & outIs3DPresent);
4774 
4775  AJA_VIRTUAL bool SetHDMIOut3DMode (const NTV2HDMIOut3DMode inValue);
4776  AJA_VIRTUAL bool GetHDMIOut3DMode (NTV2HDMIOut3DMode & outValue);
4777 
4778  AJA_VIRTUAL bool SetHDMIV2TxBypass (const bool inBypass);
4779 
4787  AJA_VIRTUAL bool SetHDMIOutVideoStandard (const NTV2Standard inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4795  AJA_VIRTUAL bool GetHDMIOutVideoStandard (NTV2Standard & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4796 
4804  AJA_VIRTUAL bool SetHDMIOutSampleStructure (const NTV2HDMISampleStructure inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4812  AJA_VIRTUAL bool GetHDMIOutSampleStructure (NTV2HDMISampleStructure & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4813 
4821  AJA_VIRTUAL bool SetHDMIOutVideoFPS (const NTV2FrameRate inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4829  AJA_VIRTUAL bool GetHDMIOutVideoFPS (NTV2FrameRate & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4830 
4838  AJA_VIRTUAL bool SetHDMIOutRange (const NTV2HDMIRange inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4846  AJA_VIRTUAL bool GetHDMIOutRange (NTV2HDMIRange & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4847 
4855  AJA_VIRTUAL bool SetHDMIOutAudioChannels (const NTV2HDMIAudioChannels inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4863  AJA_VIRTUAL bool GetHDMIOutAudioChannels (NTV2HDMIAudioChannels & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4864 
4865  AJA_VIRTUAL bool SetHDMIOutColorSpace (const NTV2HDMIColorSpace inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4866  AJA_VIRTUAL bool GetHDMIOutColorSpace (NTV2HDMIColorSpace & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4874  AJA_VIRTUAL bool SetLHIHDMIOutColorSpace (const NTV2LHIHDMIColorSpace inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4882  AJA_VIRTUAL bool GetLHIHDMIOutColorSpace (NTV2LHIHDMIColorSpace & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4883 
4891  AJA_VIRTUAL bool SetHDMIOutBitDepth (const NTV2HDMIBitDepth inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4899  AJA_VIRTUAL bool GetHDMIOutBitDepth (NTV2HDMIBitDepth & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4900 
4908  AJA_VIRTUAL bool SetHDMIOutProtocol (const NTV2HDMIProtocol inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4916  AJA_VIRTUAL bool GetHDMIOutProtocol (NTV2HDMIProtocol & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4917 
4918  AJA_VIRTUAL bool SetHDMIOutForceConfig (const bool inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4919  AJA_VIRTUAL bool GetHDMIOutForceConfig (bool & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4920  AJA_VIRTUAL bool SetHDMIOutDisable (const bool inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4921  AJA_VIRTUAL bool GetHDMIOutDisable (bool & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4922 
4930  AJA_VIRTUAL bool SetHDMIOutPrefer420 (const bool inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4938  AJA_VIRTUAL bool GetHDMIOutPrefer420 (bool & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4939 
4947  AJA_VIRTUAL bool SetHDMIOutForceYUV (const bool inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 18.1
4955  AJA_VIRTUAL bool GetHDMIOutForceYUV (bool & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 18.1
4956 
4964  AJA_VIRTUAL bool SetHDMIOutForceRGB (const bool inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 18.1
4972  AJA_VIRTUAL bool GetHDMIOutForceRGB (bool & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 18.1
4973 
4981  AJA_VIRTUAL bool GetHDMIOutDownstreamBitDepth (NTV2HDMIBitDepth & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4982 
4990  AJA_VIRTUAL bool GetHDMIOutDownstreamColorSpace (NTV2LHIHDMIColorSpace & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
4991 
5000  AJA_VIRTUAL bool SetHDMIOutAudioSource2Channel (const NTV2AudioChannelPair inNewValue,
5001  const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1,
5002  const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5003 
5012  AJA_VIRTUAL bool GetHDMIOutAudioSource2Channel (NTV2AudioChannelPair & outValue,
5013  NTV2AudioSystem & outAudioSystem,
5014  const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5015 
5024  AJA_VIRTUAL bool SetHDMIOutAudioSource8Channel (const NTV2Audio8ChannelSelect inNewValue,
5025  const NTV2AudioSystem inAudioSystem = NTV2_AUDIOSYSTEM_1,
5026  const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5027 
5036  AJA_VIRTUAL bool GetHDMIOutAudioSource8Channel (NTV2Audio8ChannelSelect & outValue,
5037  NTV2AudioSystem & outAudioSystem,
5038  const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5039 
5048  AJA_VIRTUAL bool GetHDMIOutAudioChannel34Swap (bool & outIsSwapped, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK v16.0
5049 
5058  AJA_VIRTUAL bool SetHDMIOutAudioChannel34Swap (const bool inIsSwapped, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK v16.0
5059 
5067  AJA_VIRTUAL bool SetHDMIOutAudioRate (const NTV2AudioRate inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5068 
5076  AJA_VIRTUAL bool GetHDMIOutAudioRate (NTV2AudioRate & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5077 
5085  AJA_VIRTUAL bool SetHDMIOutAudioFormat (const NTV2AudioFormat inNewValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5086 
5094  AJA_VIRTUAL bool GetHDMIOutAudioFormat (NTV2AudioFormat & outValue, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5095 
5103  AJA_VIRTUAL bool EnableHDMIOutUserOverride (const bool inEnable, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5104 
5112  AJA_VIRTUAL bool GetEnableHDMIOutUserOverride (bool & outIsEnabled, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5113 
5121  AJA_VIRTUAL bool EnableHDMIOutCenterCrop (const bool inEnable, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5122 
5130  AJA_VIRTUAL bool GetEnableHDMIOutCenterCrop (bool & outIsEnabled, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
5131 
5139  AJA_VIRTUAL bool SetHDMIOutDecimateMode (const bool inEnable);
5140 
5141  AJA_VIRTUAL bool GetHDMIOutDecimateMode (bool & outIsEnabled);
5142 
5148  AJA_VIRTUAL bool SetHDMIOutTsiIO (const bool inTsiEnable);
5149 
5150  AJA_VIRTUAL bool GetHDMIOutTsiIO (bool & tsiEnabled);
5151 
5157  AJA_VIRTUAL bool SetHDMIOutLevelBMode (const bool inEnable);
5158 
5159  AJA_VIRTUAL bool GetHDMIOutLevelBMode (bool & outIsEnabled);
5160 
5170  AJA_VIRTUAL bool SetHDMIV2Mode (const NTV2HDMIV2Mode inMode);
5171 
5177  AJA_VIRTUAL bool GetHDMIV2Mode (NTV2HDMIV2Mode & outMode);
5178 
5179 
5187  AJA_VIRTUAL bool GetHDMIOutStatus (NTV2HDMIOutputStatus & outStatus, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 16.1
5188 
5189  //protected: SHOULD BE PROTECTED/PRIVATE:
5190  AJA_VIRTUAL bool GetHDMIInputStatus (ULWord & outValue, const NTV2Channel inChannel = NTV2_CHANNEL1, const bool in12BitDetection = false);
5191  protected:
5192  AJA_VIRTUAL bool GetHDMIInputStatusRegNum (ULWord & outRegNum, const NTV2Channel inChannel = NTV2_CHANNEL1, const bool in12BitDetection = false);
5193 
5195  public:
5196  AJA_VIRTUAL bool SetLHIVideoDACStandard (const NTV2Standard inValue);
5197  AJA_VIRTUAL bool GetLHIVideoDACStandard (NTV2Standard & outValue);
5198  AJA_VIRTUAL bool SetLHIVideoDACMode (NTV2LHIVideoDACMode value);
5199  AJA_VIRTUAL bool GetLHIVideoDACMode (NTV2LHIVideoDACMode & outValue);
5200  AJA_VIRTUAL bool SetLHIVideoDACMode (const NTV2VideoDACMode inValue); // overloaded
5201  AJA_VIRTUAL bool GetLHIVideoDACMode (NTV2VideoDACMode & outValue); // overloaded
5202 
5206 
5217  AJA_VIRTUAL bool SetLTCInputEnable (const bool inEnable);
5218 
5229  AJA_VIRTUAL bool GetLTCInputEnable (bool & outIsEnabled);
5230 
5241  AJA_VIRTUAL bool GetLTCInputPresent (bool & outIsPresent, const UWord inLTCInputNdx = 0);
5242 
5252  AJA_VIRTUAL bool ReadAnalogLTCInput (const UWord inLTCInput, RP188_STRUCT & outRP188Data);
5253 
5263  AJA_VIRTUAL bool ReadAnalogLTCInput (const UWord inLTCInput, NTV2_RP188 & outRP188Data);
5264 
5275  AJA_VIRTUAL bool GetAnalogLTCInClockChannel (const UWord inLTCInput, NTV2Channel & outChannel);
5276 
5287  AJA_VIRTUAL bool SetAnalogLTCInClockChannel (const UWord inLTCInput, const NTV2Channel inChannel);
5288 
5298  AJA_VIRTUAL bool WriteAnalogLTCOutput (const UWord inLTCOutput, const RP188_STRUCT & inRP188Data);
5299 
5309  AJA_VIRTUAL bool WriteAnalogLTCOutput (const UWord inLTCOutput, const NTV2_RP188 & inRP188Data);
5310 
5321  AJA_VIRTUAL bool GetAnalogLTCOutClockChannel (const UWord inLTCOutput, NTV2Channel & outChannel);
5322 
5333  AJA_VIRTUAL bool SetAnalogLTCOutClockChannel (const UWord inLTCOutput, const NTV2Channel inChannel);
5334 
5335 #if !defined(NTV2_DEPRECATE_16_3)
5336  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(bool SetLTCOnReference(bool val)) {return SetLTCInputEnable(val);}
5337  AJA_VIRTUAL inline NTV2_DEPRECATED_16_3(bool GetLTCOnReference(bool & outVal)) {return GetLTCInputEnable(outVal);}
5338  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool SetLTCEmbeddedOutEnable (const bool inNewValue));
5339  AJA_VIRTUAL NTV2_DEPRECATED_16_3(bool GetLTCEmbeddedOutEnable (bool & outValue));
5340 #endif // !defined(NTV2_DEPRECATE_16_3)
5341 
5346  AJA_VIRTUAL bool SetStereoCompressorOutputMode (const NTV2StereoCompressorOutputMode inNewValue);
5348  AJA_VIRTUAL bool GetStereoCompressorOutputMode (NTV2StereoCompressorOutputMode & outValue);
5349  AJA_VIRTUAL bool SetStereoCompressorFlipMode (const ULWord inNewValue);
5350  AJA_VIRTUAL bool GetStereoCompressorFlipMode (ULWord & outValue);
5351  AJA_VIRTUAL bool SetStereoCompressorFlipLeftHorz (const ULWord inNewValue);
5352  AJA_VIRTUAL bool GetStereoCompressorFlipLeftHorz (ULWord & outValue);
5353  AJA_VIRTUAL bool SetStereoCompressorFlipLeftVert (const ULWord inNewValue);
5354  AJA_VIRTUAL bool GetStereoCompressorFlipLeftVert (ULWord & outValue);
5355  AJA_VIRTUAL bool SetStereoCompressorFlipRightHorz (const ULWord inNewValue);
5356  AJA_VIRTUAL bool GetStereoCompressorFlipRightHorz (ULWord & outValue);
5357  AJA_VIRTUAL bool SetStereoCompressorFlipRightVert (const ULWord inNewValue);
5358  AJA_VIRTUAL bool GetStereoCompressorFlipRightVert (ULWord & outValue);
5359  AJA_VIRTUAL bool SetStereoCompressorStandard (const NTV2Standard inNewValue);
5360  AJA_VIRTUAL bool GetStereoCompressorStandard (NTV2Standard & outValue);
5361  AJA_VIRTUAL bool SetStereoCompressorLeftSource (const NTV2OutputCrosspointID inNewValue);
5362  AJA_VIRTUAL bool GetStereoCompressorLeftSource (NTV2OutputCrosspointID & outValue);
5363  AJA_VIRTUAL bool SetStereoCompressorRightSource (const NTV2OutputCrosspointID inNewValue);
5364  AJA_VIRTUAL bool GetStereoCompressorRightSource (NTV2OutputCrosspointID & outValue);
5366 
5370 
5383  AJA_VIRTUAL bool SetSDITransmitEnable (const NTV2Channel inChannel, const bool inEnable);
5384 
5397  AJA_VIRTUAL bool SetSDITransmitEnable (const NTV2ChannelSet & inSDIConnectors, const bool inEnable);
5398 
5408  AJA_VIRTUAL bool GetSDITransmitEnable (const NTV2Channel inChannel, bool & outEnabled);
5409 
5419  AJA_VIRTUAL bool GetTransmitSDIs (NTV2ChannelSet & outXmitSDIs); // New in SDK 17.0
5421 
5422  AJA_VIRTUAL bool SetSDIOut2Kx1080Enable (const NTV2Channel inChannel, const bool inIsEnabled);
5423  AJA_VIRTUAL bool GetSDIOut2Kx1080Enable (const NTV2Channel inChannel, bool & outIsEnabled);
5424 
5425  AJA_VIRTUAL bool SetSDIOut3GEnable (const NTV2Channel inChannel,const bool inEnable);
5426  AJA_VIRTUAL bool GetSDIOut3GEnable (const NTV2Channel inChannel, bool & outIsEnabled);
5427 
5428  AJA_VIRTUAL bool SetSDIOut3GbEnable (const NTV2Channel inChannel, const bool inEnable);
5429  AJA_VIRTUAL bool GetSDIOut3GbEnable (const NTV2Channel inChannel, bool & outIsEnabled);
5430 
5431  AJA_VIRTUAL bool SetSDIOut6GEnable(const NTV2Channel inChannel, const bool inEnable);
5432  AJA_VIRTUAL bool GetSDIOut6GEnable(const NTV2Channel inChannel, bool & outIsEnabled);
5433 
5434  AJA_VIRTUAL bool SetSDIOut12GEnable(const NTV2Channel inChannel, const bool inEnable);
5435  AJA_VIRTUAL bool GetSDIOut12GEnable(const NTV2Channel inChannel, bool & outIsEnabled);
5436 
5449  AJA_VIRTUAL bool SetSDIOutputAudioSystem (const NTV2Channel inSDIOutputConnector, const NTV2AudioSystem inAudioSystem);
5450 
5464  AJA_VIRTUAL bool SetSDIOutputAudioSystem (const NTV2ChannelSet & inSDIOutputs, const NTV2AudioSystem inAudioSystem, const bool inDS2 = false); // New in SDK 16.2
5465 
5476  AJA_VIRTUAL bool GetSDIOutputAudioSystem (const NTV2Channel inSDIOutputConnector, NTV2AudioSystem & outAudioSystem);
5477 
5489  AJA_VIRTUAL bool SetSDIOutputDS2AudioSystem (const NTV2Channel inSDIOutputConnector, const NTV2AudioSystem inAudioSystem);
5490 
5502  AJA_VIRTUAL bool GetSDIOutputDS2AudioSystem (const NTV2Channel inSDIOutputConnector, NTV2AudioSystem & outAudioSystem);
5503 
5513  AJA_VIRTUAL bool GetSDIOutputAudioEnabled (const NTV2Channel inSDIOutput, bool & outIsEnabled); // New in SDK 17.5
5514 
5525  AJA_VIRTUAL bool SetSDIOutputAudioEnabled (const NTV2Channel inSDIOutput, const bool & inEnable); // New in SDK 17.5
5526 
5527 
5531 
5541  AJA_VIRTUAL bool GetSDIRelayPosition (NTV2RelayState & outValue, const UWord inIndex0);
5542 
5553  AJA_VIRTUAL bool GetSDIRelayManualControl (NTV2RelayState & outValue, const UWord inIndex0);
5554 
5566  AJA_VIRTUAL bool SetSDIRelayManualControl (const NTV2RelayState inValue, const UWord inIndex0);
5567 
5577  AJA_VIRTUAL bool GetSDIWatchdogEnable (bool & outIsEnabled, const UWord inIndex0);
5578 
5592  AJA_VIRTUAL bool SetSDIWatchdogEnable (const bool inEnable, const UWord inIndex0);
5593 
5601  AJA_VIRTUAL bool GetSDIWatchdogStatus (NTV2RelayState & outValue);
5602 
5609  AJA_VIRTUAL bool GetSDIWatchdogTimeout (ULWord & outValue);
5610 
5619  AJA_VIRTUAL bool SetSDIWatchdogTimeout (const ULWord inValue);
5620 
5625  AJA_VIRTUAL bool KickSDIWatchdog (void);
5627 
5631 
5638  AJA_VIRTUAL bool Enable4KDCRGBMode(bool inEnable);
5639 
5640  AJA_VIRTUAL bool GetEnable4KDCRGBMode(bool & outIsEnabled);
5641 
5648  AJA_VIRTUAL bool Enable4KDCYCC444Mode(bool inEnable);
5649 
5650  AJA_VIRTUAL bool GetEnable4KDCYCC444Mode(bool & outIsEnabled);
5651 
5658  AJA_VIRTUAL bool Enable4KDCPSFInMode(bool inEnable);
5659 
5660  AJA_VIRTUAL bool GetEnable4KDCPSFInMode(bool & outIsEnabled);
5661 
5668  AJA_VIRTUAL bool Enable4KPSFOutMode(bool inEnable);
5669 
5670  AJA_VIRTUAL bool GetEnable4KPSFOutMode(bool & outIsEnabled);
5672 
5673 
5682  AJA_VIRTUAL bool SetSDIInLevelBtoLevelAConversion (const NTV2ChannelSet & inSDIInputs, const bool inEnable);
5683 
5691  AJA_VIRTUAL bool SetSDIInLevelBtoLevelAConversion (const UWord inInputSpigot, const bool inEnable);
5692 
5699  AJA_VIRTUAL bool GetSDIInLevelBtoLevelAConversion (const UWord inInputSpigot, bool & outIsEnabled);
5700 
5708  AJA_VIRTUAL bool SetSDIOutLevelAtoLevelBConversion (const UWord inOutputSpigot, const bool inEnable);
5709 
5718  AJA_VIRTUAL bool SetSDIOutLevelAtoLevelBConversion (const NTV2ChannelSet & inSDIOutputs, const bool inEnable); // New in SDK v16.0
5719 
5726  AJA_VIRTUAL bool GetSDIOutLevelAtoLevelBConversion (const UWord inOutputSpigot, bool & outIsEnabled);
5727 
5734  AJA_VIRTUAL bool SetSDIOutRGBLevelAConversion (const UWord inOutputSpigot, const bool inEnable);
5735 
5744  AJA_VIRTUAL bool SetSDIOutRGBLevelAConversion (const NTV2ChannelSet & inSDIOutputs, const bool inEnable); // New in SDK v16.0
5745 
5752  AJA_VIRTUAL bool GetSDIOutRGBLevelAConversion (const UWord inOutputSpigot, bool & outIsEnabled);
5753 
5754 
5758 
5763  AJA_VIRTUAL bool GetSDITRSError (const NTV2Channel inChannel);
5764 
5770  AJA_VIRTUAL bool GetSDILock (const NTV2Channel inChannel);
5771 
5777  AJA_VIRTUAL ULWord GetSDIUnlockCount (const NTV2Channel inChannel);
5778 
5784  AJA_VIRTUAL ULWord GetCRCErrorCountA (const NTV2Channel inChannel);
5785 
5791  AJA_VIRTUAL ULWord GetCRCErrorCountB (const NTV2Channel inChannel);
5793 
5806  AJA_VIRTUAL NTV2_WILL_BE_DEPRECATED(bool SetMultiFormatMode (const bool inEnable));
5807 
5819  AJA_VIRTUAL NTV2_WILL_BE_DEPRECATED(bool GetMultiFormatMode (bool & outIsEnabled));
5820 
5821 
5822 public:
5826 
5838  AJA_VIRTUAL bool SetRS422Parity (const NTV2Channel inSerialPort, const NTV2_RS422_PARITY inParity);
5839 
5850  AJA_VIRTUAL bool GetRS422Parity (const NTV2Channel inSerialPort, NTV2_RS422_PARITY & outParity);
5851 
5864  AJA_VIRTUAL bool SetRS422BaudRate (const NTV2Channel inSerialPort, const NTV2_RS422_BAUD_RATE inBaudRate);
5865 
5876  AJA_VIRTUAL bool GetRS422BaudRate (const NTV2Channel inSerialPort, NTV2_RS422_BAUD_RATE & outBaudRate);
5878 
5882 
5896  AJA_VIRTUAL bool AncSetFrameBufferSize (const ULWord inF1Size, const ULWord inF2Size); // New in SDK 16.0
5897 
5898 
5912  AJA_VIRTUAL bool AncInsertInit (const UWord inSDIOutput, const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
5913  const NTV2Standard inStandard = NTV2_STANDARD_INVALID); // New in SDK 15.0
5914 
5927  AJA_VIRTUAL bool AncInsertSetComponents (const UWord inSDIOutput,
5928  const bool inVancY, const bool inVancC,
5929  const bool inHancY, const bool inHancC); // New in SDK 16.0
5930 
5940  AJA_VIRTUAL bool AncInsertSetEnable (const UWord inSDIOutput, const bool inIsEnabled); // New in SDK 15.0
5941 
5949  AJA_VIRTUAL bool AncInsertIsEnabled (const UWord inSDIOutput, bool & outIsEnabled); // New in SDK 15.0
5950 
5967  AJA_VIRTUAL bool AncInsertSetReadParams (const UWord inSDIOutput, const ULWord inFrameNumber, const ULWord inF1Size,
5968  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
5969  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 15.0
5970 
5987  AJA_VIRTUAL bool AncInsertSetField2ReadParams (const UWord inSDIOutput, const ULWord inFrameNumber, const ULWord inF2Size,
5988  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
5989  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 15.0
5990 
5999  AJA_VIRTUAL bool AncInsertSetIPParams (const UWord inSDIOutput, const UWord ancChannel, const ULWord payloadID, const ULWord ssrc); // New in SDK 15.2
6000 
6008  AJA_VIRTUAL bool AncInsertGetReadInfo (const UWord inSDIOutput, uint64_t & outF1StartAddr, uint64_t & outF2StartAddr); // New in SDK v16.2
6009 
6010 
6026  AJA_VIRTUAL bool AncExtractInit (const UWord inSDIInput, const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6027  const NTV2Standard inStandard = NTV2_STANDARD_INVALID); // New in SDK 15.0
6028 
6041  AJA_VIRTUAL bool AncExtractSetComponents (const UWord inSDIInput,
6042  const bool inVancY, const bool inVancC,
6043  const bool inHancY, const bool inHancC); // New in SDK 16.0
6044 
6055  AJA_VIRTUAL bool AncExtractSetEnable (const UWord inSDIInput, const bool inIsEnabled); // New in SDK 15.0
6056 
6065  AJA_VIRTUAL bool AncExtractIsEnabled (const UWord inSDIInput, bool & outIsEnabled); // New in SDK 15.0
6066 
6083  AJA_VIRTUAL bool AncExtractSetWriteParams (const UWord inSDIInput, const ULWord inFrameNumber,
6084  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6085  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 15.0
6086 
6103  AJA_VIRTUAL bool AncExtractSetField2WriteParams (const UWord inSDIInput, const ULWord inFrameNumber,
6104  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6105  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 15.0
6106 
6118  AJA_VIRTUAL bool AncExtractGetWriteInfo (const UWord inSDIInput,
6119  uint64_t & outF1StartAddr, uint64_t & outF1EndAddr,
6120  uint64_t & outF2StartAddr, uint64_t & outF2EndAddr); // New in SDK v16.2
6121 
6131  AJA_VIRTUAL bool AncExtractGetFilterDIDs (const UWord inSDIInput, NTV2DIDSet & outDIDs); // New in SDK 15.0
6132 
6143  AJA_VIRTUAL bool AncExtractSetFilterDIDs (const UWord inSDIInput, const NTV2DIDSet & inDIDs); // New in SDK 15.0
6144 
6152  AJA_VIRTUAL bool AncExtractGetField1Size (const UWord inSDIInput, ULWord & outF1Size); // New in SDK 16.0
6153 
6161  AJA_VIRTUAL bool AncExtractGetField2Size (const UWord inSDIInput, ULWord & outF2Size); // New in SDK 16.0
6162 
6176  AJA_VIRTUAL bool AncExtractGetBufferOverrun (const UWord inSDIInput, bool & outIsOverrun, const UWord inField = 0); // New in SDK 15.0
6177 
6185  AJA_VIRTUAL bool AncExtractIsProgressive (const UWord inSDIInput, bool & outIsProgressive); // New in SDK 17.1
6186 
6191  static UWord AncExtractGetMaxNumFilterDIDs (void); // New in SDK 15.0
6192 
6200  static NTV2DIDSet AncExtractGetDefaultDIDs (const bool inHDAudio = true); // New in SDK 13.0
6202 
6206 
6216  AJA_VIRTUAL bool AuxSetFrameBufferSize (const ULWord inF1Size, const ULWord inF2Size) // New in SDK 17.1
6217  {return IsSupported(kDeviceCanDoHDMIAuxCapture) && AncSetFrameBufferSize(inF1Size,inF2Size);}
6218 
6219 
6232  AJA_VIRTUAL bool AuxInsertInit (const UWord inHDMIOutput, const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6233  const NTV2Standard inStandard = NTV2_STANDARD_INVALID); // New in SDK 17.1
6234 
6246  AJA_VIRTUAL bool AuxInsertSetComponents (const UWord inHDMIOutput,
6247  const bool inVauxY, const bool inVauxC,
6248  const bool inHauxY, const bool inHauxC); // New in SDK 17.1
6249 
6258  AJA_VIRTUAL bool AuxInsertSetEnable (const UWord inHDMIOutput, const bool inIsEnabled); // New in SDK 17.1
6259 
6266  AJA_VIRTUAL bool AuxInsertIsEnabled (const UWord inHDMIOutput, bool & outIsEnabled); // New in SDK 17.1
6267 
6283  AJA_VIRTUAL bool AuxInsertSetReadParams (const UWord inHDMIOutput, const ULWord inFrameNumber, const ULWord inF1Size,
6284  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6285  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 17.1
6286 
6302  AJA_VIRTUAL bool AuxInsertSetField2ReadParams (const UWord inHDMIOutput, const ULWord inFrameNumber, const ULWord inF2Size,
6303  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6304  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 17.1
6305 
6314  AJA_VIRTUAL bool AuxInsertSetIPParams (const UWord inHDMIOutput, const UWord auxChannel, const ULWord payloadID, const ULWord ssrc); // New in SDK 17.1
6315 
6323  AJA_VIRTUAL bool AuxInsertGetReadInfo (const UWord inHDMIOutput, uint64_t & outF1StartAddr, uint64_t & outF2StartAddr); // New in SDK 17.1
6324 
6325 
6340  AJA_VIRTUAL bool AuxExtractInit (const UWord inHDMIInput, const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6341  const NTV2Standard inStandard = NTV2_STANDARD_INVALID); // New in SDK 17.1
6351  AJA_VIRTUAL bool AuxExtractSetEnable (const UWord inHDMIInput, const bool inIsEnabled); // New in SDK 17.1
6352 
6360  AJA_VIRTUAL bool AuxExtractIsEnabled (const UWord inHDMIInput, bool & outIsEnabled); // New in SDK 17.1
6361 
6377  AJA_VIRTUAL bool AuxExtractSetWriteParams (const UWord inHDMIInput, const ULWord inFrameNumber,
6378  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6379  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 17.1
6380 
6396  AJA_VIRTUAL bool AuxExtractSetField2WriteParams (const UWord inHDMIInput, const ULWord inFrameNumber,
6397  const NTV2Channel inChannel = NTV2_CHANNEL_INVALID,
6398  const NTV2Framesize inFrameSize = NTV2_FRAMESIZE_INVALID); // New in SDK 17.1
6399 
6410  AJA_VIRTUAL bool AuxExtractGetWriteInfo (const UWord inHDMIInput,
6411  uint64_t & outF1StartAddr, uint64_t & outF1EndAddr,
6412  uint64_t & outF2StartAddr, uint64_t & outF2EndAddr); // New in SDK 17.1
6413 
6421  AJA_VIRTUAL bool AuxExtractGetField1Size (const UWord inHDMIInput, ULWord & outF1Size); // New in SDK 17.1
6422 
6430  AJA_VIRTUAL bool AuxExtractGetField2Size (const UWord inHDMIInput, ULWord & outF2Size); // New in SDK 17.1
6431 
6440  AJA_VIRTUAL bool AuxExtractGetPacketFilters (const UWord inHDMIInput, NTV2DIDSet & outDIDs); // New in SDK 17.1
6441 
6451  AJA_VIRTUAL bool AuxExtractSetPacketFilters (const UWord inHDMIInput, const NTV2DIDSet & inDIDs); // New in SDK 17.1
6452 
6460  AJA_VIRTUAL bool AuxExtractSetFilterInclusionMode (const UWord inHDMIInput, const bool inEnable); // New in SDK 17.1
6461 
6469  AJA_VIRTUAL bool AuxExtractGetFilterInclusionMode (const UWord inHDMIInput, bool & outEnabled); // New in SDK 17.1
6470 
6483  AJA_VIRTUAL bool AuxExtractGetBufferOverrun (const UWord inHDMIInput, bool & outIsOverrun, const UWord inField = 0); // New in SDK 17.1
6484 
6491  AJA_VIRTUAL bool AuxExtractIsProgressive (const UWord inHDMIInput, bool & outIsProgressive); // New in SDK 17.1
6492 
6497  static UWord AuxExtractGetMaxNumPacketFilters (void); // New in SDK 17.1
6498 
6503  static NTV2DIDSet AuxExtractGetDefaultPacketFilters (void); // New in SDK 17.1
6505 
6506 
6510  AJA_VIRTUAL bool AcquireMailBoxLock (void);
6512  AJA_VIRTUAL bool ReleaseMailBoxLock (void);
6513  AJA_VIRTUAL bool AbortMailBoxLock (void);
6515 
6519 
6526  AJA_VIRTUAL bool GetDieTemperature (double & outTemp, const NTV2DieTempScale inTempScale = NTV2DieTempScale_Celsius);
6527 
6533  AJA_VIRTUAL bool GetDieVoltage (double & outVoltage);
6535 
6536 public:
6540  AJA_VIRTUAL inline CNTV2DriverInterface & driverInterface (void) {return *this;} // New in SDK 17.1
6541 
6542  AJA_VIRTUAL std::string GetFPGAVersionString (const NTV2XilinxFPGA inFPGA = eFPGAVideoProc);
6543  AJA_VIRTUAL Word GetPCIFPGAVersion (void); // From CNTV2Status
6544  AJA_VIRTUAL std::string GetPCIFPGAVersionString (void);
6545 
6563  AJA_VIRTUAL bool GetInstalledBitfileInfo (ULWord & outNumBytes, std::string & outDateStr, std::string & outTimeStr);
6564 
6570  AJA_VIRTUAL std::string GetBitfileInfoString (const BITFILE_INFO_STRUCT & inBitFileInfo);
6571 
6581  AJA_VIRTUAL bool IsFailSafeBitfileLoaded (bool & outIsFailSafe);
6582 
6590  AJA_VIRTUAL bool CanWarmBootFPGA (bool & outCanWarmBoot);
6591 
6592  AJA_VIRTUAL bool IsDynamicDevice (void);
6593  AJA_VIRTUAL bool IsDynamicFirmwareLoaded(void);
6594  AJA_VIRTUAL NTV2DeviceID GetBaseDeviceID();
6595  AJA_VIRTUAL NTV2DeviceIDList GetDynamicDeviceList (void);
6596  AJA_VIRTUAL NTV2DeviceIDSet GetDynamicDeviceIDs (void);
6597 
6602  AJA_VIRTUAL bool CanLoadDynamicDevice (const NTV2DeviceID inDeviceID);
6603 
6612  AJA_VIRTUAL bool LoadDynamicDevice (const NTV2DeviceID inDeviceID);
6613 
6619  AJA_VIRTUAL bool AddDynamicBitfile (const std::string & inBitfilePath);
6620 
6627  AJA_VIRTUAL bool AddDynamicDirectory (const std::string & inDirectory);
6628 
6634  static std::string SerialNum64ToString (const uint64_t inSerialNumber);
6635 
6636  typedef enum
6637  {
6641  NUM_COLORS
6642  } ColorCorrectionColor; // From CNTV2ColorCorrection
6643 
6644 protected:
6646 
6647 public:
6648 #if !defined(NTV2_DEPRECATE_17_6)
6649  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcGetDeviceInfo (HevcDeviceInfo* pInfo)) {(void)pInfo; return false;}
6650  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcWriteRegister (ULWord addr, ULWord val, ULWord mask = 0xffffffff, ULWord shift = 0)) {(void)addr; (void)val; (void)mask; (void)shift; return false;}
6651  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcReadRegister (ULWord addr, ULWord* pVal, ULWord mask = 0xffffffff, ULWord shift = 0)) {(void)addr; (void)pVal; (void)mask; (void)shift; return false;}
6652  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcSendCommand (HevcDeviceCommand* pCmd)) {(void)pCmd; return false;}
6653  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcVideoTransfer (HevcDeviceTransfer* pXfer)) {(void)pXfer; return false;}
6654  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcGetStatus (HevcDeviceStatus* pStat)) {(void)pStat; return false;}
6655  AJA_VIRTUAL bool NTV2_DEPRECATED_17_6(HevcDebugInfo (HevcDeviceDebug* pDbg)) {(void)pDbg; return false;}
6656 #endif//defined(NTV2_DEPRECATE_17_6)
6657 
6661 
6667  AJA_VIRTUAL bool EnableHDMIHDR (const bool inEnableHDMIHDR, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6668  AJA_VIRTUAL bool GetHDMIHDREnabled (const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
6669 
6678  AJA_VIRTUAL bool EnableHDMIHDRDolbyVision (const bool inEnable, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 13.0
6679  AJA_VIRTUAL bool GetHDMIHDRDolbyVisionEnabled (const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
6680 
6681 
6687  AJA_VIRTUAL bool SetHDMIHDRConstantLuminance (const bool inEnableConstantLuminance, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6688  AJA_VIRTUAL bool GetHDMIHDRConstantLuminance (const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1);
6689 
6695  AJA_VIRTUAL bool SetHDMIHDRGreenPrimaryX (const uint16_t inGreenPrimaryX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6701  AJA_VIRTUAL bool GetHDMIHDRGreenPrimaryX (uint16_t & outGreenPrimaryX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6702 
6708  AJA_VIRTUAL bool SetHDMIHDRGreenPrimaryY (const uint16_t inGreenPrimaryY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6714  AJA_VIRTUAL bool GetHDMIHDRGreenPrimaryY (uint16_t & outGreenPrimaryY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6715 
6721  AJA_VIRTUAL bool SetHDMIHDRBluePrimaryX (const uint16_t inBluePrimaryX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6727  AJA_VIRTUAL bool GetHDMIHDRBluePrimaryX (uint16_t & outBluePrimaryX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6728 
6734  AJA_VIRTUAL bool SetHDMIHDRBluePrimaryY (const uint16_t inBluePrimaryY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6740  AJA_VIRTUAL bool GetHDMIHDRBluePrimaryY (uint16_t & outBluePrimaryY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6741 
6747  AJA_VIRTUAL bool SetHDMIHDRRedPrimaryX (const uint16_t inRedPrimaryX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6753  AJA_VIRTUAL bool GetHDMIHDRRedPrimaryX (uint16_t & outRedPrimaryX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6754 
6760  AJA_VIRTUAL bool SetHDMIHDRRedPrimaryY (const uint16_t inRedPrimaryY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6766  AJA_VIRTUAL bool GetHDMIHDRRedPrimaryY (uint16_t & outRedPrimaryY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6767 
6773  AJA_VIRTUAL bool SetHDMIHDRWhitePointX (const uint16_t inWhitePointX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6779  AJA_VIRTUAL bool GetHDMIHDRWhitePointX (uint16_t & outWhitePointX, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6780 
6786  AJA_VIRTUAL bool SetHDMIHDRWhitePointY (const uint16_t inWhitePointY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6792  AJA_VIRTUAL bool GetHDMIHDRWhitePointY (uint16_t & outWhitePointY, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6793 
6799  AJA_VIRTUAL bool SetHDMIHDRMaxMasteringLuminance (const uint16_t inMaxMasteringLuminance, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6805  AJA_VIRTUAL bool GetHDMIHDRMaxMasteringLuminance (uint16_t & outMaxMasteringLuminance, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6806 
6812  AJA_VIRTUAL bool SetHDMIHDRMinMasteringLuminance (const uint16_t inMinMasteringLuminance, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6818  AJA_VIRTUAL bool GetHDMIHDRMinMasteringLuminance (uint16_t & outMinMasteringLuminance, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6819 
6825  AJA_VIRTUAL bool SetHDMIHDRMaxContentLightLevel (const uint16_t inMaxContentLightLevel, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6831  AJA_VIRTUAL bool GetHDMIHDRMaxContentLightLevel (uint16_t & outMaxContentLightLevel, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6832 
6838  AJA_VIRTUAL bool SetHDMIHDRMaxFrameAverageLightLevel (const uint16_t inMaxFrameAverageLightLevel, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6844  AJA_VIRTUAL bool GetHDMIHDRMaxFrameAverageLightLevel (uint16_t & outMaxFrameAverageLightLevel, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6845 
6846 
6847  AJA_VIRTUAL bool SetHDMIHDRElectroOpticalTransferFunction (const uint8_t inEOTFByte, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6848  AJA_VIRTUAL bool GetHDMIHDRElectroOpticalTransferFunction (uint8_t & outEOTFByte, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6849  AJA_VIRTUAL bool SetHDMIHDRStaticMetadataDescriptorID (const uint8_t inSMDId, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6850  AJA_VIRTUAL bool GetHDMIHDRStaticMetadataDescriptorID (uint8_t & outSMDId, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6851 
6852  AJA_VIRTUAL bool SetHDRData (const HDRFloatValues & inFloatValues, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6853  AJA_VIRTUAL bool SetHDRData (const HDRRegValues & inRegisterValues, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6854  AJA_VIRTUAL bool GetHDRData (HDRFloatValues & outFloatValues, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6855  AJA_VIRTUAL bool GetHDRData (HDRRegValues & outRegisterValues, const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6856  AJA_VIRTUAL bool SetHDMIHDRBT2020 (const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6857  AJA_VIRTUAL bool SetHDMIHDRDCIP3 (const NTV2Channel inWhichHDMIOut = NTV2_CHANNEL1); // New in SDK 12.5
6858 
6859  // default channel VPID parameters (frame stores)
6860  AJA_VIRTUAL bool SetVPIDTransferCharacteristics (const NTV2VPIDTransferCharacteristics inValue, const NTV2Channel inChannel); // New in SDK 15.2
6861  AJA_VIRTUAL bool GetVPIDTransferCharacteristics (NTV2VPIDTransferCharacteristics & outValue, const NTV2Channel inChannel); // New in SDK 15.2
6862  AJA_VIRTUAL bool SetVPIDColorimetry (const NTV2VPIDColorimetry inValue, const NTV2Channel inChannel); // New in SDK 15.2
6863  AJA_VIRTUAL bool GetVPIDColorimetry (NTV2VPIDColorimetry & outValue, const NTV2Channel inChannel); // New in SDK 15.2
6864  AJA_VIRTUAL bool SetVPIDLuminance (const NTV2VPIDLuminance inValue, const NTV2Channel inChannel); // New in SDK 15.2
6865  AJA_VIRTUAL bool GetVPIDLuminance (NTV2VPIDLuminance & outValue, const NTV2Channel inChannel); // New in SDK 15.2
6866  AJA_VIRTUAL bool SetVPIDRGBRange (const NTV2VPIDRGBRange inValue, const NTV2Channel inChannel); // New in SDK 16.0
6867  AJA_VIRTUAL bool GetVPIDRGBRange (NTV2VPIDRGBRange & outValue, const NTV2Channel inChannel); // New in SDK 16.0
6868 
6869  // default channel key signal
6870  AJA_VIRTUAL bool SetKeySignal(bool inValue, const NTV2Channel inChannel);
6871  AJA_VIRTUAL bool GetKeySignal(bool & outValue, const NTV2Channel inChannel);
6872 
6873  // sdi output VPID parameter overrides
6874  AJA_VIRTUAL bool SetSDIOutVPIDTransferCharacteristics(bool enable, NTV2VPIDTransferCharacteristics inValue, const NTV2Channel inChannel);
6875  AJA_VIRTUAL bool GetSDIOutVPIDTransferCharacteristics(bool & enable, NTV2VPIDTransferCharacteristics & outValue, const NTV2Channel inChannel);
6876  AJA_VIRTUAL bool SetSDIOutVPIDColorimetry(bool enable, NTV2VPIDColorimetry inValue, const NTV2Channel inChannel);
6877  AJA_VIRTUAL bool GetSDIOutVPIDColorimetry(bool & enable, NTV2VPIDColorimetry & outValue, const NTV2Channel inChannel);
6878  AJA_VIRTUAL bool SetSDIOutVPIDLuminance(bool enable, NTV2VPIDLuminance inValue, const NTV2Channel inChannel);
6879  AJA_VIRTUAL bool GetSDIOutVPIDLuminance(bool & enable, NTV2VPIDLuminance & outValue, const NTV2Channel inChannel);
6880  AJA_VIRTUAL bool SetSDIOutVPIDRGBRange(bool enable, NTV2VPIDRGBRange inValue, const NTV2Channel inChannel);
6881  AJA_VIRTUAL bool GetSDIOutVPIDRGBRange(bool & enable, NTV2VPIDRGBRange & outValue, const NTV2Channel inChannel);
6882 
6883  // sdi output key signal override
6884  AJA_VIRTUAL bool SetSDIOutKeySignal(bool enable, bool inValue, const NTV2Channel inChannel);
6885  AJA_VIRTUAL bool GetSDIOutKeySignal(bool & enable, bool & outValue, const NTV2Channel inChannel);
6886 
6887  AJA_VIRTUAL bool Set3DLUTTableLocation (const ULWord inFrameNumber, ULWord inLUTIndex = 0); // New in SDK 16.0
6888  AJA_VIRTUAL bool Load3DLUTTable (void); // New in SDK 16.0
6889  AJA_VIRTUAL bool Set1DLUTTableLocation (const NTV2Channel inChannel, const ULWord inFrameNumber, ULWord inLUTIndex = 0); // New in SDK 16.0
6890  AJA_VIRTUAL bool Load1DLUTTable (const NTV2Channel inChannel); // New in SDK 16.0
6891 
6892  // MultiViewer/MultiRasterizer
6893  AJA_VIRTUAL inline bool HasMultiRasterWidget (void) {return IsSupported(kDeviceCanDoHDMIMultiView);} // New in SDK 16.1
6894  AJA_VIRTUAL bool SetMultiRasterBypassEnable (const bool inEnable); // New in SDK 16.1
6895  AJA_VIRTUAL bool GetMultiRasterBypassEnable (bool & outEnabled); // New in SDK 16.1
6896  AJA_VIRTUAL bool IsMultiRasterWidgetChannel (const NTV2Channel inChannel); // New in SDK 16.2
6898 
6899 #if !defined(NTV2_DEPRECATE_17_5)
6900  AJA_VIRTUAL inline bool NTV2_DEPRECATED_17_5(IsBreakoutBoardConnected (void)) {return IsSupported(kDeviceHasBreakoutBoard);}
6901 #endif // NTV2_DEPRECATE_17_5
6902 
6903 #if !defined(NTV2_DEPRECATE_16_1)
6904  AJA_VIRTUAL inline NTV2_DEPRECATED_16_1(bool SetAudioOutputMonitorSource (const NTV2AudioMonitorSelect inChannelPair, const NTV2Channel inAudioSystem = NTV2_CHANNEL1)) {return SetAudioOutputMonitorSource(inChannelPair, NTV2AudioSystem(inAudioSystem));}
6905  AJA_VIRTUAL inline NTV2_DEPRECATED_16_1(bool GetAudioOutputMonitorSource (NTV2AudioMonitorSelect & chp, NTV2Channel & ch)) {NTV2AudioSystem sys; if (GetAudioOutputMonitorSource(chp, sys)) {ch = NTV2Channel(sys); return true;} return false;}
6906 #endif // NTV2_DEPRECATE_16_1
6907 
6908 protected:
6909  AJA_VIRTUAL ULWord GetSerialNumberLow (void); // From CNTV2Status
6910  AJA_VIRTUAL ULWord GetSerialNumberHigh (void); // From CNTV2Status
6911  AJA_VIRTUAL inline bool IS_CHANNEL_VALID (const NTV2Channel inChannel) const {return !IS_CHANNEL_INVALID(inChannel);} // New in SDK 16.2
6912  AJA_VIRTUAL bool IS_CHANNEL_INVALID (const NTV2Channel inChannel) const;
6913  AJA_VIRTUAL bool IS_OUTPUT_SPIGOT_INVALID (const UWord inOutputSpigot);
6914  AJA_VIRTUAL bool IS_INPUT_SPIGOT_INVALID (const UWord inInputSpigot);
6915  AJA_VIRTUAL bool IS_HDMI_INPUT_SPIGOT_INVALID (const UWord inInputHDMIPort);
6916 
6917  AJA_VIRTUAL bool GetHDMIOutControlReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6918  AJA_VIRTUAL bool GetHDMIOutInputStatusRegNum (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6919  AJA_VIRTUAL bool GetHDMIOutInputControlRegNum (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6920  AJA_VIRTUAL bool GetHDMIOutStatusReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6921  AJA_VIRTUAL bool GetHDMIOutHDRGreenPrimaryReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6922  AJA_VIRTUAL bool GetHDMIOutHDRBluePrimaryReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6923  AJA_VIRTUAL bool GetHDMIOutHDRRedPrimaryReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6924  AJA_VIRTUAL bool GetHDMIOutHDRWhitePointReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6925  AJA_VIRTUAL bool GetHDMIOutHDRMasterLuminanceReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6926  AJA_VIRTUAL bool GetHDMIOutHDRLightLevelReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6927  AJA_VIRTUAL bool GetHDMIOutHDRControlReg (ULWord & outRegNum, const NTV2Channel inWhichHDMIOut);
6928 
6929  // Seamless Anc Playout & Capture
6930  // For AutoCirculate Playout
6931  AJA_VIRTUAL bool S2110DeviceAncToXferBuffers (const NTV2Channel inChannel, AUTOCIRCULATE_TRANSFER & inOutXferInfo);
6932  // For Non-AutoCirculate Playout
6933  AJA_VIRTUAL bool S2110DeviceAncToBuffers (const NTV2Channel inChannel, NTV2Buffer & ancF1, NTV2Buffer & ancF2);
6934  // For AutoCirculate Capture
6935  AJA_VIRTUAL bool S2110DeviceAncFromXferBuffers (const NTV2Channel inChannel, AUTOCIRCULATE_TRANSFER & inOutXferInfo);
6936  // For Non-AutoCirculate Capture
6937  AJA_VIRTUAL bool S2110DeviceAncFromBuffers (const NTV2Channel inChannel, NTV2Buffer & ancF1, NTV2Buffer & ancF2);
6938  AJA_VIRTUAL bool WriteSDIInVPID (const NTV2Channel inChannel, const ULWord inValA, const ULWord inValB);
6939 
6940  // Global control register accumulator -- lets SetVideoFormat coalesce SetStandard/SetFrameGeometry/
6941  // SetFrameRate/SetSmpte372 into a single hardware write instead of one independent read-modify-write
6942  // per field (avoids parking the register in an illegal intermediate state while switching video
6943  // formats). The accumulator lives on the caller's stack (see SetVideoFormat) rather than as CNTV2Card
6944  // member state, so concurrent SetVideoFormat calls on the same card instance don't race on shared state.
6946  {
6947  bool isValid;
6950  GlobalControlRegWrite (void) : isValid(false), regNum(0), regValue(0) {}
6951  };
6952  AJA_VIRTUAL bool WriteGlobalControlBits (const ULWord regNum, const ULWord value, const ULWord mask, const ULWord shift, GlobalControlRegWrite * pGlobalControl);
6953  AJA_VIRTUAL bool FlushGlobalControlWrite (GlobalControlRegWrite * pGlobalControl);
6954 
6955  AJA_VIRTUAL bool SetStandard (NTV2Standard inValue, NTV2Channel inChannel, GlobalControlRegWrite * pGlobalControl);
6956  AJA_VIRTUAL bool SetFrameGeometry (NTV2FrameGeometry inGeometry, bool inIsRetail, NTV2Channel inChannel, GlobalControlRegWrite * pGlobalControl);
6957  AJA_VIRTUAL bool SetFrameRate (NTV2FrameRate inNewValue, NTV2Channel inChannel, GlobalControlRegWrite * pGlobalControl);
6958  AJA_VIRTUAL bool SetSmpte372 (ULWord inValue, NTV2Channel inChannel, GlobalControlRegWrite * pGlobalControl);
6959 
6960 private:
6961  // frame buffer sizing helpers
6962  AJA_VIRTUAL bool GetLargestFrameBufferFormatInUse(NTV2FrameBufferFormat & outFBF);
6963  AJA_VIRTUAL bool GetFrameInfo(const NTV2Channel inChannel, NTV2FrameGeometry & outGeometry, NTV2FrameBufferFormat & outFBF);
6964  AJA_VIRTUAL bool IsBufferSizeChangeRequired(NTV2Channel channel, NTV2FrameGeometry currentGeometry, NTV2FrameGeometry newGeometry,
6965  NTV2FrameBufferFormat format);
6966  AJA_VIRTUAL bool IsBufferSizeChangeRequired(NTV2Channel channel, NTV2FrameGeometry geometry,
6967  NTV2FrameBufferFormat currentFormat, NTV2FrameBufferFormat newFormat);
6968 #if !defined(NTV2_DEPRECATE_17_2)
6969  AJA_VIRTUAL NTV2_DEPRECATED_17_2(bool GetFBSizeAndCountFromHW(ULWord & outSize, ULWord & outCount));
6970 #endif
6971 
6972  AJA_VIRTUAL bool IsMultiFormatActive (void);
6973  AJA_VIRTUAL bool CopyVideoFormat(const NTV2Channel inSrc, const NTV2Channel inFirst, const NTV2Channel inLast);
6974 
6975  class DeviceCapabilities mDevCap;
6976  friend class CNTV2DeviceScanner; // Device scanner needs access to my private methods & vars
6977 }; // CNTV2Card
6978 
6979 
6981 #if !defined(NTV2_DEPRECATE_16_2)
6988 #endif // !defined(NTV2_DEPRECATE_16_2)
6989 
6990 #define SetTablesToHardware LoadLUTTables
6991 #define GetTablesFromHardware GetLUTTables
6992 
6994 
6995 
7020 {
7021  public:
7025  explicit SDRAMAuditor ()
7026  : mDeviceID (DEVICE_ID_INVALID),
7027  mFrameTags (),
7028  m8MB (0x00800000),
7029  mNumFrames (0),
7030  mIntrinsicSize (0)
7031  {
7032  }
7033 
7038  explicit SDRAMAuditor (CNTV2Card & inDevice)
7039  : mDeviceID (DEVICE_ID_INVALID),
7040  mFrameTags (),
7041  m8MB (0x00800000),
7042  mNumFrames (0),
7043  mIntrinsicSize (0)
7044  {
7045  AssessDevice(inDevice);
7046  }
7047 
7057  bool AssessDevice (CNTV2Card & inDevice, const bool inIgnoreStoppedAudioBuffers = false);
7058 
7068  bool GetRegions (ULWordSequence & outFree, ULWordSequence & outUsed, ULWordSequence & outBad) const;
7069 
7074  inline bool GetFreeRegions (ULWordSequence & outBlks) const
7075  {
7076  ULWordSequence used, bad;
7077  return GetRegions (outBlks, used, bad);
7078  }
7079 
7084  inline bool GetBadRegions (ULWordSequence & outBlks) const
7085  {
7086  ULWordSequence used, free;
7087  return GetRegions (free, used, outBlks);
7088  }
7089 
7094  inline bool GetUsedRegions (ULWordSequence & outBlks) const
7095  {
7096  ULWordSequence bad, free;
7097  return GetRegions (free, outBlks, bad);
7098  }
7099 
7106  bool GetTagsForFrameIndex (const UWord inIndex, NTV2StringSet & outTags) const;
7107 
7108  bool HasFrameIndex (const UWord inIndex) const {return mFrameTags.find(inIndex) != mFrameTags.end();}
7109 
7110  size_t GetTagCount (const UWord inIndex) const;
7111 
7112  inline bool HasTag (const UWord inIndex) const {return GetTagCount(inIndex) > 0;}
7113  inline bool HasConflicts (const UWord inIndex) const {return GetTagCount(inIndex) > 1;}
7114  inline ULWord GetIntrinsicFrameByteCount (void) const {return mIntrinsicSize;}
7115 
7126  bool TranslateRegions (ULWordSequence & outRgns, const ULWordSequence & inRgns, const bool inIsQuad, const bool inIsQuadQuad) const;
7127 
7133  std::ostream & RawDump (std::ostream & oss) const;
7134 
7140  std::ostream & DumpBlocks (std::ostream & oss) const;
7141 
7142  // Static/Class Methods
7143  public:
7147  static ULWordSet CoalesceRegions (const ULWordSequence & inRgn1, const ULWordSequence & inRgn2, const ULWordSequence & inRgn3);
7148 
7149  protected:
7150  bool TagAudioBuffers (CNTV2Card & inDevice, const bool inMarkStoppedAudioBuffersFree);
7151  bool TagVideoFrames (CNTV2Card & inDevice);
7152  bool TagMemoryBlock (const ULWord inStartAddr, const ULWord inByteLength, const std::string & inTag);
7153  bool TagMemoryBlock (const uint64_t inStartAddr, const uint64_t inByteLength, const std::string & inTag)
7154  {
7155  return TagMemoryBlock (ULWord(inStartAddr), ULWord(inByteLength), inTag);
7156  }
7157 
7158  private:
7159  typedef std::pair<UWord, NTV2StringSet> FrameTag;
7160  typedef std::map<UWord, NTV2StringSet> FrameTags;
7161  typedef FrameTags::const_iterator FrameTagsConstIter;
7162 
7163  NTV2DeviceID mDeviceID;
7164  FrameTags mFrameTags;
7165  const ULWord m8MB;
7166  UWord mNumFrames;
7167  ULWord mIntrinsicSize;
7168 }; // SDRAMAuditor
7169 
7170 #endif // NTV2CARD_H
SDRAMAuditor()
My default constructor. I am not ready for use until my SDRAMAuditor::Assess method has been called...
Definition: ntv2card.h:7025
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
size_t GetTagCount(const UWord inIndex) const
Definition: ntv2card.cpp:1172
#define NTV2_DEPRECATED_17_0(__f__)
NTV2VideoDACMode
Definition: ntv2enums.h:2147
NTV2LutBitDepth
This specifies the LUT bit depth.
Definition: ntv2enums.h:3589
virtual bool IsSupported(const NTV2BoolParamID inParamID)
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information...
Definition: ntv2enums.h:3901
#define NTV2_DEPRECATED_17_2(__f__)
bool GetBadRegions(ULWordSequence &outBlks) const
Answers with the list of colliding and illegal memory regions.
Definition: ntv2card.h:7084
#define NTV2_DEPRECATED_16_0(__f__)
static NTV2Buffer NULL_POINTER
Used for default empty NTV2Buffer parameters – do not modify.
Definition: ntv2card.h:6645
NTV2Crosspoint
Logically, these are an NTV2Channel combined with an NTV2Mode.
Definition: ntv2enums.h:1705
#define NTV2VANCModeFromBools(_tall_, _taller_)
Definition: ntv2enums.h:3816
std::vector< double > NTV2DoubleArray
An array of double-precision floating-point values.
NTV2AudioBufferSize
Represents the size of the audio buffer used by a device audio system for storing captured samples or...
Definition: ntv2enums.h:1919
NTV2HDMIColorSpace
Indicates or specifies HDMI Color Space.
Definition: ntv2enums.h:3611
SDRAMAuditor(CNTV2Card &inDevice)
Constructs me and automatically assesses the given device.
Definition: ntv2card.h:7038
virtual bool ReadFlashProgramControl(ULWord &outVal)
Definition: ntv2card.h:2526
This class is used to enumerate AJA devices that are attached and known to the local host computer...
Declares CNTV2SignalRouter class.
I interrogate and control an AJA video/audio capture/playout device.
Definition: ntv2card.h:28
NTV2FieldID
These values are used to identify fields for interlaced video. See Field/Frame Interrupts and CNTV2Ca...
Definition: ntv2enums.h:1845
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
Definition: ntv2enums.h:223
defined(NTV2_DEPRECATE_17_6)
NTV2TaskMode
Describes the task mode state. See also: NTV2 Device Sharing.
virtual bool ReadAudioLastIn(ULWord &outValue, const NTV2Channel inChannel)
Definition: ntv2card.h:2212
bool AssessDevice(CNTV2Card &inDevice, const bool inIgnoreStoppedAudioBuffers=(0))
Assesses the given device.
Definition: ntv2card.cpp:1028
NTV2_RP188Mode
Definition: ntv2enums.h:2100
NTV2InputVideoSelect
Definition: ntv2enums.h:2301
bool HasFrameIndex(const UWord inIndex) const
Definition: ntv2card.h:7108
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
Audits an NTV2 device&#39;s SDRAM utilization, and can report contiguous regions of SDRAM, whether unused/free, those being read/written by AutoCirculate, those being read/written by non-AutoCirculating FrameStores, those that are in conflict (AutoCirculate, FrameStore and/or Audio collisions), plus invalid/out-of-bounds regions being accessed.
Definition: ntv2card.h:7019
enum NTV2VPIDLuminance NTV2HDRLuminance
bool TranslateRegions(ULWordSequence &outRgns, const ULWordSequence &inRgns, const bool inIsQuad, const bool inIsQuadQuad) const
Translates an 8MB-chunked list of regions into another list of regions with frame indexes and sizes e...
Definition: ntv2card.cpp:1180
enum NTV2VideoFrameBufferOrientation NTV2FBOrientation
NTV2AnalogAudioIO
Definition: ntv2enums.h:2237
enum NTV2VPIDColorimetry NTV2HDRColorimetry
virtual bool SubscribeOutputVerticalEvent(const NTV2Channel inChannel=NTV2_CHANNEL1)
Causes me to be notified when an output vertical blanking interrupt is generated for the given output...
Definition: ntv2card.h:2763
NTV2VPIDLuminance
Definition: ntv2enums.h:4268
virtual bool Read3GInput5678StatusRegister(ULWord *pVal)
Definition: ntv2card.h:2523
std::map< ULWord, ULWord > NTV2RegisterValueMap
A mapping of distinct NTV2RegisterNumbers to their corresponding ULWord values.
NTV2InterruptMask
Definition: ntv2enums.h:1532
virtual bool ReadGlobalControl(ULWord *pOutVal)
Definition: ntv2card.h:2417
int32_t LWord
Definition: ajatypes.h:235
std::bitset< 16 > NTV2AudioChannelsMuted16
Per-audio-channel mute state for up to 16 audio channels.
NTV2EmbeddedAudioClock
This enum value determines/states the device audio clock reference source. It was important to set th...
Definition: ntv2enums.h:1995
if(!(riid==IID_IUnknown) &&!(riid==IID_IClassFactory))
Definition: dllentry.cpp:196
virtual bool GetLEDState(ULWord &outValue)
Answers with the current state of the four on-board LEDs.
Definition: ntv2card.h:2551
virtual bool SupportsP2PTransfer(void)
Definition: ntv2card.h:2527
INTERRUPT_ENUMS NTV2ChannelToInputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent input INTERRUPT_ENUMS value.
Definition: ntv2utils.cpp:4941
NTV2HDMIAudioChannels
Indicates or specifies the HDMI audio channel count.
Definition: ntv2enums.h:3673
NTV2RelayState
This enumerated data type identifies the two possible states of the bypass relays. See CNTV2Card::GetSDIRelayPosition, CNTV2Card::GetSDIRelayManualControl, CNTV2Card::GetSDIWatchdogStatus, etc.
Definition: ntv2enums.h:3942
NTV2LutType
This specifies what function(s) are currently loaded into the LUTs.
Definition: ntv2enums.h:3570
virtual ULWord GetFrameBufferSize(void) const
std::ostream & RawDump(std::ostream &oss) const
Dumps a human-readable list of regions into the given stream.
Definition: ntv2card.cpp:1048
#define false
NTV2HDMIRange
Indicates or specifies the HDMI RGB range.
Definition: ntv2enums.h:3641
uint32_t ULWord
Definition: ajatypes.h:236
NTV2AudioFormat
Definition: ntv2enums.h:1956
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They&#39;re also commonly use...
Definition: ntv2enums.h:1361
This class is a collection of widget input-to-output connections that can be applied all-at-once to a...
virtual class DeviceCapabilities & features(void)
Definition: ntv2card.h:148
True if device can directly transmit data to another PCIe device via peer-to-peer DMA...
std::set< NTV2AudioChannelPair > NTV2AudioChannelPairs
A set of distinct NTV2AudioChannelPair values.
NTV2LHIVideoDACMode
Definition: ntv2enums.h:2178
virtual bool ReadRegister(const ULWord inRegNum, ULWord &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Reads all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device...
virtual bool SupportsP2PTarget(void)
Definition: ntv2card.h:2528
This struct replaces the old RP188_STRUCT.
#define NTV2_DEPRECATED_16_1(__f__)
bool HasTag(const UWord inIndex) const
Definition: ntv2card.h:7112
NTV2XilinxFPGA
Definition: ntv2enums.h:3852
virtual bool HasMultiRasterWidget(void)
Definition: ntv2card.h:6893
A helper class used in CNTV2Card::AutoCirculateInitForInput and CNTV2Card::AutoCirculateInitForOutput...
Definition: ntv2utils.h:972
bool HasConflicts(const UWord inIndex) const
Definition: ntv2card.h:7113
CNTV2Card CNTV2Status
Definition: ntv2card.h:6982
I&#39;m the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
NTV2FrameRate
Identifies a particular video frame rate.
Definition: ntv2enums.h:416
virtual CNTV2DriverInterface & driverInterface(void)
Definition: ntv2card.h:6540
virtual bool DMABufferUnlock(const ULWord *pInBuffer, const ULWord inByteCount)
Unlocks the given host buffer that was previously locked using CNTV2Card::DMABufferLock.
Definition: ntv2card.h:492
NTV2Standard
Identifies a particular video standard.
Definition: ntv2enums.h:169
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
static ULWordSet CoalesceRegions(const ULWordSequence &inRgn1, const ULWordSequence &inRgn2, const ULWordSequence &inRgn3)
Definition: ntv2card.cpp:1058
enum NTV2VPIDTransferCharacteristics NTV2HDRXferChars
int16_t Word
Definition: ajatypes.h:233
NTV2_RS422_PARITY
These enum values identify RS-422 serial port parity configuration.
Definition: ntv2enums.h:4168
virtual bool DeviceCanDoAudioMixer(void)
Definition: ntv2card.h:164
std::set< std::string > NTV2StringSet
NTV2ReferenceSource
These enum values identify a specific source for the device&#39;s (output) reference clock.
Definition: ntv2enums.h:1459
NTV2BreakoutType
Identifies the Breakout Boxes and Cables that may be attached to an AJA NTV2 device.
Definition: ntv2enums.h:3108
Identifies "all" ancillary data regions.
Definition: ntv2enums.h:4243
virtual bool ReadRegisters(NTV2RegisterReads &inOutValues)
Reads the register(s) specified by the given NTV2RegInfo sequence.
CNTV2Card CXena2VidProc
Definition: ntv2card.h:6987
#define AJA_VIRTUAL
Definition: ajatypes.h:143
NTV2ColorSpaceMethod
Definition: ntv2enums.h:3453
NTV2DMAEngine
Definition: ntv2enums.h:1861
True if device has attached breakout board. (New in SDK 17.0)
bool TagMemoryBlock(const uint64_t inStartAddr, const uint64_t inByteLength, const std::string &inTag)
Definition: ntv2card.h:7153
bool GetFreeRegions(ULWordSequence &outBlks) const
Answers with the list of free memory regions.
Definition: ntv2card.h:7074
virtual bool ReadAudioLastOut(ULWord &outValue, const NTV2Channel inChannel)
Definition: ntv2card.h:2211
Reports HDMI output status information.
NTV2AudioLoopBack
This enum value determines/states if an audio output embedder will embed silence (zeroes) or de-embed...
Definition: ntv2enums.h:2033
virtual bool SetEveryFrameServices(const NTV2TaskMode m)
Definition: ntv2card.h:1204
virtual bool SubscribeInputVerticalEvent(const NTV2Channel inChannel=NTV2_CHANNEL1)
Causes me to be notified when an input vertical blanking interrupt occurs on the given input channel...
Definition: ntv2card.h:2787
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
NTV2ColorCorrectionMode
Definition: ntv2enums.h:2084
NTV2QuarterSizeExpandMode
Definition: ntv2enums.h:2491
NTV2RegisterNumberSet NTV2RegNumSet
A set of distinct NTV2RegisterNumbers.
NTV2AudioChannelPair
Identifies a pair of audio channels.
Definition: ntv2enums.h:3136
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
NTV2MixerKeyerInputControl
These enum values identify the Mixer/Keyer foreground and background input control values...
Definition: ntv2enums.h:1781
std::vector< uint16_t > UWordSequence
An ordered sequence of UWord (uint16_t) values.
NTV2UpConvertMode
Definition: ntv2enums.h:2224
#define NTV2_DEPRECATED_16_2(__f__)
std::set< NTV2AudioSystem > NTV2AudioSystemSet
A set of distinct NTV2AudioSystem values. New in SDK 16.2.
NTV2HDMIProtocol
Indicates or specifies the HDMI protocol.
Definition: ntv2enums.h:3627
bool GetRegions(ULWordSequence &outFree, ULWordSequence &outUsed, ULWordSequence &outBad) const
Answers with the lists of free, in-use and conflicting 8MB memory blocks. Each ULWord represents a re...
Definition: ntv2card.cpp:1098
NTV2VPIDColorimetry
Definition: ntv2enums.h:4260
True if device can rasterize 4 HD signals into a single HDMI output.
virtual bool HasCanConnectROM(void)
Definition: ntv2card.h:4545
NTV2HDMIV2Mode
Definition: ntv2enums.h:4006
virtual bool IS_CHANNEL_VALID(const NTV2Channel inChannel) const
Definition: ntv2card.h:6911
NTV2DownConvertMode
Definition: ntv2enums.h:2247
CNTV2Card CNTV2Device
Instances of this class are able to interrogate and control an NTV2 AJA video/audio capture/playout d...
Definition: ntv2card.h:6980
uint64_t ULWord64
Definition: ajatypes.h:239
NTV2LUTPlaneSelect
Definition: ntv2enums.h:3889
#define NTV2_DEPRECATED_18_1(__f__)
uint8_t UByte
Definition: ajatypes.h:231
#define NTV2_DEPRECATED_17_6(__f__)
NTV2AudioLevel
Definition: ntv2enums.h:2318
virtual bool DeviceIsDNxIV(void)
Definition: ntv2card.h:165
#define NTV2_SHOULD_BE_DEPRECATED(__f__)
Definition: ntv2deprecate.h:77
virtual std::string GetDescription(void) const
NTV2Framesize
Kona2/Xena2 specific enums.
Definition: ntv2enums.h:2121
virtual bool GetLTCOnReference(bool &outVal)
Definition: ntv2card.h:5337
virtual bool Read3GInputStatus2Register(ULWord *pVal)
Definition: ntv2card.h:2522
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.).
virtual bool AuxSetFrameBufferSize(const ULWord inF1Size, const ULWord inF2Size)
Sets the capacity of the HDMI AUX buffers in device frame memory.
Definition: ntv2card.h:6216
virtual bool UnsubscribeOutputVerticalEvent(const NTV2Channel inChannel)
Unregisters me so I&#39;m no longer notified when an output VBI is signaled on the given output channel...
Definition: ntv2card.h:2819
NTV2Mode
Used to identify the mode of a widget_framestore, or the direction of an AutoCirculate stream: either...
Definition: ntv2enums.h:1243
Declares the MSWindows-specific flavor of CNTV2DriverInterface.
NTV2InputSource
Identifies a specific video input source.
Definition: ntv2enums.h:1266
NTV2HDMIColorimetry
Indicates or specifies the HDMI colorimetry.
Definition: ntv2enums.h:3655
const ULWord LUTTablePartitionSize
True if device has a crosspoint connection ROM (New in SDK 17.0)
This object specifies the information that will be transferred to or from the AJA device in the CNTV2...
bool TagVideoFrames(CNTV2Card &inDevice)
Definition: ntv2card.cpp:1222
#define NTV2_DEPRECATED_17_5(__f__)
NTV2FrameBufferQuality
Definition: ntv2enums.h:2502
virtual bool GetEveryFrameServices(NTV2TaskMode &m)
defined(NTV2_DEPRECATE_18_1)
Definition: ntv2card.h:1203
True if device can directly receive data from another PCIe device via peer-to-peer DMA...
CNTV2Card CNTV2VidProc
Definition: ntv2card.h:6984
#define AJAExport
Definition: export.h:33
NTV2VPIDTransferCharacteristics
Definition: ntv2enums.h:4252
NTV2FrameGeometry
Identifies a particular video frame geometry.
Definition: ntv2enums.h:352
NTV2_CSC_RGB_Range
Definition: ntv2enums.h:3765
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
This identifies the first Audio System.
Definition: ntv2enums.h:3903
#define AJA_RETAIL_DEFAULT
Definition: ntv2card.h:592
Declares numerous NTV2 utility functions.
virtual bool DMABufferLock(const ULWord *pInBuffer, const ULWord inByteCount, bool inMap=(0), bool inRDMA=(0))
Page-locks the given host buffer to reduce transfer time and CPU usage of DMA transfers.
Definition: ntv2card.h:471
bool TagAudioBuffers(CNTV2Card &inDevice, const bool inMarkStoppedAudioBuffersFree)
Definition: ntv2card.cpp:1204
Describes the horizontal and vertical size dimensions of a raster, bitmap, frame or image...
std::set< NTV2InputXptID > NTV2InputXptIDSet
A collection of distinct NTV2InputXptID values.
NTV2OutputCrosspointID
Identifies a widget output, a signal source, that potentially can drive another widget&#39;s input (ident...
Definition: ntv2enums.h:2532
NTV2InputCrosspointID
Identifies a widget input that potentially can accept a signal emitted from another widget&#39;s output (...
Definition: ntv2enums.h:2757
NTV2IsoConvertMode
Definition: ntv2enums.h:2258
#define NTV2_WILL_BE_DEPRECATED(__f__)
Definition: ntv2deprecate.h:80
This is returned from the CNTV2Card::AutoCirculateGetStatus function.
NTV2WidgetID
Definition: ntv2enums.h:2914
CNTV2Card CNTV2ColorCorrection
Definition: ntv2card.h:6985
NTV2EncodeAsPSF
Definition: ntv2enums.h:2517
uint16_t UWord
Definition: ajatypes.h:234
Specifies channel or FrameStore 1 (or the first item).
Definition: ntv2enums.h:1363
virtual bool UnsubscribeInputVerticalEvent(const NTV2Channel inChannel=NTV2_CHANNEL1)
Unregisters me so I&#39;m no longer notified when an input VBI is signaled on the given input channel...
Definition: ntv2card.h:2837
virtual bool WriteGlobalControl(const ULWord inVal)
Definition: ntv2card.h:2416
virtual bool SetLTCOnReference(bool val)
Definition: ntv2card.h:5336
NTV2VideoLimiting
These enum values identify the available SDI video output limiting modes.
Definition: ntv2enums.h:3784
virtual bool CanDoAudioWaitForVBI(void)
Definition: ntv2card.h:2219
Declares the CNTV2BareMetalDriverInterface class.
#define NTV2_DEPRECATED_18_0(__f__)
NTV2AncillaryDataRegion
These enumerations identify the various ancillary data regions located at the bottom of each frame bu...
Definition: ntv2enums.h:4233
NTV2VANCMode
These enum values identify the available VANC modes.
Definition: ntv2enums.h:3803
#define NTV2_DEPRECATED_16_3(__f__)
NTV2ColorSpaceMatrixType
Definition: ntv2enums.h:3464
NTV2DSKMode
Definition: ntv2enums.h:3505
NTV2RegisterWriteMode
These values are used to determine when certain register writes actually take effect. See CNTV2Card::SetRegisterWriteMode or Field/Frame Interrupts.
Definition: ntv2enums.h:1684
virtual bool GetRegisterWritemode(NTV2RegisterWriteMode &outVal, const NTV2Channel inChan=NTV2_CHANNEL1)
Definition: ntv2card.h:3004
virtual bool SetRegisterWritemode(NTV2RegisterWriteMode inVal, const NTV2Channel inChan=NTV2_CHANNEL1)
Definition: ntv2card.h:3003
mDevice DMABufferLock(mVideoBuffer,(!(0)))
True if device has HDMI AUX data extractor(s).
bool GetTagsForFrameIndex(const UWord inIndex, NTV2StringSet &outTags) const
Answers with the list of tags for the given frame number.
Definition: ntv2card.cpp:1162
virtual bool SetAudioOutputMonitorSource(const NTV2AudioMonitorSelect inChannelPair, const NTV2Channel inAudioSystem=NTV2_CHANNEL1)
Definition: ntv2card.h:6904
Declares the CNTV2LinuxDriverInterface class.
NTV2AudioSource
This enum value determines/states where an audio system will obtain its audio samples.
Definition: ntv2enums.h:2010
virtual bool Read3GInputStatusRegister(ULWord *pVal)
Definition: ntv2card.h:2521
virtual bool GetAudioOutputMonitorSource(NTV2AudioMonitorSelect &chp, NTV2Channel &ch)
Definition: ntv2card.h:6905
NTV2VANCDataShiftMode
Definition: ntv2enums.h:3819
std::pair< NTV2InputXptID, NTV2OutputXptID > NTV2XptConnection
enum NTV2InputCrosspointID NTV2InputXptID
Convenience class/API for inquiring about device capabilities of physical and virtual devices...
NTV2LSVideoADCMode
Definition: ntv2enums.h:2200
std::multimap< NTV2InputXptID, NTV2OutputXptID > NTV2PossibleConnections
A map of zero or more one-to-many possible NTV2InputXptID to NTV2OutputXptID connections.
This class/object reports information about the current and/or requested AutoCirculate frame...
virtual bool GetPCIDeviceID(ULWord &outPCIDeviceID)
Answers with my PCI device ID.
Definition: ntv2card.h:131
True if device audio systems can wait for VBI before starting. (New in SDK 17.0)
NTV2AudioRate
Definition: ntv2enums.h:1933
std::vector< uint32_t > ULWordSequence
An ordered sequence of ULWord (uint32_t) values.
std::set< NTV2InputXptID > NTV2InputCrosspointIDSet
bool TagMemoryBlock(const ULWord inStartAddr, const ULWord inByteLength, const std::string &inTag)
True if device has a microphone input connector.
std::string SerialNum64ToString(const uint64_t &inSerNum)
Definition: ntv2utils.cpp:7893
NTV2MixerRGBRange
Definition: ntv2enums.h:2279
NTV2ConversionMode
Definition: ntv2enums.h:3720
virtual bool SetLEDState(const ULWord inValue)
The four on-board LEDs can be set by writing 0-15.
Definition: ntv2card.h:2543
NTV2AudioMixerChannel
Definition: ntv2enums.h:3230
NTV2LUTControlSelect
Definition: ntv2enums.h:3882
std::set< NTV2DeviceID > NTV2DeviceIDSet
A set of NTV2DeviceIDs.
Definition: ntv2utils.h:1098
NTV2ConversionMode GetConversionMode(const NTV2VideoFormat inFormat, const NTV2VideoFormat outFormat)
Definition: ntv2utils.cpp:5479
CNTV2Card CNTV2TestPattern
Definition: ntv2card.h:6983
True if device has a firmware audio mixer.
CNTV2Card CNTV2ProcAmp
Definition: ntv2card.h:6986
INTERRUPT_ENUMS NTV2ChannelToOutputInterrupt(const NTV2Channel inChannel)
Converts the given NTV2Channel value into the equivalent output INTERRUPT_ENUMS value.
Definition: ntv2utils.cpp:4951
std::map< NTV2InputXptID, NTV2OutputXptID > NTV2XptConnections
This is used by the CNTV2Card::ReadSDIStatistics function.
std::ostream & DumpBlocks(std::ostream &oss) const
Dumps all 8MB blocks/frames and their tags, if any, into the given stream.
Definition: ntv2card.cpp:1073
NTV2Audio4ChannelSelect
Identifies a contiguous, adjacent group of four audio channels.
Definition: ntv2enums.h:3276
bool GetUsedRegions(ULWordSequence &outBlks) const
Answers with the list of used memory regions.
Definition: ntv2card.h:7094
ULWord GetIntrinsicFrameByteCount(void) const
Definition: ntv2card.h:7114
NTV2VPIDRGBRange
Definition: ntv2enums.h:4274
A Mac-specific implementation of CNTV2DriverInterface.
std::vector< NTV2RegInfo > NTV2RegisterWrites
NTV2Interrupt2Mask
Definition: ntv2enums.h:1605
NTV2_RS422_BAUD_RATE
These enum values identify RS-422 serial port baud rate configuration.
Definition: ntv2enums.h:4183
Identifies the 1st SDI video input.
Definition: ntv2enums.h:1273
std::vector< NTV2DeviceID > NTV2DeviceIDList
An ordered list of NTV2DeviceIDs.
Definition: ntv2utils.h:1091
virtual bool SetVANCMode(const NTV2VANCMode m, const NTV2Standard st, const NTV2FrameGeometry fg, const NTV2Channel ch=NTV2_CHANNEL1)
Definition: ntv2card.h:1221
NTV2HDMISampleStructure
Definition: ntv2enums.h:4193
Physical device implementations of CNTV2DriverInterface methods through AJA Windows driver...
std::set< NTV2OutputXptID > NTV2OutputXptIDSet
A collection of distinct NTV2OutputXptID values.
NTV2EmbeddedAudioInput
This enum value determines/states which SDI video input will be used to supply audio samples to an au...
Definition: ntv2enums.h:1972
Implements the MacOS-specific flavor of CNTV2DriverInterface.
NTV2HDMIBitDepth
Indicates or specifies the HDMI video bit depth.
Definition: ntv2enums.h:3698
NTV2StereoCompressorOutputMode
Definition: ntv2enums.h:3862
Linux implementation of CNTV2DriverInterface.
BareMetal implementation of CNTV2DriverInterface.
NTV2HDMIOut3DMode
This specifies the HDMI Out Stereo 3D Mode.
Definition: ntv2enums.h:3599
NTV2MixerKeyerMode
These enum values identify the mixer mode.
Definition: ntv2enums.h:1796
NTV2Audio8ChannelSelect
Identifies a contiguous, adjacent group of eight audio channels.
Definition: ntv2enums.h:3325
Declares the DeviceCapabilities class.
std::set< UByte > NTV2DIDSet
A set of distinct NTV2DID values.
NTV2LHIHDMIColorSpace
Definition: ntv2enums.h:3684
NTV2EncodedAudioMode
Definition: ntv2enums.h:1945
virtual bool WriteRegister(const ULWord inRegNum, const ULWord inValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Updates or replaces all or part of the 32-bit contents of a specific register (real or virtual) on th...
NTV2AudioMixerInput
Identifies the Audio Mixer&#39;s audio inputs.
Definition: ntv2enums.h:3259
virtual bool DeviceHasMicInput(void)
Definition: ntv2card.h:166
NTV2DieTempScale
Definition: ntv2enums.h:4216
NTV2ColorCorrectionHostAccessBank
Definition: ntv2enums.h:2063