|
AJA NTV2 SDK
17.0.1.1246
NTV2 SDK 17.0.1.1246
|
Go to the documentation of this file.
19 #ifdef _AJA_COMPILE_WIN2K_SOFT_LINK
23 pfcnSetupDiGetClassDevsA)(
24 IN CONST GUID *ClassGuid, OPTIONAL
25 IN PCSTR Enumerator, OPTIONAL
26 IN HWND hwndParent, OPTIONAL
33 pfcnSetupDiGetClassDevsW)(
34 IN CONST GUID *ClassGuid, OPTIONAL
35 IN PCWSTR Enumerator, OPTIONAL
36 IN HWND hwndParent, OPTIONAL
40 #define pfcnSetupDiGetClassDevs pfcnSetupDiGetClassDevsW
42 #define pfcnSetupDiGetClassDevs pfcnSetupDiGetClassDevsA
48 pfcnSetupDiEnumDeviceInterfaces)(
49 IN HDEVINFO DeviceInfoSet,
50 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL
51 IN CONST GUID *InterfaceClassGuid,
53 OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
60 pfcnSetupDiGetDeviceInterfaceDetailA)(
61 IN HDEVINFO DeviceInfoSet,
62 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
63 OUT PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData, OPTIONAL
64 IN DWORD DeviceInterfaceDetailDataSize,
65 OUT PDWORD RequiredSize, OPTIONAL
66 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL
72 pfcnSetupDiGetDeviceInterfaceDetailW)(
73 IN HDEVINFO DeviceInfoSet,
74 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
75 OUT PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData, OPTIONAL
76 IN DWORD DeviceInterfaceDetailDataSize,
77 OUT PDWORD RequiredSize, OPTIONAL
78 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL
81 #define pfcnSetupDiGetDeviceInterfaceDetail pfcnSetupDiGetDeviceInterfaceDetailW
83 #define pfcnSetupDiGetDeviceInterfaceDetail pfcnSetupDiGetDeviceInterfaceDetailA
89 pfcnSetupDiDestroyDeviceInfoList)(
90 IN HDEVINFO DeviceInfoSet
96 pfcnSetupDiDestroyDriverInfoList)(
97 IN HDEVINFO DeviceInfoSet,
98 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL
102 static pfcnSetupDiGetClassDevs pSetupDiGetClassDevs =
NULL;
103 static pfcnSetupDiEnumDeviceInterfaces pSetupDiEnumDeviceInterfaces =
NULL;
104 static pfcnSetupDiGetDeviceInterfaceDetail pSetupDiGetDeviceInterfaceDetail =
NULL;
105 static pfcnSetupDiDestroyDeviceInfoList pSetupDiDestroyDeviceInfoList =
NULL;
106 static pfcnSetupDiDestroyDriverInfoList pSetupDiDestroyDriverInfoList =
NULL;
108 HINSTANCE hSetupAPI =
NULL;
114 LPVOID lpMsgBuf(
NULL);
115 FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
118 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
122 string result (lpMsgBuf ?
reinterpret_cast<const char*
>(lpMsgBuf) :
"");
123 LocalFree (lpMsgBuf);
125 const size_t crPos(result.find(
".\r"));
126 if (crPos != string::npos)
127 result.resize(crPos);
133 #define HEX2(__x__) "0x" << hex << setw(2) << setfill('0') << (0xFF & uint8_t (__x__)) << dec
134 #define HEX4(__x__) "0x" << hex << setw(4) << setfill('0') << (0xFFFF & uint16_t(__x__)) << dec
135 #define HEX8(__x__) "0x" << hex << setw(8) << setfill('0') << (0xFFFFFFFF & uint32_t(__x__)) << dec
136 #define HEX16(__x__) "0x" << hex << setw(16) << setfill('0') << uint64_t(__x__) << dec
137 #define KR(_kr_) "kernResult=" << HEX8(_kr_) << "(" << GetKernErrStr(_kr_) << ")"
138 #define INSTP(_p_) HEX16(uint64_t(_p_))
140 #define WDIFAIL(__x__) AJA_sERROR (AJA_DebugUnit_DriverInterface, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
141 #define WDIWARN(__x__) AJA_sWARNING(AJA_DebugUnit_DriverInterface, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
142 #define WDINOTE(__x__) AJA_sNOTICE (AJA_DebugUnit_DriverInterface, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
143 #define WDIINFO(__x__) AJA_sINFO (AJA_DebugUnit_DriverInterface, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
144 #define WDIDBG(__x__) AJA_sDEBUG (AJA_DebugUnit_DriverInterface, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
151 ,_previousAudioState (0)
152 ,_previousAudioSelection (0)
153 #if !defined(NTV2_DEPRECATE_16_0)
168 #if !defined(NTV2_NULL_DEVICE)
182 #define AJAVIDEO_NTV2_PROPSET DEFINE_GUIDNAMED(AJAVIDEO_NTV2_PROPSET)
189 DWORD dwShareMode (
GetShareMode() ? FILE_SHARE_READ | FILE_SHARE_WRITE : 0);
190 DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED;
192 SP_DEVICE_INTERFACE_DATA spDevIFaceData;
193 memset(&spDevIFaceData, 0,
sizeof(SP_DEVICE_INTERFACE_DATA));
194 GUID myguid = refguid;
198 spDevIFaceData.cbSize =
sizeof(SP_DEVICE_INTERFACE_DATA);
211 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
235 ULONG deviceInstanceSize = 0;
236 CM_Get_Device_ID_Size(&deviceInstanceSize,
_spDevInfoData.DevInst, 0);
237 char* deviceInstance = (
char*)
new BYTE[deviceInstanceSize*2];
238 CM_Get_Device_IDA(
_spDevInfoData.DevInst, deviceInstance, deviceInstanceSize*2, 0);
239 boardStr = deviceInstance;
240 delete [] deviceInstance;
245 WDIFAIL(
"CreateFile failed for '" << boardStr <<
"'");
274 #ifndef _AJA_COMPILE_WIN2K_SOFT_LINK
277 if (pSetupDiDestroyDeviceInfoList)
291 #endif // !defined(NTV2_NULL_DEVICE)
303 WDIFAIL(
"Shift " <<
DEC(inShift) <<
" > 31, reg=" <<
DEC(inRegNum) <<
" msk=" <<
xHEX0N(inMask,8));
306 #if defined(NTV2_NUB_CLIENT_SUPPORT)
309 #endif // defined(NTV2_NUB_CLIENT_SUPPORT)
316 DWORD dwBytesReturned = 0;
320 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
342 WDIFAIL(
"Shift " <<
DEC(inShift) <<
" > 31, reg=" <<
DEC(inRegNum) <<
" msk=" <<
xHEX0N(inMask,8));
345 #if defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
353 #endif // defined(NTV2_WRITEREG_PROFILING) // Register Write Profiling
354 #if defined(NTV2_NUB_CLIENT_SUPPORT)
357 #endif // defined(NTV2_NUB_CLIENT_SUPPORT)
361 DWORD dwBytesReturned = 0;
367 propStruct.
Property.Flags = KSPROPERTY_TYPE_SET;
399 DWORD dwBytesReturned = 0;
403 propStruct.
Property.Flags = bEnable ? KSPROPERTY_TYPE_GET : KSPROPERTY_TYPE_SET;
409 WDIFAIL(
"interruptType=" <<
DEC(eInterruptType) <<
" enable=" << (bEnable?
"Y":
"N") <<
" failed: " << ::
GetKernErrStr(GetLastError()));
422 if (!IsOpen() && !IsRemote())
428 if (bSubscribe && outSubscriptionHdl)
432 if (!bSubscribe && !outSubscriptionHdl)
436 HANDLE hSubscription = bSubscribe ? CreateEvent (
NULL, FALSE, FALSE,
NULL) :
HANDLE(outSubscriptionHdl);
438 DWORD dwBytesReturned = 0;
443 propStruct.
Property.Flags = bSubscribe ? KSPROPERTY_TYPE_GET : KSPROPERTY_TYPE_SET;
444 propStruct.
Handle = hSubscription;
449 if ((!bSubscribe && bRet) || (bSubscribe && !bRet))
451 CloseHandle(hSubscription);
452 outSubscriptionHdl = 0;
457 WDIFAIL(
"interruptType=" <<
DEC(eInterruptType) <<
" subscribe=" << (bSubscribe?
"Y":
"N") <<
" failed: " << ::
GetKernErrStr(GetLastError()));
461 outSubscriptionHdl =
PULWord(hSubscription);
470 #if defined(NTV2_NUB_CLIENT_SUPPORT)
473 #endif // defined(NTV2_NUB_CLIENT_SUPPORT)
477 DWORD dwBytesReturned = 0;
481 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
483 propStruct.
ulIntCount = ULONG(eInterruptType);
501 AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
AJA_DebugStat_WaitForInterruptOthers,
518 #if defined(NTV2_NUB_CLIENT_SUPPORT)
521 #endif // defined(NTV2_NUB_CLIENT_SUPPORT)
526 bool bInterruptHappened =
false;
538 DWORD status = WaitForSingleObject(hEvent, timeOutMs);
540 if ( status == WAIT_OBJECT_0 )
542 bInterruptHappened =
true;
550 return bInterruptHappened;
557 #if !defined(NTV2_DEPRECATE_16_0)
566 DWORD dwBytesReturned = 0;
572 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
598 ULWord * pFrameBaseAddress;
600 if (!pFrameBaseAddress)
604 DWORD dwBytesReturned = 0;
608 propStruct.
Property.Flags = KSPROPERTY_TYPE_SET;
631 DWORD dwBytesReturned = 0;
637 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
662 DWORD dwBytesReturned = 0;
666 propStruct.
Property.Flags = KSPROPERTY_TYPE_SET;
687 DWORD dwBytesReturned = 0;
693 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
717 DWORD dwBytesReturned = 0;
721 propStruct.
Property.Flags = KSPROPERTY_TYPE_SET;
742 DWORD dwBytesReturned = 0;
746 propStruct.
Property.Flags = bMap ? KSPROPERTY_TYPE_GET : KSPROPERTY_TYPE_SET;
753 WDIFAIL (
KR(GetLastError()) <<
" -- numBytes=" << ulNumBytes <<
" map=" << (bMap?
"Y":
"N"));
819 if (*vecIter == pFrameBuffer)
826 #endif // !defined(NTV2_DEPRECATE_16_0)
834 const ULWord inFrameNumber,
836 const ULWord inOffsetBytes,
838 const bool inSynchronous)
846 DWORD dwBytesReturned = 0;
850 propStruct.
Property.Flags = inIsRead ? KSPROPERTY_TYPE_GET : KSPROPERTY_TYPE_SET;
857 propStruct.
bSync = inSynchronous;
864 WDIFAIL (
"failed: " << ::
GetKernErrStr(GetLastError()) <<
": eng=" << inDMAEngine <<
" frm=" << inFrameNumber
865 <<
" off=" <<
HEX8(inOffsetBytes) <<
" len=" <<
HEX8(inByteCount) <<
" " << (inIsRead ?
"Rd" :
"Wr"));
874 const ULWord inFrameNumber,
876 const ULWord inOffsetBytes,
878 const ULWord inNumSegments,
881 const bool inSynchronous)
889 DWORD dwBytesReturned = 0;
893 propStruct.
Property.Flags = inIsRead ? KSPROPERTY_TYPE_GET : KSPROPERTY_TYPE_SET;
903 propStruct.
bSync = inSynchronous;
910 WDIFAIL (
"failed: " << ::
GetKernErrStr(GetLastError()) <<
": eng=" << inDMAEngine <<
" frm=" << inFrameNumber
911 <<
" off=" <<
HEX8(inOffsetBytes) <<
" len=" <<
HEX8(inByteCount) <<
" " << (inIsRead ?
"Rd" :
"Wr"));
919 const bool inIsTarget,
920 const ULWord inFrameNumber,
921 const ULWord inCardOffsetBytes,
923 const ULWord inNumSegments,
938 DWORD dwBytesReturned(0);
948 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
957 propStruct.
Property.Flags = KSPROPERTY_TYPE_SET;
978 WDIFAIL (
"Failed: " << ::
GetKernErrStr(GetLastError()) <<
": eng=" << inDMAEngine <<
" ch=" << inDMAChannel
979 <<
" frm=" << inFrameNumber <<
" off=" <<
HEX8(inCardOffsetBytes) <<
" siz=" <<
HEX8(inByteCount)
980 <<
" #segs=" << inNumSegments <<
" hostPitch=" << inHostPitch <<
" cardPitch=" << inCardPitch
981 <<
" target=" << (inIsTarget?
"Y":
"N"));
989 WDIFAIL (
"Target failed: " << ::
GetKernErrStr(GetLastError()) <<
" eng=" << inDMAEngine <<
" ch=" << inDMAChannel
990 <<
" frm=" << inFrameNumber <<
" off=" <<
HEX8(inCardOffsetBytes) <<
" vSiz=" <<
HEX8(inByteCount)
991 <<
" segs=" << inNumSegments <<
" hostPitch=" << inHostPitch <<
" cardPitch=" << inCardPitch
992 <<
" target=" << (inIsTarget?
"Y":
"N") <<
" p2pBytesRet=" <<
HEX8(dwBytesReturned)
1014 DWORD dwBytesReturned(0);
1020 if (autoCircData.
lVal4 <= 1 && autoCircData.
lVal5 == 0 && autoCircData.
lVal6 == 0)
1026 autoCircControl.
Property.Flags = KSPROPERTY_TYPE_SET;
1054 autoCircControl.
Property.Flags = KSPROPERTY_TYPE_SET;
1094 autoCircControl.
Property.Flags = KSPROPERTY_TYPE_SET;
1130 autoCircStatus.
Property.Flags = KSPROPERTY_TYPE_GET;
1145 {bRes =
false;
WDIFAIL(
"GetAC failed: NULL pvVal1");}
1155 autoCircFrame.
Property.Flags = KSPROPERTY_TYPE_GET;
1173 {bRes =
false;
WDIFAIL(
"GetFrameStamp failed: NULL pvVal1");}
1183 autoCircFrame.
Property.Flags = KSPROPERTY_TYPE_GET;
1208 {bRes =
false;
WDIFAIL(
"GetFrameStampEx2 failed: NULL pvVal1");}
1218 acXfer.
Property.Flags = KSPROPERTY_TYPE_GET;
1222 {bRes =
false;
WDIFAIL(
"ACXfer failed: pvVal1 or pvVal2 NULL");
break;}
1249 acXfer.
Property.Flags = KSPROPERTY_TYPE_GET;
1253 {bRes =
false;
WDIFAIL(
"ACXferEx failed: NULL XferStruct or XferStatusStruct");
break;}
1282 acXfer.
Property.Flags = KSPROPERTY_TYPE_GET;
1286 {bRes =
false;
WDIFAIL(
"ACXferEx2 failed: NULL XferStruct or RoutingTable");
break;}
1318 autoCircFrame.
Property.Flags = KSPROPERTY_TYPE_SET;
1323 if (!autoCircData.
pvVal1)
1324 {bRes =
false;
WDIFAIL(
"ACSetCaptureTask failed: NULL TaskStruct");
break;}
1350 {
WDIFAIL(
"Failed: NULL pointer");
return false;}
1351 DWORD dwBytesReturned(0);
1353 const bool ok = DeviceIoControl(
_hDevice,
IOCTL_AJANTV2_MESSAGE, pInMessage, pInMessage->GetSizeInBytes (), pInMessage, pInMessage->GetSizeInBytes(), &dwBytesReturned,
NULL);
1364 {
WDIFAIL(
"Failed: NULL pointer");
return false;}
1365 DWORD dwBytesReturned(0);
1398 DWORD dwBytesReturned(0);
1403 propStruct.
Property.Flags = KSPROPERTY_TYPE_GET;
1416 DWORD dwBytesReturned(0);
1421 propStruct.
Property.Flags = KSPROPERTY_TYPE_SET;
AUTO_CIRC_COMMAND eCommand
@ KSPROPERTY_AJAPROPS_GETSETREGISTER
@ AJA_DebugStat_GetInterruptCount
@ KSPROPERTY_AJAPROPS_AUTOCIRC_CONTROL
@ AJA_DebugStat_DMATransferEx
static const uint32_t sIntEnumToStatKeys[]
@ KSPROPERTY_AJAPROPS_INTERRUPTS
FRAME_STAMP_STRUCT frameStamp
AUTO_CIRC_COMMAND eCommand
static AJAStatus StatTimerStop(const uint32_t inKey)
NTV2Crosspoint channelSpec
bool mSkipRegWrites
True if actual register writes are skipped while recording.
Declares the MSWindows-specific flavor of CNTV2DriverInterface.
struct AUTOCIRCULATE_TASK_STRUCT * PAUTOCIRCULATE_TASK_STRUCT
virtual bool UnmapRegisters(void)
enum _INTERRUPT_ENUMS_ INTERRUPT_ENUMS
virtual bool WaitForInterrupt(const INTERRUPT_ENUMS eInterruptType, const ULWord timeOutMs=50)
virtual bool UnmapFrameBuffers(void)
#define IOCTL_AJAPROPS_AUTOCIRC_FRAME
virtual bool SetAudioOutputMode(NTV2_GlobalAudioPlaybackMode mode)
Declares device capability functions.
ULWord * _pXena2FlashBaseAddress
@ KSPROPERTY_AJAPROPS_AUTOCIRC_STATUS
@ AJA_DebugStat_HEVCSendMessage
NTV2Channel
These enum values are mostly used to identify a specific Frame Store. They're also commonly used to i...
@ AJA_DebugStat_ReadRegister
bool _boardOpened
True if I'm open and connected to the device.
@ AJA_DebugStat_NTV2Message
static AJAStatus StatTimerStart(const uint32_t inKey)
CNTV2WinDriverInterface()
My default constructor.
#define NTV2_ASSERT(_expr_)
AUTO_CIRC_COMMAND eCommand
NTV2RoutingTable acTransferRoute
#define IOCTL_AJAPROPS_AUTOCIRC_CONTROL
virtual bool ConfigureInterrupt(const bool bEnable, const INTERRUPT_ENUMS eInterruptType)
@ AJA_DebugStat_AutoCirculate
#define IOCTL_AJAPROPS_GETSETBITFILEINFO
#define IOCTL_AJAPROPS_AUTOCIRC_TRANSFER_EX2
INTERRUPT_ENUMS eInterrupt
@ AJA_DebugStat_WaitForInterruptOthers
virtual bool NTV2Message(NTV2_HEADER *pInMessage)
Sends a message to the NTV2 driver (the new, improved, preferred way).
#define IOCTL_AJAPROPS_AUTOCIRC_FRAME_EX2
virtual bool WaitForInterrupt(const INTERRUPT_ENUMS eInterrupt, const ULWord timeOutMs=68)
@ AJA_DebugStat_WaitForInterruptIn2
virtual bool MapFrameBuffers(void)
AUTO_CIRC_COMMAND eCommand
AUTO_CIRC_COMMAND eCommand
bool NTV2DeviceHasSPIFlash(const NTV2DeviceID inDeviceID)
AUTOCIRCULATE_STATUS_STRUCT autoCircStatus
virtual bool GetAudioOutputMode(NTV2_GlobalAudioPlaybackMode *mode)
ULWord * _pCh2FrameBaseAddress
@ NTV2_MAPMEMORY_PCIFLASHPROGRAM
ULWord ulVidSegmentCardPitch
virtual bool GetInterruptCount(const INTERRUPT_ENUMS eInterrupt, ULWord &outCount)=0
Answers with the number of interrupts of the given type processed by the driver.
UWord _boardNumber
My device index number.
virtual ~CNTV2WinDriverInterface()
My default destructor.
virtual bool CloseLocalPhysical(void)
Releases host resources associated with the local/physical device connection.
@ KSPROPERTY_AJAPROPS_MAPMEMORY
@ kVRegGlobalAudioPlaybackMode
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...
#define IOCTL_AJAPROPS_AUTOCIRC_CONTROL_EX
NTV2DeviceID _boardID
My cached device ID.
static std::string GetKernErrStr(const DWORD inError)
@ AJA_DebugStat_WaitForInterruptIn8
virtual bool PrepareMemoryForDMA(ULWord *pFrameBuffer, const ULWord ulNumBytes)
#define NTV2_IS_VALID_INTERRUPT_ENUM(__e__)
#define IOCTL_AJAPROPS_DMA_P2P
virtual bool DmaTransfer(const NTV2DMAEngine inDMAEngine, const bool inIsRead, const ULWord inFrameNumber, ULWord *pFrameBuffer, const ULWord inCardOffsetBytes, const ULWord inByteCount, const bool inSynchronous=(!(0)))
Transfers data between the AJA device and the host. This function will block and not return to the ca...
virtual bool MapMemory(PVOID pvUserVa, ULWord ulNumBytes, bool bMap, ULWord *ulUser=NULL)
AUTOCIRCULATE_TRANSFER_STRUCT acTransfer
virtual bool AutoCirculate(AUTOCIRCULATE_DATA &autoCircData)
Sends an AutoCirculate command to the NTV2 driver.
ULWord64 ullMessageBusAddress
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 ReadRegister(const ULWord inRegNum, ULWord &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Physical device implementation of CNTV2DriverInterface::ReadRegister.
NTV2RegisterWrites mRegWrites
Stores WriteRegister data.
@ AJA_DebugStat_DMATransferP2P
NTV2_GlobalAudioPlaybackMode
virtual bool HevcSendMessage(HevcMessageHeader *pMessage)
Sends an HEVC message to the NTV2 driver.
AUTO_CIRC_COMMAND eCommand
AUTO_CIRC_COMMAND eCommand
struct AUTOCIRCULATE_P2P_STRUCT CHANNEL_P2P_STRUCT
NTV2Crosspoint channelSpec
#define IOCTL_AJAPROPS_DMA_EX
#define IOCTL_AJAPROPS_AUTOCIRC_STATUS
#define IOCTL_AJAPROPS_INTERRUPTS
virtual bool DriverGetBitFileInformation(BITFILE_INFO_STRUCT &outBitfileInfo, const NTV2BitFileType inBitfileType=NTV2_VideoProcBitFile)
Answers with the currently-installed bitfile information.
AUTOCIRCULATE_TRANSFER_STRUCT acTransfer
@ AJA_DebugStat_WaitForInterruptUartTx1
ULWord64 messageBusAddress
@ KSPROPERTY_AJAPROPS_AUTOCIRC_TRANSFER_EX
#define IOCTL_AJAPROPS_GETSETREGISTER
@ AJA_DebugStat_AutoCirculateXfer
AUTO_CIRC_COMMAND eCommand
@ AJA_DebugStat_WaitForInterruptUartTx2
virtual HANDLE GetInterruptEvent(const INTERRUPT_ENUMS eInterruptType)
virtual bool UnmapXena2Flash(void)
FRAME_STAMP_STRUCT frameStamp
virtual bool ConfigureSubscription(const bool bSubscribe, const INTERRUPT_ENUMS eInterruptType, PULWord &hSubcription)
struct AUTOCIRCULATE_TRANSFER_STATUS_STRUCT * PAUTOCIRCULATE_TRANSFER_STATUS_STRUCT
#define IOCTL_AJAPROPS_MAPMEMORY
All new NTV2 structs start with this common header.
virtual bool DriverSetBitFileInformation(const BITFILE_INFO_STRUCT &inBitfileInfo)
#define IOCTL_AJAPROPS_DMA
virtual bool MapXena2Flash(void)
Defines & structs shared between user-space and Windows kernel driver.
AUTOCIRCULATE_TASK_STRUCT acTask
@ KSPROPERTY_AJAPROPS_AUTOCIRC_FRAME
@ eTransferAutoCirculateEx
struct NTV2RegInfo NTV2RegInfo
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
virtual bool ConfigureInterrupt(const bool bEnable, const INTERRUPT_ENUMS eInterruptType)=0
#define IOCTL_AJAHEVC_MESSAGE
@ AJA_DebugStat_WaitForInterruptUartRx2
@ KSPROPERTY_AJAPROPS_AUTOCIRC_CONTROL_EX
#define IOCTL_AJAPROPS_AUTOCIRC_CAPTURE_TASK
PSP_DEVICE_INTERFACE_DETAIL_DATA _pspDevIFaceDetailData
NTV2Crosspoint channelSpec
virtual bool MapRegisters(void)
@ KSPROPERTY_AJAPROPS_AUTOCIRC_TRANSFER
@ AJA_DebugStat_WaitForInterruptIn7
Added to support 64 bit driver.
DMA_LOCKED_VEC _vecDmaLocked
virtual bool CompleteMemoryForDMA(ULWord *pFrameBuffer)
@ AJA_DebugStat_WaitForInterruptIn6
INTERRUPT_ENUMS eInterrupt
@ AJA_DebugStat_WaitForInterruptUartRx1
#define AJAVIDEO_NTV2_PROPSET
@ KSPROPERTY_AJAPROPS_NEWSUBSCRIPTIONS
ULWord _pRegisterBaseAddressLength
#define IOCTL_AJAPROPS_AUTOCIRC_TRANSFER_EX
@ KSPROPERTY_AJAPROPS_GETSETBITFILEINFO
ULWord ulVidSegmentHostPitch
NTV2RoutingTable acTransferRoute
@ AJA_DebugStat_WaitForInterruptOut1
virtual bool ConfigureSubscription(const bool bSubscribe, const INTERRUPT_ENUMS inInterruptType, PULWord &outSubcriptionHdl)
@ KSPROPERTY_AJAPROPS_DMA
@ KSPROPERTY_AJAPROPS_DMA_EX
ULWord ulVidSegmentHostPitch
NTV2Crosspoint channelSpec
ULWord * _pCh1FrameBaseAddress
@ KSPROPERTY_AJAPROPS_AUTOCIRC_CAPTURE_TASK
struct AUTOCIRCULATE_TRANSFER_STRUCT * PAUTOCIRCULATE_TRANSFER_STRUCT
virtual bool DmaUnlock(void)
@ KSPROPERTY_AJAPROPS_AUTOCIRC_TRANSFER_EX2
#define IOCTL_AJAPROPS_AUTOCIRC_TRANSFER
bool mRecordRegWrites
True if recording; otherwise false when not recording.
@ AJA_DebugStat_WriteRegister
Declares data types and structures used in NTV2 "nub" packets.
BITFILE_INFO_STRUCT bitFileInfoStruct
@ NTV2_MAPMEMORY_REGISTER
@ KSPROPERTY_AJAPROPS_AUTOCIRC_FRAME_EX2
@ AJA_DebugStat_DMATransfer
@ KSPROPERTY_AJAPROPS_DMA_P2P
AUTO_CIRC_COMMAND eCommand
NTV2Crosspoint channelSpec
Declares enums and structs used by all platform drivers and the SDK.
SP_DEVINFO_DATA _spDevInfoData
virtual bool AutoCirculate(AUTOCIRCULATE_DATA &pAutoCircData)
Sends an AutoCirculate command to the NTV2 driver.
virtual bool RestoreHardwareProcampRegisters(void)
virtual bool OpenLocalPhysical(const UWord inDeviceIndex)
Opens the local/physical device connection.
static bool GetShareMode(void)
ULWord * _pRegisterBaseAddress
AJALock mRegWritesLock
Guard mutex for mRegWrites.
@ eTransferAutoCirculateEx2
#define xHEX0N(__x__, __n__)
virtual void BumpEventCount(const INTERRUPT_ENUMS eInterruptType)
Atomically increments the event count tally for the given interrupt type.
@ AJA_DebugStat_WaitForInterruptIn1
AUTOCIRCULATE_TRANSFER_STRUCT acTransfer
ULWord ulVidSegmentCardPitch
AUTOCIRCULATE_TASK_STRUCT acTask
@ AJA_DebugStat_WaitForInterruptIn3
@ kVRegRestoreHardwareProcampRegisters
#define INVALID_HANDLE_VALUE
@ NTV2_MAPMEMORY_FRAMEBUFFER
@ AJA_DebugStat_WaitForInterruptIn4
ULWord * _pFrameBaseAddress
virtual bool DriverGetBitFileInformation(BITFILE_INFO_STRUCT &outBitFileInfo, const NTV2BitFileType inBitFileType=NTV2_VideoProcBitFile)
Answers with the currently-installed bitfile information.
#define IOCTL_AJAPROPS_NEWSUBSCRIPTIONS
virtual bool GetInterruptCount(const INTERRUPT_ENUMS eInterrupt, ULWord &outCount)
Answers with the number of interrupts of the given type processed by the driver.
virtual bool Close(void)
Closes me, releasing host resources that may have been allocated in a previous Open call.
Declares the AJADebug class.
virtual bool WriteRegister(const ULWord inRegNum, const ULWord inValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Physical device implementation of CNTV2DriverInterface::WriteRegister.
NTV2Crosspoint channelSpec
@ AJA_DebugStat_WaitForInterruptIn5
ULWord64 ullVideoBusAddress