AJA NTV2 SDK  18.1.0.2145
NTV2 SDK 18.1.0.2145
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 CanReportMixerDelay (void) {return dev.IsSupported(kDeviceCanReportMixerDelay);}
108  inline bool CanReportRunningFirmwareDate (void) {return dev.IsSupported(kDeviceCanReportRunningFirmwareDate);}
109  inline bool CanThermostat (void) {return dev.IsSupported(kDeviceCanThermostat);}
110  inline bool HasAudioMonitorRCAJacks (void) {return dev.IsSupported(kDeviceHasAudioMonitorRCAJacks);}
111  inline bool HasBiDirectionalAnalogAudio (void) {return dev.IsSupported(kDeviceHasBiDirectionalAnalogAudio);}
112  inline bool HasBiDirectionalSDI (void) {return dev.IsSupported(kDeviceHasBiDirectionalSDI);}
113  inline bool HasBracketLED (void) {return dev.IsSupported(kDeviceHasBracketLED);}
114  inline bool HasBreakoutBoard (void) {return dev.IsSupported(kDeviceHasBreakoutBoard);}
115  inline bool HasColorSpaceConverterOnChannel2 (void) {return dev.IsSupported(kDeviceHasColorSpaceConverterOnChannel2);}
116  inline bool HasCrosspointConnectROM (void) {return dev.IsSupported(kDeviceHasXptConnectROM);}
117  inline bool HasGenlockv2 (void) {return dev.IsSupported(kDeviceHasGenlockv2);}
118  inline bool HasGenlockv3 (void) {return dev.IsSupported(kDeviceHasGenlockv3);}
119  inline bool HasHeadphoneJack (void) {return dev.IsSupported(kDeviceHasHeadphoneJack);}
120  inline bool HasHEVCM30 (void) {return dev.IsSupported(kDeviceHasHEVCM30);}
121  inline bool HasHEVCM31 (void) {return dev.IsSupported(kDeviceHasHEVCM31);}
122  inline bool HasIDSwitch (void) {return dev.IsSupported(kDeviceHasIDSwitch);}
123  inline bool HasLEDAudioMeters (void) {return dev.IsSupported(kDeviceHasLEDAudioMeters);}
124  inline bool HasMicInput (void) {return dev.IsSupported(kDeviceHasMicrophoneInput);}
125  inline bool HasNTV4FrameStores (void) {return dev.IsSupported(kDeviceHasNTV4FrameStores);}
126  inline bool HasNWL (void) {return dev.IsSupported(kDeviceHasNWL);}
127  inline bool HasPCIeGen2 (void) {return dev.IsSupported(kDeviceHasPCIeGen2);}
128  inline bool HasPWMFanControl (void) {return dev.IsSupported(kDeviceHasPWMFanControl);}
129  inline bool HasRetailSupport (void) {return dev.IsSupported(kDeviceHasRetailSupport);}
130  inline bool HasRotaryEncoder (void) {return dev.IsSupported(kDeviceHasRotaryEncoder);}
131  inline bool HasSDIRelays (void) {return dev.IsSupported(kDeviceHasSDIRelays);}
132  inline bool HasSPIFlash (void) {return dev.IsSupported(kDeviceHasSPIFlash);}
133  inline bool HasSPIFlashSerial (void) {return dev.IsSupported(kDeviceHasSPIFlashSerial);}
134  inline bool HasSPIv2 (void) {return dev.IsSupported(kDeviceHasSPIv2);}
135  inline bool HasSPIv3 (void) {return dev.IsSupported(kDeviceHasSPIv3);}
136  inline bool HasSPIv4 (void) {return dev.IsSupported(kDeviceHasSPIv4);}
137  inline bool HasSPIv5 (void) {return dev.IsSupported(kDeviceHasSPIv5);}
138  inline bool HasXilinxDMA (void) {return dev.IsSupported(kDeviceHasXilinxDMA);}
139  inline bool Is64Bit (void) {return dev.IsSupported(kDeviceIs64Bit);}
140  inline bool IsDirectAddressable (void) {return dev.IsSupported(kDeviceIsDirectAddressable);}
141  inline bool IsDNxIV (void) {return dev.IsSupported(kDeviceHasMicrophoneInput);}
142  inline bool IsExternalToHost (void) {return dev.IsSupported(kDeviceIsExternalToHost);}
143  inline bool IsLocalPhysical (void) {return dev.IsSupported(kDeviceIsLocalPhysical);}
144  inline bool IsSupported (void) {return dev.IsSupported(kDeviceIsSupported);}
145  inline bool NeedsRoutingSetup (void) {return dev.IsSupported(kDeviceNeedsRoutingSetup);}
146  inline bool SoftwareCanChangeFrameBufferSize (void) {return dev.IsSupported(kDeviceSoftwareCanChangeFrameBufferSize);}
147  inline bool ROMHasBankSelect (void) {return dev.IsSupported(kDeviceROMHasBankSelect);}
148 
149  inline ULWord GetActiveMemorySize (void) {return dev.GetNumSupported(kDeviceGetActiveMemorySize);}
150  inline UWord GetDACVersion (void) {return UWord(dev.GetNumSupported(kDeviceGetDACVersion));}
151  inline UWord GetDownConverterDelay (void) {return UWord(dev.GetNumSupported(kDeviceGetDownConverterDelay));}
152  inline ULWord GetGenlockVersion (void) {return dev.GetNumSupported(kDeviceGetGenlockVersion);}
153  inline ULWord GetHDMIVersion (void) {return dev.GetNumSupported(kDeviceGetHDMIVersion);}
154  inline ULWord GetLUTVersion (void) {return dev.GetNumSupported(kDeviceGetLUTVersion);}
155  inline ULWord GetSPIFlashVersion (void) {return dev.GetNumSupported(kDeviceGetSPIFlashVersion);}
156  inline UWord GetMaxAudioChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetMaxAudioChannels));}
157  inline ULWord GetMaxRegisterNumber (void) {return dev.GetNumSupported(kDeviceGetMaxRegisterNumber);}
158  inline ULWord GetMaxTransferCount (void) {return dev.GetNumSupported(kDeviceGetMaxTransferCount);}
159  inline UWord GetNum2022ChannelsSFP1 (void) {return UWord(dev.GetNumSupported(kDeviceGetNum2022ChannelsSFP1));}
160  inline UWord GetNum2022ChannelsSFP2 (void) {return UWord(dev.GetNumSupported(kDeviceGetNum2022ChannelsSFP2));}
161  inline UWord GetNum4kQuarterSizeConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNum4kQuarterSizeConverters));}
162  inline UWord GetNumAESAudioInputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAESAudioInputChannels));}
163  inline UWord GetNumAESAudioOutputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAESAudioOutputChannels));}
166  inline UWord GetNumAnalogVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAnalogVideoInputs));}
167  inline UWord GetNumAnalogVideoOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAnalogVideoOutputs));}
168  inline UWord GetNumAudioSystems (void) {return UWord(dev.GetNumSupported(kDeviceGetNumAudioSystems));}
169  inline UWord GetNumCrossConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumCrossConverters));}
170  inline UWord GetNumCSCs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumCSCs));}
171  inline ULWord GetNumDMAEngines (void) {return dev.GetNumSupported(kDeviceGetNumDMAEngines);}
172  inline UWord GetNumDownConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumDownConverters));}
175  inline UWord GetNumFrameStores (void) {return UWord(dev.GetNumSupported(kDeviceGetNumFrameStores));}
176  inline UWord GetNumFrameSyncs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumFrameSyncs));}
177  inline UWord GetNumHDMIAudioInputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIAudioInputChannels));}
178  inline UWord GetNumHDMIAudioOutputChannels (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIAudioOutputChannels));}
179  inline UWord GetNumHDMIVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIVideoInputs));}
180  inline UWord GetNumHDMIVideoOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumHDMIVideoOutputs));}
181  inline UWord GetNumInputConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumInputConverters));}
182  inline UWord GetNumLTCInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLTCInputs));}
183  inline UWord GetNumLTCOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLTCOutputs));}
184  inline UWord GetNumLUTBanks (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLUTBanks));}
185  inline UWord GetNumLUTs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumLUTs));}
186  inline UWord GetNumMicInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumMicInputs));}
187  inline UWord GetNumMixers (void) {return UWord(dev.GetNumSupported(kDeviceGetNumMixers));}
188  inline UWord GetNumOutputConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumOutputConverters));}
189  inline UWord GetNumReferenceVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumReferenceVideoInputs));}
190  inline UWord GetNumSerialPorts (void) {return UWord(dev.GetNumSupported(kDeviceGetNumSerialPorts));}
191  inline UWord GetNumTSIMuxers (void) {return UWord(dev.GetNumSupported(kDeviceGetNumTSIMuxers));}
192  inline UWord GetNumUpConverters (void) {return UWord(dev.GetNumSupported(kDeviceGetNumUpConverters));}
193  inline ULWord GetNumVideoChannels (void) {return dev.GetNumSupported(kDeviceGetNumVideoChannels);}
194  inline UWord GetNumVideoInputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumVideoInputs));}
195  inline UWord GetNumVideoOutputs (void) {return UWord(dev.GetNumSupported(kDeviceGetNumVideoOutputs));}
196  inline ULWord GetPingLED (void) {return dev.GetNumSupported(kDeviceGetPingLED);}
197  inline UWord GetTotalNumAudioSystems (void) {return UWord(dev.GetNumSupported(kDeviceGetTotalNumAudioSystems));}
198  inline UWord GetNumBufferedAudioSystems (void) {return UWord(dev.GetNumSupported(kDeviceGetNumBufferedAudioSystems));}
199  inline ULWord GetUFCVersion (void) {return dev.GetNumSupported(kDeviceGetUFCVersion);}
200 
205  inline bool CanDoChannel (const NTV2Channel inChannel)
206  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_Channel));
207  return itms.find(ULWord(inChannel)) != itms.end();
208  }
209 
214  inline bool CanDoConversionMode (const NTV2ConversionMode inMode)
215  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_ConversionMode));
216  return itms.find(ULWord(inMode)) != itms.end();
217  }
218 
223  inline bool CanDoDSKMode (const NTV2DSKMode inMode)
224  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_DSKMode));
225  return itms.find(ULWord(inMode)) != itms.end();
226  }
227 
232  inline bool CanDoFrameBufferFormat (const NTV2PixelFormat inPF)
233  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_PixelFormat));
234  return itms.find(ULWord(inPF)) != itms.end();
235  }
236  inline bool CanDoPixelFormat (const NTV2PixelFormat inPF) {return CanDoFrameBufferFormat(inPF);}
237 
242  inline bool CanDoInputSource (const NTV2InputSource inSrc)
243  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_InputSource));
244  return itms.find(ULWord(inSrc)) != itms.end();
245  }
246 
252  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_OutputDest));
253  return itms.find(ULWord(inDest)) != itms.end();
254  }
255 
260  inline bool CanDoVideoFormat (const NTV2VideoFormat inVF)
261  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_VideoFormat));
262  return itms.find(ULWord(inVF)) != itms.end();
263  }
264 
269  inline bool CanDoWidget (const NTV2WidgetID inWgtID)
270  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_WidgetID));
271  return itms.find(ULWord(inWgtID)) != itms.end();
272  }
273 
279  bool CanDoWidget (const NTV2WidgetType inWgtType, const UWord index0);
280 
285  { NTV2PixelFormats result;
286  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_PixelFormat));
287  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
288  result.insert(NTV2PixelFormat(*it));
289  return result;
290  }
291 
296  { NTV2VideoFormatSet result;
297  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_VideoFormat));
298  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
299  result.insert(NTV2VideoFormat(*it));
300  return result;
301  }
302 
307  { NTV2TCIndexes result;
308  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_InputTCIndex));
309  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
310  result.insert(NTV2TCIndex(*it));
311  return result;
312  }
313 
318  { NTV2TCIndexes result;
319  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_OutputTCIndex));
320  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
321  result.insert(NTV2TCIndex(*it));
322  return result;
323  }
324 
328  inline NTV2AudioRateSet AudioSampleRates (void) // New in SDK 18.0
329  { NTV2AudioRateSet result;
330  const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_AudioRate));
331  for (ULWordSetConstIter it(itms.begin()); it != itms.end(); ++it)
332  result.insert(NTV2AudioRate(*it));
333  return result;
334  }
335 
340  inline bool CanDoInputTCIndex (const NTV2TCIndex inTCNdx)
341  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_InputTCIndex));
342  return itms.find(ULWord(inTCNdx)) != itms.end();
343  }
344 
349  inline bool CanDoOutputTCIndex (const NTV2TCIndex inTCNdx)
350  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_OutputTCIndex));
351  return itms.find(ULWord(inTCNdx)) != itms.end();
352  }
353 
358  inline bool CanDoAudioSampleRate (const NTV2AudioRate inRate) // New in SDK 18.0
359  { const ULWordSet itms (dev.GetSupportedItems(kNTV2EnumsID_AudioRate));
360  return itms.find(ULWord(inRate)) != itms.end();
361  }
362  private:
363  CNTV2DriverInterface & dev;
364 }; // DeviceCapabilities
365 
366 #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:221
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:1326
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:236
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:1359
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:3050
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:3954
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:1264
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:2912
bool HasBiDirectionalAnalogAudio(void)
uint16_t UWord
Definition: ajatypes.h:234
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.
True if device can report Mixer delay. (New in SDK 18.1)
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:3502
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:1931
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:3717
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...