22 : mDevCap(driverInterface())
28 : mDevCap(driverInterface())
30 string hostName(inHostName);
36 #if !defined(NTV2_DEPRECATE_17_2) 97 if (model ==
"Software" || model ==
"AJA Device" || model ==
"(Not Found)" || model ==
"Unknown" || model ==
"???")
101 oss << model <<
" - " << devNdx;
112 string dateStr, timeStr;
116 oss << dateStr <<
" at " << timeStr;
118 oss <<
"Unavailable";
127 return ReadRegister (48, status) ? ((status >> 8) & 0xFF) : -1;
135 oss << hex << version;
148 string hostName(
"localhost"), snStr;
155 oss <<
" '" << snStr <<
"'";
156 if (!hostName.empty())
157 oss <<
" on '" << hostName <<
"'";
164 static const string sDriverBuildTypes [] = {
"",
"b",
"a",
"d"};
165 UWord versions[4] = {0, 0, 0, 0};
172 const string & dabr (sDriverBuildTypes[versBits >> 30]);
174 oss <<
DEC(versions[0]) <<
"." <<
DEC(versions[1]) <<
"." <<
DEC(versions[2]);
176 oss <<
"." <<
DEC(versions[3]);
178 oss << dabr <<
DEC(versions[3]);
186 outMajor = outMinor = outPoint = outBuild = 0;
187 ULWord driverVersionULWord (0);
190 if (!driverVersionULWord)
218 const uint64_t result((hi << 32) | lo);
236 if (hasLPPC || spiFlashVers >= 6)
239 ULWord serialArray[] = {0,0,0,0};
244 outSerialNumberString.clear();
245 for (
int serialIndex = 0; serialIndex < 4; serialIndex++)
246 if (serialArray[serialIndex] != 0xffffffff)
247 for (
int i = 0; i < 4; i++)
249 const char tempChar(((serialArray[serialIndex] >> (i*8)) & 0xff));
250 if (tempChar > 0 && tempChar !=
'.')
251 outSerialNumberString.push_back(tempChar);
257 if (outSerialNumberString.empty())
258 {outSerialNumberString =
"INVALID?";
return false;}
262 outSerialNumberString =
"5" + outSerialNumberString;
266 outSerialNumberString =
"6" + outSerialNumberString;
268 outSerialNumberString =
"7" + outSerialNumberString;
332 ::memset (&bitFileInfo, 0,
sizeof (bitFileInfo));
340 outDateStr = reinterpret_cast <
char *> (&bitFileInfo.
dateStr [0]);
341 outTimeStr = reinterpret_cast <
char *> (&bitFileInfo.
timeStr [0]);
350 oss << inBitFileInfo.
dateStr <<
" " << inBitFileInfo.
timeStr <<
" ";
360 outIsSafeBoot =
false;
369 outCanWarmBoot =
false;
377 outCanWarmBoot =
true;
389 const bool bPhonyKBox (
false);
444 ostringstream tempString;
449 outURLString.clear();
450 tempString <<
"http://";
451 ipOctet = (portIP & 0xFF000000) >> 24;
452 tempString << ipOctet <<
".";
453 ipOctet = (portIP & 0x00FF0000) >> 16;
454 tempString << ipOctet <<
".";
455 ipOctet = (portIP & 0x0000FF00) >> 8;
456 tempString << ipOctet <<
".";
457 ipOctet = (portIP & 0x000000FF);
458 tempString << ipOctet;
460 outURLString = tempString.str();
470 ostringstream tempString;
475 outURLString.clear();
476 tempString <<
"http://";
477 ipOctet = (portIP & 0xFF000000) >> 24;
478 tempString << ipOctet <<
".";
479 ipOctet = (portIP & 0x00FF0000) >> 16;
480 tempString << ipOctet <<
".";
481 ipOctet = (portIP & 0x0000FF00) >> 8;
482 tempString << ipOctet <<
".";
483 ipOctet = (portIP & 0x000000FF);
484 tempString << ipOctet;
486 outURLString = tempString.str();
497 for (
int i = 0; i < numSFPs; i++)
501 ostringstream tempString;
506 tempString <<
"http://";
507 ipOctet = (portIP & 0xFF000000) >> 24;
508 tempString << ipOctet <<
".";
509 ipOctet = (portIP & 0x00FF0000) >> 16;
510 tempString << ipOctet <<
".";
511 ipOctet = (portIP & 0x0000FF00) >> 8;
512 tempString << ipOctet <<
".";
513 ipOctet = (portIP & 0x000000FF);
514 tempString << ipOctet;
516 OutSFPURLStrings.push_back(tempString.str());
518 return int(OutSFPURLStrings.size());
521 #if !defined(NTV2_DEPRECATE_16_3) 567 return itms.find(
ULWord(inVideoFormat)) != itms.end();
572 return itms.find(
ULWord(inFBFormat)) != itms.end();
578 return wgtIDs.find(inWidgetID) != wgtIDs.end();
583 return itms.find(
ULWord(inConversionMode)) != itms.end();
588 return itms.find(
ULWord(inDSKMode)) != itms.end();
593 return itms.find(
ULWord(inInputSource)) != itms.end();
595 #endif // !defined(NTV2_DEPRECATE_16_3) 621 mNumFrames =
UWord(totalBytes / m8MB);
622 if (totalBytes % m8MB)
623 {mNumFrames++; cerr <<
DEC(totalBytes % m8MB) <<
" leftover/spare bytes -- last frame is partial frame" << endl;}
624 for (
UWord frm(0); frm < mNumFrames; frm++)
627 return TagAudioBuffers(inDevice, inMarkStoppedAudioBuffersFree) && TagVideoFrames(inDevice);
632 for (FrameTagsConstIter it(mFrameTags.begin()); it != mFrameTags.end(); ++it)
635 oss <<
DEC0N(it->first,3) <<
": " <<
aja::join(tags,
", ") << endl;
643 for (
size_t ndx(0); ndx < inRgn1.size(); ndx++)
644 if (result.find(inRgn1.at(ndx)) == result.end())
645 result.insert(inRgn1.at(ndx));
646 for (
size_t ndx(0); ndx < inRgn2.size(); ndx++)
647 if (result.find(inRgn2.at(ndx)) == result.end())
648 result.insert(inRgn2.at(ndx));
649 for (
size_t ndx(0); ndx < inRgn3.size(); ndx++)
650 if (result.find(inRgn3.at(ndx)) == result.end())
651 result.insert(inRgn3.at(ndx));
658 GetRegions (freeBlks, goodBlks, badBlks);
659 ULWordSet rgns (CoalesceRegions(freeBlks, goodBlks, badBlks));
663 const ULWord rgnInfo(*it);
664 const UWord startBlk(rgnInfo >> 16), numBlks(
UWord(rgnInfo & 0x0000FFFF));
666 GetTagsForFrameIndex (startBlk, tags);
668 oss <<
"Frms " <<
DEC0N(startBlk,3) <<
"-" <<
DEC0N(startBlk+numBlks-1,3) <<
" : ";
670 oss <<
"Frm " <<
DEC0N(startBlk,3) <<
" : ";
682 outFree.clear(); outUsed.clear(); outBad.clear();
683 FrameTagsConstIter it(mFrameTags.begin());
684 if (it == mFrameTags.end())
686 UWord frmStart(it->first), lastFrm(frmStart);
688 while (++it != mFrameTags.end())
695 if (frmStart != lastFrm)
696 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
698 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
700 else if (runTags.size() > 1)
702 if (frmStart != lastFrm)
703 outBad.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
709 if (frmStart != lastFrm)
710 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
712 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
714 frmStart = lastFrm = it->first;
722 if (frmStart != lastFrm)
723 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
725 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
727 else if (runTags.size() > 1)
729 if (frmStart != lastFrm)
730 outBad.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
736 if (frmStart != lastFrm)
737 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
739 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
747 FrameTagsConstIter it(mFrameTags.find(inIndex));
748 if (it == mFrameTags.end())
750 outTags = it->second;
756 FrameTagsConstIter it(mFrameTags.find(inIndex));
757 if (it == mFrameTags.end())
759 return it->second.size();
765 if (inIsQuad && inIsQuadQuad)
767 if (inSrcRgns.empty())
769 const UWord _8MB_frames_per_dest_frame(
UWord(GetIntrinsicFrameByteCount() / m8MB) * (inIsQuad?4:1) * (inIsQuadQuad?16:1));
770 if (!_8MB_frames_per_dest_frame)
772 if (_8MB_frames_per_dest_frame == 1)
773 {outDestRgns = inSrcRgns;
return true;}
776 for (
size_t ndx(0); ndx < inSrcRgns.size(); ndx++)
777 {
const ULWord val(inSrcRgns.at(ndx));
778 ULWord startBlkOffset(val >> 16), lengthBlks(val & 0x0000FFFF);
779 startBlkOffset = startBlkOffset / _8MB_frames_per_dest_frame + (startBlkOffset % _8MB_frames_per_dest_frame ? 1 : 0);
780 lengthBlks = lengthBlks / _8MB_frames_per_dest_frame;
781 outDestRgns.push_back((startBlkOffset << 16) | lengthBlks);
789 bool isReading(
false), isWriting(
false);
794 tag <<
"Aud" <<
DEC(audSys+1);
799 TagMemoryBlock(addr, m8MB, inMarkStoppedAudioBuffersFree && !isReading && !isWriting ?
string() : tag.str());
811 bool isEnabled(
false), isMultiFormat(
false), isQuad(
false), isQuadQuad(
false), isSquares(
false), isTSI(
false);
813 uint64_t addr(0), len(0);
814 if (skipChannels.find(chan) != skipChannels.end())
821 tag <<
"AC" <<
DEC(chan+1) << (acStatus.
IsInput() ?
" Write" :
" Read");
822 TagMemoryBlock(addr, tmp + len - addr, tag.str());
833 inDevice.
GetDeviceFrameInfo (
UWord(frameNum), chan, mIntrinsicSize, isMultiFormat, isQuad, isQuadQuad, isSquares, isTSI, addr, len);
835 tag <<
"MR" <<
DEC(chan+1);
837 tag <<
"Ch" <<
DEC(chan+1);
839 TagMemoryBlock(addr, len, tag.str());
845 else if (isQuad && !isQuadQuad && isTSI)
868 if (inStartAddr % m8MB)
870 if (inByteLength % m8MB)
874 const UWord startFrm(
UWord(inStartAddr / m8MB)), frmCnt(
UWord(inByteLength / m8MB));
875 for (
UWord frm(0); frm < frmCnt; frm++)
877 UWord frameNum(startFrm + frm);
879 if (tags.find(inTag) == tags.end())
882 if (frameNum >= mNumFrames)
883 tags.insert(
"Invalid");
UWord NTV2DeviceGetNum25GSFPs(const NTV2DeviceID inDeviceID)
virtual bool DeviceCanDoVideoFormat(const NTV2VideoFormat inVF)
virtual bool GetNumericParam(const ULWord inParamID, ULWord &outValue)
size_t GetTagCount(const UWord inIndex) const
virtual bool SetFrameBufferSize(const NTV2Framesize inSize)
Sets the device's intrinsic frame buffer size.
virtual Word GetPCIFPGAVersion(void)
#define NTV2_IS_INPUT_MODE(__mode__)
virtual bool IsSupported(const NTV2BoolParamID inParamID)
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information...
#define kQParamVDevIndex
Device index number for .vdev virtual device.
virtual bool GetLPTunnelConfigurationURLString(std::string &outURLString)
virtual bool IS_OUTPUT_SPIGOT_INVALID(const UWord inOutputSpigot)
virtual ULWord DeviceGetAudioFrameBuffer2(void)
static NTV2Buffer NULL_POINTER
Used for default empty NTV2Buffer parameters – do not modify.
virtual bool DeviceCanDoWidget(const NTV2WidgetID inWgtID)
#define DEC0N(__x__, __n__)
The number of video channels supported on the device.
virtual bool DeviceCanDoFrameBufferFormat(const NTV2PixelFormat inPF)
I interrogate and control an AJA video/audio capture/playout device.
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
virtual ULWord GetSerialNumberHigh(void)
bool AssessDevice(CNTV2Card &inDevice, const bool inIgnoreStoppedAudioBuffers=(0))
Assesses the given device.
std::string valueForKey(const std::string &inKey) const
virtual bool DeviceCanDoConversionMode(const NTV2ConversionMode inCM)
ULWord NTV2DeviceGetActiveMemorySize(const NTV2DeviceID inDeviceID)
True if device can warm-boot to load updated firmware.
virtual UWord GetIndexNumber(void) const
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
The number of independent Audio Systems on the device.
bool NTV2DeviceHasLPProductCode(const NTV2DeviceID inDeviceID)
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...
Identifies the NTV2DSKMode enumerated type.
virtual bool IsMultiRasterWidgetChannel(const NTV2Channel inChannel)
True if device can report if its "fail-safe" firmware is loaded/running.
Identifies the AES/EBU audio breakout cable that has XLR connectors.
#define kQParamVDevName
Device name, if not specified in .vdev file, then base name of .vdev file.
#define kNTV2PluginRegInfoKey_ShortName
Plugin short name.
virtual bool GetOutputFrame(const NTV2Channel inChannel, ULWord &outValue)
Answers with the current output frame number for the given FrameStore (expressed as an NTV2Channel)...
virtual bool Close(void)
Closes me, releasing host resources that may have been allocated in a previous Open call...
static bool isEnabled(CNTV2Card &device, const NTV2Channel inChannel)
virtual bool IS_INPUT_SPIGOT_INVALID(const UWord inInputSpigot)
virtual bool Open(const UWord inDeviceIndex)
Opens a local/physical AJA device so it can be monitored/controlled.
virtual bool DeviceCanDoFormat(const NTV2FrameRate inFR, const NTV2FrameGeometry inFG, const NTV2Standard inStd)
virtual Word GetDeviceVersion(void)
Answers with this device's version number.
Identifies the NTV2VideoFormat enumerated type.
ULWord _ulFrameBufferSize
Identifies the NTV2InputSource enumerated type.
virtual bool GetFrameBufferSize(const NTV2Channel inChannel, NTV2Framesize &outValue)
Answers with the frame size currently being used on the device.
ULWord NTV2DeviceGetAudioFrameBuffer2(NTV2DeviceID boardID, NTV2FrameGeometry frameGeometry, NTV2FrameBufferFormat frameFormat)
virtual bool IsAudioInputRunning(const NTV2AudioSystem inAudioSystem, bool &outIsRunning)
Answers whether or not the capture side of the given NTV2AudioSystem is currently running...
virtual ULWord GetFrameBufferSize(void) const
std::ostream & RawDump(std::ostream &oss) const
Dumps a human-readable list of regions into the given stream.
virtual bool AutoCirculateGetStatus(const NTV2Channel inChannel, AUTOCIRCULATE_STATUS &outStatus)
Returns the current AutoCirculate status for the given channel.
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
virtual NTV2Dictionary ConnectParams(void) const
#define NTV2DriverVersionDecode_Major(__vers__)
#define NTV2DriverVersionDecode_Point(__vers__)
virtual bool GetInstalledBitfileInfo(ULWord &outNumBytes, std::string &outDateStr, std::string &outTimeStr)
Returns the bitfile size and time/date stamp from the header of the bitfile that's currently installe...
The number of SDI video outputs on the device.
ULWordSet::const_iterator ULWordSetConstIter
virtual bool IsRemote(void) const
virtual bool HasMultiRasterWidget(void)
NTV2FrameRate
Identifies a particular video frame rate.
I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
virtual std::string GetPCIFPGAVersionString(void)
virtual bool IsAudioOutputRunning(const NTV2AudioSystem inAudioSystem, bool &outIsRunning)
Answers whether or not the playout side of the given NTV2AudioSystem is currently running...
NTV2Standard
Identifies a particular video standard.
virtual std::string GetDescription(void) const
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
static ULWordSet CoalesceRegions(const ULWordSequence &inRgn1, const ULWordSequence &inRgn2, const ULWordSequence &inRgn3)
virtual bool IsFailSafeBitfileLoaded(bool &outIsFailSafe)
Answers whether or not the "fail-safe" (aka "safe-boot") bitfile is currently loaded and running in t...
NTV2DeviceID _boardID
My cached device ID.
static std::string SerialNum64ToString(const uint64_t inSerialNumber)
Returns a string containing the decoded, human-readable device serial number.
virtual bool IsOpen(void) const
bool _boardOpened
True if I'm open and connected to the device.
NTV2BreakoutType
Identifies the Breakout Boxes and Cables that may be attached to an AJA NTV2 device.
virtual std::string GetBitfileInfoString(const BITFILE_INFO_STRUCT &inBitFileInfo)
Generates and returns an info string with date, time and name for the given inBifFileInfo.
True if device has attached breakout board. (New in SDK 17.0)
virtual bool GetSerialNumberString(std::string &outSerialNumberString)
Answers with a string that contains my human-readable serial number.
virtual std::string GetDisplayName(void)
Answers with this device's display name.
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...
ULWord NTV2FramesizeToByteCount(const NTV2Framesize inFrameSize)
Converts the given NTV2Framesize value into an exact byte count.
bool IsStopped(void) const
True if device uses a "stacked" arrangement of its audio buffers.
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
virtual std::string GetDriverVersionString(void)
Answers with this device's driver's version as a human-readable string.
virtual bool DeviceCanDoDSKMode(const NTV2DSKMode inDSKM)
virtual bool GetInputFrame(const NTV2Channel inChannel, ULWord &outValue)
Answers with the current input frame index number for the given FrameStore. This identifies which par...
virtual std::string GetDeviceVersionString(void)
Answers with this device's version number as a human-readable string.
virtual bool IS_HDMI_INPUT_SPIGOT_INVALID(const UWord inInputHDMIPort)
virtual bool GetDeviceFrameInfo(const UWord inFrameNumber, const NTV2Channel inChannel, uint64_t &outAddress, uint64_t &outLength)
Answers with the address and size of the given frame.
virtual bool GetLPExternalConfigurationURLString(std::string &outURLString)
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...
Specifies channel or FrameStore 8 (or the 8th item).
Specifies channel or FrameStore 2 (or the 2nd item).
virtual NTV2DeviceID GetDeviceID(void)
static NTV2WidgetID WidgetIDFromTypeAndChannel(const NTV2WidgetType inWidgetType, const NTV2Channel inChannel)
ULWord NTV2DeviceGetNumberFrameBuffers(NTV2DeviceID id, NTV2FrameGeometry fg, NTV2FrameBufferFormat fbf)
virtual std::string GetDescription(void) const
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...
NTV2Framesize
Kona2/Xena2 specific enums.
#define NTV2_IS_VALID_CHANNEL(__x__)
virtual bool DeviceCanDoInputSource(const NTV2InputSource inSrc)
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 DriverGetBitFileInformation(BITFILE_INFO_STRUCT &outBitFileInfo, const NTV2BitFileType inBitFileType=NTV2_VideoProcBitFile)
defined(NTV2_DEPRECATE_17_2)
NTV2Mode
Used to identify the mode of a widget_framestore, or the direction of an AutoCirculate stream: either...
uint16_t GetEndFrame(void) const
virtual std::string GetModelName(void)
Answers with this device's model name.
virtual int GetSFPConfigurationURLStrings(std::vector< std::string > &sfpURLStrings)
NTV2InputSource
Identifies a specific video input source.
std::string NTV2DeviceIDToString(const NTV2DeviceID inValue, const bool inForRetailDisplay=false)
bool TagVideoFrames(CNTV2Card &inDevice)
std::string & strip(std::string &str, const std::string &ws)
virtual bool GetFrameBufferFormat(NTV2Channel inChannel, NTV2FrameBufferFormat &outValue)
Returns the current frame buffer format for the given FrameStore on the AJA device.
NTV2FrameGeometry
Identifies a particular video frame geometry.
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
This identifies the first Audio System.
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)
virtual bool GetFrameGeometry(NTV2FrameGeometry &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
Declares numerous NTV2 utility functions.
True if device supports 12G routing crosspoints.
bool TagAudioBuffers(CNTV2Card &inDevice, const bool inMarkStoppedAudioBuffersFree)
virtual uint64_t GetSerialNumber(void)
Answers with my serial number.
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
Declares the AJASystemInfo class.
virtual ULWord DeviceGetFrameBufferSize(void)
This is returned from the CNTV2Card::AutoCirculateGetStatus function.
ULWord _ulNumFrameBuffers
#define NTV2DriverVersionDecode_Build(__vers__)
Specifies channel or FrameStore 1 (or the first item).
ULWord NTV2DeviceGetAudioFrameBuffer(NTV2DeviceID boardID, NTV2FrameGeometry frameGeometry, NTV2FrameBufferFormat frameFormat)
virtual NTV2BreakoutType GetBreakoutHardware(void)
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
bool CanDoWidget(const NTV2WidgetID inWgtID)
virtual ULWordSet GetSupportedItems(const NTV2EnumsID inEnumsID)
Identifies the AES/EBU audio breakout cable that has BNC connectors.
virtual bool IsChannelEnabled(const NTV2Channel inChannel, bool &outEnabled)
Answers whether or not the given FrameStore is enabled.
bool GetTagsForFrameIndex(const UWord inIndex, NTV2StringSet &outTags) const
Answers with the list of tags for the given frame number.
#define NTV2DriverVersionDecode_Minor(__vers__)
The SPI-flash version on the device. (New in SDK 17.1)
virtual bool IS_CHANNEL_INVALID(const NTV2Channel inChannel) const
Declares the CNTV2Card class.
bool NTV2DeviceCanDoFormat(const NTV2DeviceID inDevID, const NTV2FrameRate inFR, const NTV2FrameGeometry inFG, const NTV2Standard inStd)
Specifies channel or FrameStore 4 (or the 4th item).
Specifies channel or FrameStore 5 (or the 5th item).
ULWord NTV2DeviceGetFrameBufferSize(NTV2DeviceID id, NTV2FrameGeometry fg, NTV2FrameBufferFormat fbf)
Private include file for all ajabase sources.
virtual ULWord DeviceGetNumberFrameBuffers(void)
std::vector< uint32_t > ULWordSequence
An ordered sequence of ULWord (uint32_t) values.
virtual bool CanWarmBootFPGA(bool &outCanWarmBoot)
Answers whether or not the FPGA can be reloaded without powering off.
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)
std::string NTV2BitfileTypeToString(const NTV2BitfileType inValue, const bool inCompactDisplay=false)
virtual AJAStatus GetValue(const AJASystemInfoTag inTag, std::string &outValue) const
Answers with the host system info value string for the given AJASystemInfoTag.
std::string join(const std::vector< std::string > &parts, const std::string &delim)
No identifiable breakout hardware appears to be attached.
virtual ULWord DeviceGetAudioFrameBuffer(void)
Identifies the NTV2PixelFormat enumerated type.
std::ostream & DumpBlocks(std::ostream &oss) const
Dumps all 8MB blocks/frames and their tags, if any, into the given stream.
Specifies channel or FrameStore 6 (or the 6th item).
Identifies the NTV2ConversionMode enumerated type.
virtual bool IsBufferSizeSetBySW(void)
defined(NTV2_DEPRECATE_17_2)
virtual std::string GetFPGAVersionString(const NTV2XilinxFPGA inFPGA=eFPGAVideoProc)
CNTV2Card()
My default constructor.
Specifies channel or FrameStore 7 (or the 7th item).
virtual ULWord GetSerialNumberLow(void)
Identifies the NTV2AudioWidgetID enumerated type.
virtual bool GetDriverVersionComponents(UWord &outMajor, UWord &outMinor, UWord &outPoint, UWord &outBuild)
Answers with the individual version components of this device's driver.
The number of SDI video inputs on the device.
uint16_t GetStartFrame(void) const
Declares device capability functions.
Packed driver version – use NTV2DriverVersionEncode, NTV2DriverVersionDecode* macros to encode/decod...
virtual ~CNTV2Card()
My destructor.
The size, in bytes, of the device's active RAM available for video and audio.
Specifies channel or FrameStore 3 (or the 3rd item).
virtual bool GetMode(const NTV2Channel inChannel, NTV2Mode &outValue)
Answers with the current NTV2Mode of the given FrameStore on the AJA device.
std::set< std::string > NTV2StringSet
The number of HDMI video inputs on the device.
virtual bool GetAudioMemoryOffset(const ULWord inOffsetBytes, ULWord &outAbsByteOffset, const NTV2AudioSystem inAudioSystem, const bool inCaptureBuffer=(0))
Answers with the byte offset in device SDRAM into the specified Audio System's audio buffer...