AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
ntv2devicecapabilities.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2_DEVICECAPABILITIES_H
9 #define NTV2_DEVICECAPABILITIES_H
10 
11 #include "ntv2driverinterface.h"
12 
21 {
22  public:
23  explicit inline DeviceCapabilities (CNTV2DriverInterface & inDev) : dev(inDev) {}
24  inline operator bool() const {return dev.IsOpen();}
25  inline bool CanChangeEmbeddedAudioClock (void) {return dev.IsSupported(kDeviceCanChangeEmbeddedAudioClock);}
26  inline bool CanChangeFrameBufferSize (void) {return dev.IsSupported(kDeviceCanChangeFrameBufferSize);}
27  inline bool CanDisableUFC (void) {return dev.IsSupported(kDeviceCanDisableUFC);}
28  inline bool CanDo12gRouting (void) {return dev.IsSupported(kDeviceCanDo12gRouting);}
29  inline bool CanDo12GSDI (void) {return dev.IsSupported(kDeviceCanDo12GSDI);}
30  inline bool CanDo2110 (void) {return dev.IsSupported(kDeviceCanDo2110);}
31  inline bool CanDo2KVideo (void) {return dev.IsSupported(kDeviceCanDo2KVideo);}
32  inline bool CanDo3GLevelConversion (void) {return dev.IsSupported(kDeviceCanDo3GLevelConversion);}
33  inline bool CanDo425Mux (void) {return dev.IsSupported(kDeviceCanDo425Mux);}
34  inline bool CanDo4KVideo (void) {return dev.IsSupported(kDeviceCanDo4KVideo);}
35  inline bool CanDo8KVideo (void) {return dev.IsSupported(kDeviceCanDo8KVideo);}
36  inline bool CanDoAESAudioIn (void) {return dev.IsSupported(kDeviceCanDoAESAudioIn);}
37  inline bool CanDoAESAudioOut (void) {return dev.IsSupported(kDeviceCanDoAESAudioOut);}
38  inline bool CanDoAnalogAudio (void) {return dev.IsSupported(kDeviceCanDoAnalogAudio);}
39  inline bool CanDoAnalogVideoIn (void) {return dev.IsSupported(kDeviceCanDoAnalogVideoIn);}
40  inline bool CanDoAnalogVideoOut (void) {return dev.IsSupported(kDeviceCanDoAnalogVideoOut);}
41  inline bool CanDoAudio192K (void) {return dev.IsSupported(kDeviceCanDoAudio192K);}
42  inline bool CanDoAudio2Channels (void) {return dev.IsSupported(kDeviceCanDoAudio2Channels);}
43  inline bool CanDoAudio6Channels (void) {return dev.IsSupported(kDeviceCanDoAudio6Channels);}
44  inline bool CanDoAudio8Channels (void) {return dev.IsSupported(kDeviceCanDoAudio8Channels);}
45  inline bool CanDoAudio96K (void) {return dev.IsSupported(kDeviceCanDoAudio96K);}
46  inline bool CanDoAudioDelay (void) {return dev.IsSupported(kDeviceCanDoAudioDelay);}
47  inline bool CanDoAudioInput (void) {return dev.IsSupported(kDeviceCanDoAudioInput);}
48  inline bool CanDoAudioMixer (void) {return dev.IsSupported(kDeviceCanDoAudioMixer);}
49  inline bool CanDoAudioOutput (void) {return dev.IsSupported(kDeviceCanDoAudioOutput);}
50  inline bool CanDoAudioWaitForVBI (void) {return dev.IsSupported(kDeviceAudioCanWaitForVBI);}
51  inline bool CanDoBreakoutBoard (void) {return dev.IsSupported(kDeviceCanDoBreakoutBoard);}
52  inline bool CanDoBreakoutBox (void) {return dev.IsSupported(kDeviceCanDoBreakoutBox);}
53  inline bool CanDoCapture (void) {return dev.IsSupported(kDeviceCanDoCapture);}
54  inline bool CanDoColorCorrection (void) {return dev.IsSupported(kDeviceCanDoColorCorrection);}
55  inline bool CanDoCustomAnc (void) {return dev.IsSupported(kDeviceCanDoCustomAnc);}
56  inline bool CanDoCustomHancInsertion (void) {return dev.IsSupported(kDeviceCanDoCustomHancInsertion);}
57  inline bool CanDoDSKOpacity (void) {return dev.IsSupported(kDeviceCanDoDSKOpacity);}
58  inline bool CanDoDualLink (void) {return dev.IsSupported(kDeviceCanDoDualLink);}
59  inline bool CanDoDVCProHD (void) {return dev.IsSupported(kDeviceCanDoDVCProHD);}
60  inline bool CanDoEnhancedCSC (void) {return dev.IsSupported(kDeviceCanDoEnhancedCSC);}
61  inline bool CanDoFramePulseSelect (void) {return dev.IsSupported(kDeviceCanDoFramePulseSelect);}
62  inline bool CanDoFrameStore1Display (void) {return dev.IsSupported(kDeviceCanDoFrameStore1Display);}
63  inline bool CanDoGPIO (void) {return dev.IsSupported(kDeviceCanDoGPIO);}
64  inline bool CanDoHDMIAuxCapture (void) {return dev.IsSupported(kDeviceCanDoHDMIAuxCapture);}
65  inline bool CanDoHDMIAuxPlayback (void) {return dev.IsSupported(kDeviceCanDoHDMIAuxPlayback);}
66  inline bool CanDoHDMIHDROut (void) {return dev.IsSupported(kDeviceCanDoHDMIHDROut);}
67  inline bool CanDoHDMIMultiView (void) {return dev.IsSupported(kDeviceCanDoHDMIMultiView);}
68  inline bool CanDoHDMIOutStereo (void) {return dev.IsSupported(kDeviceCanDoHDMIOutStereo);}
69  inline bool CanDoHDMIQuadRasterConversion (void) {return dev.IsSupported(kDeviceCanDoHDMIQuadRasterConversion);}
70  inline bool CanDoHDV (void) {return dev.IsSupported(kDeviceCanDoHDV);}
71  inline bool CanDoHDVideo (void) {return dev.IsSupported(kDeviceCanDoHDVideo);}
72  inline bool CanDoHFRRGB (void) {return dev.IsSupported(kDeviceCanDoHFRRGB);}
73  inline bool CanDoIP (void) {return dev.IsSupported(kDeviceCanDoIP);}
74  inline bool CanDo25GIP (void) {return dev.IsSupported(kDeviceCanDo25GIP);}
75  inline bool CanDoIsoConvert (void) {return dev.IsSupported(kDeviceCanDoIsoConvert);}
76  inline bool CanDoJ2K (void) {return dev.IsSupported(kDeviceCanDoJ2K);}
77  inline bool CanDoLTC (void) {return dev.IsSupported(kDeviceCanDoLTC);}
78  inline bool CanDoLTCInOnRefPort (void) {return dev.IsSupported(kDeviceCanDoLTCInOnRefPort);}
79  inline bool CanDoMSI (void) {return dev.IsSupported(kDeviceCanDoMSI);}
80  inline bool CanDoMultiFormat (void) {return dev.IsSupported(kDeviceCanDoMultiFormat);}
81  inline bool CanDoMultiLinkAudio (void) {return dev.IsSupported(kDeviceCanDoMultiLinkAudio);}
82  inline bool CanDoPCMControl (void) {return dev.IsSupported(kDeviceCanDoPCMControl);}
83  inline bool CanDoPCMDetection (void) {return dev.IsSupported(kDeviceCanDoPCMDetection);}
84  inline bool CanDoPIO (void) {return dev.IsSupported(kDeviceCanDoPIO);}
85  inline bool CanDoPlayback (void) {return dev.IsSupported(kDeviceCanDoPlayback);}
86  inline bool CanDoProgrammableRS422 (void) {return dev.IsSupported(kDeviceCanDoProgrammableRS422);}
87  inline bool CanDoProRes (void) {return dev.IsSupported(kDeviceCanDoProRes);}
88  inline bool CanDoQREZ (void) {return dev.IsSupported(kDeviceCanDoQREZ);}
89  inline bool CanDoQuarterExpand (void) {return dev.IsSupported(kDeviceCanDoQuarterExpand);}
90  inline bool CanDoRateConvert (void) {return dev.IsSupported(kDeviceCanDoRateConvert);}
91  inline bool CanDoRGBLevelAConversion (void) {return dev.IsSupported(kDeviceCanDoRGBLevelAConversion);}
92  inline bool CanDoRGBPlusAlphaOut (void) {return dev.IsSupported(kDeviceCanDoRGBPlusAlphaOut);}
93  inline bool CanDoRP188 (void) {return dev.IsSupported(kDeviceCanDoRP188);}
94  inline bool CanDoSDIErrorChecks (void) {return dev.IsSupported(kDeviceCanDoSDIErrorChecks);}
95  inline bool CanDoSDVideo (void) {return dev.IsSupported(kDeviceCanDoSDVideo);}
96  inline bool CanDoStackedAudio (void) {return dev.IsSupported(kDeviceCanDoStackedAudio);}
97  inline bool CanDoStereoIn (void) {return dev.IsSupported(kDeviceCanDoStereoIn);}
98  inline bool CanDoStereoOut (void) {return dev.IsSupported(kDeviceCanDoStereoOut);}
99  inline bool CanDoStreamingDMA (void) {return dev.IsSupported(kDeviceCanDoStreamingDMA);}
100  inline bool CanDoThunderbolt (void) {return dev.IsSupported(kDeviceCanDoThunderbolt);}
101  inline bool CanDoVideoProcessing (void) {return dev.IsSupported(kDeviceCanDoVideoProcessing);}
102  inline bool CanDoVITC2 (void) {return dev.IsSupported(kDeviceCanDoVITC2);}
103  inline bool CanDoWarmBootFPGA (void) {return dev.IsSupported(kDeviceCanDoWarmBootFPGA);}
104  inline bool CanMeasureTemperature (void) {return dev.IsSupported(kDeviceCanMeasureTemperature);}
105  inline bool CanReportFailSafeLoaded (void) {return dev.IsSupported(kDeviceCanReportFailSafeLoaded);}
106  inline bool CanReportFrameSize (void) {return dev.IsSupported(kDeviceCanReportFrameSize);}
107  inline bool CanReportRunningFirmwareDate (void) {return dev.IsSupported(kDeviceCanReportRunningFirmwareDate);}
108  inline bool CanThermostat (void) {return dev.IsSupported(kDeviceCanThermostat);}
109  inline bool HasAudioMonitorRCAJacks (void) {return dev.IsSupported(kDeviceHasAudioMonitorRCAJacks);}
110  inline bool HasBiDirectionalAnalogAudio (void) {return dev.IsSupported(kDeviceHasBiDirectionalAnalogAudio);}
111  inline bool HasBiDirectionalSDI (void) {return dev.IsSupported(kDeviceHasBiDirectionalSDI);}
112  inline bool HasBracketLED (void) {return dev.IsSupported(kDeviceHasBracketLED);}
113  inline bool HasBreakoutBoard (void) {return dev.IsSupported(kDeviceHasBreakoutBoard);}
114  inline bool HasColorSpaceConverterOnChannel2 (void) {return dev.IsSupported(kDeviceHasColorSpaceConverterOnChannel2);}
115  inline bool HasCrosspointConnectROM (void) {return dev.IsSupported(kDeviceHasXptConnectROM);}
116  inline bool HasGenlockv2 (void) {return dev.IsSupported(kDeviceHasGenlockv2);}
117  inline bool HasGenlockv3 (void) {return dev.IsSupported(kDeviceHasGenlockv3);}
118  inline bool HasHeadphoneJack (void) {return dev.IsSupported(kDeviceHasHeadphoneJack);}
119  inline bool HasHEVCM30 (void) {return dev.IsSupported(kDeviceHasHEVCM30);}
120  inline bool HasHEVCM31 (void) {return dev.IsSupported(kDeviceHasHEVCM31);}
121  inline bool HasIDSwitch (void) {return dev.IsSupported(kDeviceHasIDSwitch);}
122  inline bool HasLEDAudioMeters (void) {return dev.IsSupported(kDeviceHasLEDAudioMeters);}
123  inline bool HasMicInput (void) {return dev.IsSupported(kDeviceHasMicrophoneInput);}
124  inline bool HasNTV4FrameStores (void) {return dev.IsSupported(kDeviceHasNTV4FrameStores);}
125  inline bool HasNWL (void) {return dev.IsSupported(kDeviceHasNWL);}
126  inline bool HasPCIeGen2 (void) {return dev.IsSupported(kDeviceHasPCIeGen2);}
127  inline bool HasPWMFanControl (void) {return dev.IsSupported(kDeviceHasPWMFanControl);}
128  inline bool HasRetailSupport (void) {return dev.IsSupported(kDeviceHasRetailSupport);}
129  inline bool HasRotaryEncoder (void) {return dev.IsSupported(kDeviceHasRotaryEncoder);}
130  inline bool HasSDIRelays (void) {return dev.IsSupported(kDeviceHasSDIRelays);}
131  inline bool HasSPIFlash (void) {return dev.IsSupported(kDeviceHasSPIFlash);}
132  inline bool HasSPIFlashSerial (void) {return dev.IsSupported(kDeviceHasSPIFlashSerial);}
133  inline bool HasSPIv2 (void) {return dev.IsSupported(kDeviceHasSPIv2);}
134  inline bool HasSPIv3 (void) {return dev.IsSupported(kDeviceHasSPIv3);}
135  inline bool HasSPIv4 (void) {return dev.IsSupported(kDeviceHasSPIv4);}
136  inline bool HasSPIv5 (void) {return dev.IsSupported(kDeviceHasSPIv5);}
137  inline bool HasXilinxDMA (void) {return dev.IsSupported(kDeviceHasXilinxDMA);}
138  inline bool Is64Bit (void) {return dev.IsSupported(kDeviceIs64Bit);}
139  inline bool IsDirectAddressable (void) {return dev.IsSupported(kDeviceIsDirectAddressable);}
140  inline bool IsDNxIV (void) {return dev.IsSupported(kDeviceHasMicrophoneInput);}
141  inline bool IsExternalToHost (void) {return dev.IsSupported(kDeviceIsExternalToHost);}
142  inline bool IsLocalPhysical (void) {return dev.IsSupported(kDeviceIsLocalPhysical);}
143  inline bool IsSupported (void) {return dev.IsSupported(kDeviceIsSupported);}
144  inline bool NeedsRoutingSetup (void) {return dev.IsSupported(kDeviceNeedsRoutingSetup);}
145  inline bool SoftwareCanChangeFrameBufferSize (void) {return dev.IsSupported(kDeviceSoftwareCanChangeFrameBufferSize);}
146  inline bool ROMHasBankSelect (void) {return dev.IsSupported(kDeviceROMHasBankSelect);}
147 
148  inline ULWord GetActiveMemorySize (void) {return dev.GetNumSupported(kDeviceGetActiveMemorySize);}
149  inline UWord GetDACVersion (void) {return UWord(dev.GetNumSupported(kDeviceGetDACVersion));}
150  inline UWord GetDownConverterDelay (void) {return UWord(dev.GetNumSupported(kDeviceGetDownConverterDelay));}
151  inline ULWord GetGenlockVersion (void) {return dev.GetNumSupported(kDeviceGetGenlockVersion);}
152  inline ULWord GetHDMIVersion (void) {return dev.GetNumSupported(kDeviceGetHDMIVersion);}
153  inline ULWord GetLUTVersion (void) {return dev.GetNumSupported(kDeviceGetLUTVersion);}
154  inline ULWord GetSPIFlashVersion (void) {return dev.GetNumSupported(kDeviceGetSPIFlashVersion);}
155  inline UWord GetMaxAudioChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetMaxAudioChannels));}
156  inline ULWord GetMaxRegisterNumber (void) {return dev.GetNumSupported(kDeviceGetMaxRegisterNumber);}
157  inline ULWord GetMaxTransferCount (void) {return dev.GetNumSupported(kDeviceGetMaxTransferCount);}
158  inline UWord GetNum2022ChannelsSFP1 (void) {return UWord(dev.GetNumSupported(kDeviceGetNum2022ChannelsSFP1));}
159  inline UWord GetNum2022ChannelsSFP2 (void) {return UWord(dev.GetNumSupported(kDeviceGetNum2022ChannelsSFP2));}
160  inline UWord GetNum4kQuarterSizeConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNum4kQuarterSizeConverters));}
161  inline UWord GetNumAESAudioInputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAESAudioInputChannels));}
162  inline UWord GetNumAESAudioOutputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAESAudioOutputChannels));}
165  inline UWord GetNumAnalogVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAnalogVideoInputs));}
166  inline UWord GetNumAnalogVideoOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAnalogVideoOutputs));}
167  inline UWord GetNumAudioSystems (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAudioSystems));}
168  inline UWord GetNumCrossConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumCrossConverters));}
169  inline UWord GetNumCSCs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumCSCs));}
170  inline ULWord GetNumDMAEngines (void) {return dev.GetNumSupported(kDeviceGetNumDMAEngines);}
171  inline UWord GetNumDownConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumDownConverters));}
174  inline UWord GetNumFrameStores (void) {return UWord(dev.GetNumSupported(kDeviceGetNumFrameStores));}
175  inline UWord GetNumFrameSyncs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumFrameSyncs));}
176  inline UWord GetNumHDMIAudioInputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIAudioInputChannels));}
177  inline UWord GetNumHDMIAudioOutputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIAudioOutputChannels));}
178  inline UWord GetNumHDMIVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIVideoInputs));}
179  inline UWord GetNumHDMIVideoOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIVideoOutputs));}
180  inline UWord GetNumInputConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumInputConverters));}
181  inline UWord GetNumLTCInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLTCInputs));}
182  inline UWord GetNumLTCOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLTCOutputs));}
183  inline UWord GetNumLUTBanks (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLUTBanks));}
184  inline UWord GetNumLUTs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLUTs));}
185  inline UWord GetNumMicInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumMicInputs));}
186  inline UWord GetNumMixers (void) {return UWord(dev.GetNumSupported(kDeviceGetNumMixers));}
187  inline UWord GetNumOutputConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumOutputConverters));}
188  inline UWord GetNumReferenceVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumReferenceVideoInputs));}
189  inline UWord GetNumSerialPorts (void) {return UWord(dev.GetNumSupported(kDeviceGetNumSerialPorts));}
190  inline UWord GetNumTSIMuxers (void) {return UWord(dev.GetNumSupported(kDeviceGetNumTSIMuxers));}
191  inline UWord GetNumUpConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumUpConverters));}
192  inline ULWord GetNumVideoChannels (void) {return dev.GetNumSupported(kDeviceGetNumVideoChannels);}
193  inline UWord GetNumVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumVideoInputs));}
194  inline UWord GetNumVideoOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumVideoOutputs));}
195  inline ULWord GetPingLED (void) {return dev.GetNumSupported(kDeviceGetPingLED);}
196  inline UWord GetTotalNumAudioSystems (void) {return UWord(dev.GetNumSupported(kDeviceGetTotalNumAudioSystems));}
197  inline UWord GetNumBufferedAudioSystems (void) {return UWord(dev.GetNumSupported(kDeviceGetNumBufferedAudioSystems));}
198  inline ULWord GetUFCVersion (void) {return dev.GetNumSupported(kDeviceGetUFCVersion);}
199 
204  inline bool CanDoChannel (const NTV2Channel inChannel)
205  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_Channel));
206  return itms.find(ULWord(inChannel)) != itms.end();
207  }
208 
213  inline bool CanDoConversionMode (const NTV2ConversionMode inMode)
214  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_ConversionMode));
215  return itms.find(ULWord(inMode)) != itms.end();
216  }
217 
222  inline bool CanDoDSKMode (const NTV2DSKMode inMode)
223  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_DSKMode));
224  return itms.find(ULWord(inMode)) != itms.end();
225  }
226 
231  inline bool CanDoFrameBufferFormat (const NTV2PixelFormat inPF)
232  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_PixelFormat));
233  return itms.find(ULWord(inPF)) != itms.end();
234  }
235  inline bool CanDoPixelFormat (const NTV2PixelFormat inPF) {return CanDoFrameBufferFormat(inPF);}
236 
241  inline bool CanDoInputSource (const NTV2InputSource inSrc)
242  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_InputSource));
243  return itms.find(ULWord(inSrc)) != itms.end();
244  }
245 
251  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_OutputDest));
252  return itms.find(ULWord(inDest)) != itms.end();
253  }
254 
259  inline bool CanDoVideoFormat (const NTV2VideoFormat inVF)
260  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_VideoFormat));
261  return itms.find(ULWord(inVF)) != itms.end();
262  }
263 
268  inline bool CanDoWidget (const NTV2WidgetID inWgtID)
269  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_WidgetID));
270  return itms.find(ULWord(inWgtID)) != itms.end();
271  }
272 
278  bool CanDoWidget (const NTV2WidgetType inWgtType, const UWord index0);
279 
284  { NTV2PixelFormats result;
285  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_PixelFormat));
286  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
287  result.insert(NTV2PixelFormat(*it));
288  return result;
289  }
290 
295  { NTV2VideoFormatSet result;
296  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_VideoFormat));
297  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
298  result.insert(NTV2VideoFormat(*it));
299  return result;
300  }
301 
306  { NTV2TCIndexes result;
307  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_InputTCIndex));
308  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
309  result.insert(NTV2TCIndex(*it));
310  return result;
311  }
312 
317  { NTV2TCIndexes result;
318  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_OutputTCIndex));
319  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
320  result.insert(NTV2TCIndex(*it));
321  return result;
322  }
323 
327  inline NTV2AudioRateSet AudioSampleRates (void) // New in SDK 18.0
328  { NTV2AudioRateSet result;
329  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_AudioRate));
330  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
331  result.insert(NTV2AudioRate(*it));
332  return result;
333  }
334 
339  inline bool CanDoInputTCIndex (const NTV2TCIndex inTCNdx)
340  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_InputTCIndex));
341  return itms.find(ULWord(inTCNdx)) != itms.end();
342  }
343 
348  inline bool CanDoOutputTCIndex (const NTV2TCIndex inTCNdx)
349  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_OutputTCIndex));
350  return itms.find(ULWord(inTCNdx)) != itms.end();
351  }
352 
357  inline bool CanDoAudioSampleRate (const NTV2AudioRate inRate) // New in SDK 18.0
358  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_AudioRate));
359  return itms.find(ULWord(inRate)) != itms.end();
360  }
361  private:
362  CNTV2DriverInterface & dev;
363 }; // DeviceCapabilities
364 
365 #endif // NTV2_DEVICECAPABILITIES_H
std::set< NTV2VideoFormat > NTV2VideoFormatSet
A set of distinct NTV2VideoFormat values.
The number of cross-converters on the device.
The number of input converter widgets on the device.
The number of TSI muxers on the device. (New in SDK 17.0)
True if device can handle 2Kx1556 (film) video.
True if device supports 3D video output over dual-stream SDI.
The version number of the device&#39;s genlock hardware/firmware. (New in SDK 17.6)
The number of SDI-embedded input audio channels supported by the device.
std::set< NTV2TCIndex > NTV2TCIndexes
True if device DMA hardware supports MSI (Message Signaled Interrupts).
True if device has version 3 genlock hardware and/or firmware. (Deprecate – use kDeviceGetGenlockVer...
True if device has SPI flash hardware.
True if audio system(s) support 2 or more audio channels.
The number of analog video outputs on the device.
bool CanChangeEmbeddedAudioClock(void)
True if device can do ISO conversion.
True if device has enhanced CSCs.
UWord GetNumEmbeddedAudioOutputChannels(void)
Declares the CNTV2DriverInterface base class.
The number of external reference video inputs on the device.
True if the device supports SMPTE 425 mux control.
bool CanDoPixelFormat(const NTV2PixelFormat inPF)
Same as DeviceCapabilities::CanDoFrameBufferFormat.
The number of video channels supported on the device.
The number of mixer/keyer widgets on the device.
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
Definition: ntv2enums.h:219
True if device can squeeze/stretch between 1920x1080/1280x1080 and 1280x720/960x720.
True if device can do 3G level B to 3G level A conversion.
True if device supports an AJA breakout box.
The number of analog LTC outputs on the device.
The number of AES/EBU audio output channels on the device.
NTV2OutputDestination
Identifies a specific video output destination.
Definition: ntv2enums.h:1324
True if HDMI in/out supports square-division (quad) raster conversion. (New in SDK 17...
True if device can warm-boot to load updated firmware.
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
True if device can display/output video from FrameStore 1.
The number of independent Audio Systems on the device.
Identifies the NTV2AudioRate enumerated type.
True if device has version 2 genlock hardware and/or firmware. (Deprecate – use kDeviceGetGenlockVer...
Identifies the NTV2OutputDest enumerated type.
Identifies the NTV2DSKMode enumerated type.
True if device can report if its "fail-safe" firmware is loaded/running.
True if device connects to the host with a cable.
True if device can detect which audio channel pairs are not carrying PCM (Pulse Code Modulation) audi...
True if device has an HEVC M31 encoder.
True if device has LED audio meters.
The version number of the LUT(s) on the device.
Identifies the NTV2VideoFormat enumerated type.
True if device has SFP connectors.
Identifies the NTV2Channel enumerated type.
True if device widget routing can be queried or changed.
True if device can do video processing.
NTV2FrameBufferFormatSet NTV2PixelFormats
Identifies the NTV2InputSource enumerated type.
bool CanDoHDMIQuadRasterConversion(void)
True if the device can do RGB over 3G Level A.
The maximum number of 32-bit words that the DMA engine can move at a time on the device.
True if device can handle QRez.
uint32_t ULWord
Definition: ajatypes.h:223
The number of DMA engines on the device.
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They&#39;re also commonly use...
Definition: ntv2enums.h:1357
True if Audio System(s) support an adjustable delay.
True if device supports an AJA breakout board. (New in SDK 17.0)
bool CanDoInputSource(const NTV2InputSource inSrc)
NTV2WidgetType
Definition: ntv2enums.h:3047
True if device supports grouped audio system control.
bool CanReportRunningFirmwareDate(void)
The number of SDI video outputs on the device.
True if device supports streaming DMA. (New in SDK 17.1)
ULWordSet::const_iterator ULWordSetConstIter
True if device has any audio output capability (SDI, HDMI or analog) (New in SDK 17.1)
The total number of audio systems on the device, including host audio and mixer audio systems...
True if device is 64-bit addressable.
True if device can read LTC (Linear TimeCode) from its reference input.
NTV2TCIndex
These enum values are indexes into the capture/playout AutoCirculate timecode arrays.
Definition: ntv2enums.h:3951
True if device can mark specific audio channel pairs as not carrying PCM (Pulse Code Modulation) audi...
True if device SDI connectors are bi-directional.
I&#39;m the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
True if device has CSCs capable of splitting the key (alpha) and YCbCr (fill) from RGB frame buffers ...
The version number of the UFC on the device.
True if device supports 3D video input over dual-stream SDI.
True if device supports Programmed I/O.
True if device SPIFlash ROM is bank-selected. (New in SDK 17.1)
UWord GetNumHDMIAudioInputChannels(void)
The highest register number for the device.
Use kDeviceGetSPIVersion instead.
The highest bit number of the LED bits in the Global Control Register on the device.
bool CanDoOutputDestination(const NTV2OutputDestination inDest)
The number of FrameStores on the device.
True if device can handle quarter-sized frames (pixel-halving and line-halving during input...
True if device has bypass relays on its SDI connectors.
True if device can squeeze/stretch between 1920x1080 and 1440x1080.
True if device supports JPEG 2000 codec.
True if device has attached breakout board. (New in SDK 17.0)
True if device has LED(s) on the card bracket. (New in SDK 18.0)
True if device has any SDI, HDMI or analog video outputs.
The number of up-converters on the device.
True if device has any audio input capability (SDI, HDMI or analog) (New in SDK 17.1)
True if device has a headphone jack.
UWord GetNum4kQuarterSizeConverters(void)
True if device has 25Gbps SFPs. (New in SDK 18.0)
True if device has at least one RS-422 serial port, and it (they) can be programmed (for baud rate...
True if device has a pair of unbalanced RCA audio monitor output connectors.
True if device uses a "stacked" arrangement of its audio buffers.
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
bool CanDoAudioSampleRate(const NTV2AudioRate inRate)
bool CanDoOutputTCIndex(const NTV2TCIndex inTCNdx)
NTV2TCIndexes OutputTCIndexes(void)
True if device has 12G SDI connectors.
True if device is supported by AJA "retail" software (AJA ControlPanel & ControlRoom).
The maximum number of audio channels that a single Audio System can support on the device...
True if device can rasterize 4 HD signals into a single HDMI output.
True if device supports 2nd-generation PCIe.
True if audio system(s) support 6 or more audio channels.
True if device is local-host-attached, and not remote, software or virtual (new in SDK 17...
std::set< NTV2AudioRate > NTV2AudioRateSet
A set of distinct NTV2AudioRate values. New in SDK 18.0.
True if device has GPIO interface. (New in SDK 18.0)
True if frame buffer sizes are not fixed.
bool SoftwareCanChangeFrameBufferSize(void)
The number of quarter-size 4K/UHD down-converters on the device.
Identifies the NTV2TCIndex enumerated type for output.
True if device is direct addressable.
True if device has any SDI, HDMI or analog video inputs.
True if device has serial SPI flash hardware.
True if device can report its frame size.
UWord GetNumAESAudioInputChannels(void)
The number of LUT banks on the device. (New in SDK 17.0)
True if device has any AES audio output channels (New in SDK 17.1)
The number of HDMI video outputs on the device.
Use kDeviceGetSPIVersion instead.
The number of SDI-embedded output audio channels supported by the device.
The number of frame sync widgets on the device.
Use kDeviceGetSPIVersion instead.
True if device can handle SD (Standard Definition) video.
NTV2InputSource
Identifies a specific video input source.
Definition: ntv2enums.h:1262
True if device mixer/keyer supports adjustable opacity.
True if device has a crosspoint connection ROM (New in SDK 17.0)
True if device supports 10-bit RGB input/output over 2-wire SDI.
True if device frame buffer size can be changed.
The number of analog audio output channels on the device.
True if Audio System(s) support a 192kHz sample rate.
Use kDeviceGetSPIVersion instead.
True if device has one or more analog video outputs.
#define AJAExport
Definition: export.h:33
The number of analog LTC inputs on the device.
bool CanDoChannel(const NTV2Channel inChannel)
The number of analog video inputs on the device.
The total number of audio systems on the device that can read/write audio buffer memory. Includes host audio system, if present. (New in SDK 17.0)
True if device supports 1080p RGB at more than 50Hz frame rates.
UWord GetNumEmbeddedAudioInputChannels(void)
True if device supports 12G routing crosspoints.
The version number of the DAC on the device.
bool CanDoInputTCIndex(const NTV2TCIndex inTCNdx)
True if device supports SMPTE ST2110.
True if device can perform SDI error checking.
The number of output converter widgets on the device.
True if device has any analog inputs or outputs.
True if the device can handle 4K/UHD video.
The number of RS-422 serial ports on the device.
True if device has SDI ANC inserter/extractor firmware.
NTV2AudioRateSet AudioSampleRates(void)
NTV2WidgetID
Definition: ntv2enums.h:2909
bool HasBiDirectionalAnalogAudio(void)
uint16_t UWord
Definition: ajatypes.h:221
NTV2VideoFormatSet VideoFormats(void)
bool HasColorSpaceConverterOnChannel2(void)
True if device supports HDMI HDR output.
True if device can measure its FPGA die temperature.
True if there&#39;s at least one UFC, and it can be disabled.
bool CanDoDSKMode(const NTV2DSKMode inMode)
True if device can report its running (and not necessarily installed) firmware date.
UWord GetNumHDMIAudioOutputChannels(void)
Calculate based on if NTV2_WgtCSC2 is present.
bool CanDoFrameBufferFormat(const NTV2PixelFormat inPF)
True if device is supported by this SDK.
The number of microphone inputs on the device.
The number of HDMI audio input channels on the device.
True if device supports frame pulse source independent of reference source.
UWord GetNumAnalogVideoOutputs(void)
bool CanDoWidget(const NTV2WidgetID inWgtID)
DeviceCapabilities(CNTV2DriverInterface &inDev)
NTV2DSKMode
Definition: ntv2enums.h:3499
The number of 2022 channels configured on SFP 2 on the device.
True if device has any LUTs.
True if device has HDMI AUX data extractor(s).
True if device can read LTC (Linear TimeCode) from one of its inputs.
The SPI-flash version on the device. (New in SDK 17.1)
True if device supports 3D/stereo HDMI video output.
The down-converter delay on the device.
True if device has a PWM-controlled cooling fan. (New in SDK 17.1)
NTV2TCIndexes InputTCIndexes(void)
Convenience class/API for inquiring about device capabilities of physical and virtual devices...
True if device has NorthWest Logic DMA hardware.
The version number of the HDMI chipset on the device.
True if device audio systems can wait for VBI before starting. (New in SDK 17.0)
NTV2AudioRate
Definition: ntv2enums.h:1928
The number of LUT widgets on the device.
The number of analog audio input channels on the device.
True if audio system(s) support 8 or more audio channels.
True if device has a microphone input connector.
True if device can insert or extract RP-188/VITC2.
NTV2ConversionMode
Definition: ntv2enums.h:3714
True if device has an HEVC M30 encoder/decoder.
True if device has a firmware audio mixer.
Identifies the NTV2PixelFormat enumerated type.
Identifies the NTV2TCIndex enumerated type for input.
UWord GetNumReferenceVideoInputs(void)
bool CanDoVideoFormat(const NTV2VideoFormat inVF)
Identifies the NTV2ConversionMode enumerated type.
True if device connects to the host using a Thunderbolt cable.
True if device has a bi-directional analog audio connector.
bool CanDoConversionMode(const NTV2ConversionMode inMode)
The number of 2022 channels configured on SFP 1 on the device.
UWord GetNumAnalogAudioOutputChannels(void)
True if device has a rotary encoder volume control.
UWord GetNumBufferedAudioSystems(void)
The number of colorspace converter widgets on the device.
Identifies the NTV2AudioWidgetID enumerated type.
UWord GetNumAESAudioOutputChannels(void)
True if device supports custom HANC packet insertion. (New in SDK 17.1)
True if device can insert and/or extract RP-188/VITC.
True if device supports 8K video formats.
NTV2PixelFormats PixelFormats(void)
True if device has NTV4 FrameStores. (New in SDK 17.0)
UWord GetNumAnalogAudioInputChannels(void)
The number of HDMI audio output channels on the device.
The number of SDI video inputs on the device.
True if device fan can be thermostatically controlled.
True if device can can accommodate Apple ProRes-compressed video in its frame buffers.
True if device can handle HD (High Definition) video.
True if device has HDMI AUX data inserter(s).
The size, in bytes, of the device&#39;s active RAM available for video and audio.
The number of AES/EBU audio input channels on the device.
True if device has Xilinx DMA hardware.
The number of down-converters on the device.
True if Audio System(s) support a 96kHz sample rate.
True if device has any AES audio inputs or outputs.
True if device has one or more analog video inputs.
True if device can do frame rate conversion.
True if device has a mechanical identification switch. (New in SDK 17.1)
The number of HDMI video inputs on the device.
True if device can simultaneously handle different video formats on more than one SDI input or output...