// // Coreco API definitions. // #ifndef _CAPIDEF_H_ #define _CAPIDEF_H_ #include #include #include "cpackd.h" #define CORAPIFUNC #define CORAPIEXPORT #if COR_WIN32 && !defined(HOST_FIRMWARE) && !defined(_CORAPI_LOAD_MANUAL_) #undef CORAPIFUNC #undef CORAPIEXPORT #ifdef CORAPI_DEFINE_EXPORT #define CORAPIFUNC __declspec(dllexport) __stdcall #define CORAPIEXPORT __declspec(dllexport) #else #define CORAPIFUNC __declspec(dllimport) __stdcall #define CORAPIEXPORT __declspec(dllimport) #endif #endif #define CORPTR_FREE( ptr) \ if( ptr != NULL)\ {\ CorFree( ptr);\ ptr = NULL;\ } typedef struct COR_PACK { ULONG_PTR phys; PVOID pLinear; } CORADDRESS; /* Generic id */ #define CORHANDLE_TYPE_GENERIC 0xCCCC0000 /* Server id */ #define CORHANDLE_TYPE_SERVER 0xCCCC0040 /* Active resources handles id */ #define CORHANDLE_TYPE_SUBS_ACQ 0xCCCC0080 #define CORHANDLE_TYPE_SUBS_DISPLAY 0xCCCC0081 #define CORHANDLE_TYPE_SUBS_GRAB 0xCCCC0082 #define CORHANDLE_TYPE_SUBS_GRAPHIC 0xCCCC0083 #define CORHANDLE_TYPE_SUBS_PRO 0xCCCC0084 #define CORHANDLE_TYPE_SUBS_VIEW 0xCCCC0085 #define CORHANDLE_TYPE_SUBS_VIP 0xCCCC0086 #define CORHANDLE_TYPE_SUBS_XFER 0xCCCC0087 #define CORHANDLE_TYPE_SUBS_CAB 0xCCCC0088 #define CORHANDLE_TYPE_SUBS_PIXPRO 0xCCCC0089 #define CORHANDLE_TYPE_SUBS_GIO 0xCCCC008a #define CORHANDLE_TYPE_SUBS_COUNTER 0xCCCC008b #define CORHANDLE_TYPE_SUBS_ACQ2 0xCCCC008c #define CORHANDLE_TYPE_SUBS_SERIAL 0xCCCC008d #define CORHANDLE_TYPE_SUBS_ACQDEVICE 0xCCCC008e /* Passive resource handles id */ #define CORHANDLE_TYPE_RES_VIC 0xCCCC0100 #define CORHANDLE_TYPE_RES_BUFFER 0xCCCC0101 #define CORHANDLE_TYPE_RES_CAM 0xCCCC0102 #define CORHANDLE_TYPE_RES_KERNEL 0xCCCC0103 #define CORHANDLE_TYPE_RES_LUT 0xCCCC0104 #define CORHANDLE_TYPE_RES_VOC 0xCCCC0106 #define CORHANDLE_TYPE_RES_FILE 0xCCCC0107 #define CORHANDLE_TYPE_RES_OBJECT 0xCCCC0108 #define CORHANDLE_TYPE_RES_STREAM 0xCCCC0109 #define CORHANDLE_TYPE_RES_PARAM 0xCCCC010A #define CORHANDLE_TYPE_RES_EVENTINFO 0xCCCC010B #define CORHANDLE_TYPE_RES_FEATURE 0xCCCC010C #define CORHANDLE_TYPE_RES_MULTIBUFFER 0xCCCC010D /* Pci resource handle id */ #define CORHANDLE_TYPE_RES_PCI_DEVICE 0xCCCC0200 #define CORHANDLE_NULL NULL #define CORHANDLE_IS_EQUAL( handle1, handle2)\ (memcmp( handle1, handle2, sizeof( _CORHANDLE) - sizeof( void *)) == 0) #define CORHANDLE_IS_BAD_PTR( handle)\ ((handle) == CORHANDLE_NULL || CorIsBadReadPtr((handle), sizeof(_CORHANDLE))) #define CORHANDLE_IS_NULL( handle)\ (CORHANDLE_IS_BAD_PTR( handle) || CORHANDLE_TYPE( handle) == 0) #define CORHANDLE_ALLOC_EX( handle, extraSize, module) \ {\ if( (*(handle)= CorCalloc( 1, sizeof( _CORHANDLE) + extraSize)) == NULL)\ {\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_NO_MEMORY, CORSTATUS_MODULE_SERVER, module));\ }\ else\ {\ (*(handle))->localAddress= *(handle);\ }\ } #define CORHANDLE_ALLOC_MULTI_EX( handle, count, extraSize, module) \ {\ if( (handle[0]= CorCalloc( count, sizeof( _CORHANDLE) + extraSize)) == NULL)\ {\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_NO_MEMORY, CORSTATUS_MODULE_SERVER, module));\ }\ else\ {\ UINT32 _i = 0;\ for(_i = 0; _i < (count); _i++)\ {\ handle[_i] = (_CORHANDLE*)((char*)handle[0] + ((sizeof( _CORHANDLE) + extraSize) * _i));\ handle[_i]->localAddress= handle[_i];\ }\ }\ } #define CORHANDLE_ALLOC( handle, module) \ CORHANDLE_ALLOC_EX( handle, 0, module) #define CORHANDLE_ALLOC_MULTI( handle, count, module) \ CORHANDLE_ALLOC_MULTI_EX(handle, count, 0, module) #define CORHANDLE_FREE( handle) \ {\ CorFree( handle);\ handle= CORHANDLE_NULL;\ } #define CORHANDLE_COPY( pDst, pSrc)\ {\ if( pDst != NULL && pSrc == NULL)\ memset( pDst, 0, sizeof( _CORHANDLE));\ else if( pDst != NULL && pSrc != NULL)\ memcpy( pDst, pSrc, sizeof( _CORHANDLE));\ } #define CORHANDLE_LOCATION( hHandle) \ ((hHandle)->location) #define CORHANDLE_TYPE( hHandle) \ ((hHandle)->type) #define CORHANDLE_INFO( hHandle) \ ((hHandle)->address.pLinear) #define CORHANDLE_INFO_PHYSADDR( hHandle) \ ((hHandle)->address.phys) #define CORHANDLE_LOCAL_ADDRESS( hHandle) \ ((hHandle)->localAddress) #define CORHANDLE_LOCAL_INFO( hHandle) \ ((void *)((hHandle)+1)) #define CORHANDLE_ADDRESS( hHandle) \ hHandle // Note: This macro might need to be adapted in future versions of Sapera #if COR_I960 #define CORHANDLE_BOARD_INDEX(x) (0) #else #define CORHANDLE_BOARD_INDEX(x) (CorManIsSystemHandle(x) ? 0: (CorManIsMambaHandle(x) ? 0: (((CORHANDLE_LOCATION(x) >> 8) & 0xFF) - 1))) #endif #define CHECK_HANDLE_GENERIC( hHandle, module)\ {\ if( CORHANDLE_IS_BAD_PTR( hHandle) || CORHANDLE_TYPE( hHandle) != CORHANDLE_TYPE_GENERIC)\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, 0, module));\ } #define CHECK_HANDLE_SERVER( hServer, module)\ {\ if( CORHANDLE_IS_BAD_PTR( hServer) || CORHANDLE_TYPE( hServer) != CORHANDLE_TYPE_SERVER)\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, CORSTATUS_MODULE_SERVER, module));\ } #define CHECK_HANDLE( hHandle, hType, moduleId, module)\ {\ if( CORHANDLE_IS_BAD_PTR( hHandle) || CORHANDLE_TYPE( hHandle) != hType || CORHANDLE_INFO( hHandle) == 0)\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, moduleId, module));\ } #define CHECK_HANDLE_TYPE( hHandle, hType, moduleId, module)\ {\ if( CORHANDLE_IS_BAD_PTR( hHandle) || CORHANDLE_TYPE( hHandle) != hType)\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, moduleId, module));\ } #define CHECK_HANDLE_ANY_TYPE( hHandle, module)\ {\ if( CORHANDLE_IS_BAD_PTR( hHandle))\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, 0, module));\ } // Use these macros ONLY to check a handle inside its own module, otherwise use the VALIDATE macros. #define CHECK_HANDLE_ACQ( hAcq) CHECK_HANDLE( hAcq, CORHANDLE_TYPE_SUBS_ACQ, CORSTATUS_MODULE_ACQ, CORSTATUS_MODULE_ACQ) #define CHECK_HANDLE_DISPLAY( hDisplay) CHECK_HANDLE( hDisplay, CORHANDLE_TYPE_SUBS_DISPLAY, CORSTATUS_MODULE_DISPLAY, CORSTATUS_MODULE_DISPLAY) #define CHECK_HANDLE_GRAPHIC( hGraphic) CHECK_HANDLE( hGraphic, CORHANDLE_TYPE_SUBS_GRAPHIC, CORSTATUS_MODULE_GRAPHIC, CORSTATUS_MODULE_GRAPHIC) #define CHECK_HANDLE_PRO( hPro) CHECK_HANDLE( hPro, CORHANDLE_TYPE_SUBS_PRO, CORSTATUS_MODULE_PRO, CORSTATUS_MODULE_PRO) #define CHECK_HANDLE_XFER( hXfer) CHECK_HANDLE( hXfer, CORHANDLE_TYPE_SUBS_XFER, CORSTATUS_MODULE_XFER, CORSTATUS_MODULE_XFER) #define CHECK_HANDLE_CAB( hCAB) CHECK_HANDLE( hCAB, CORHANDLE_TYPE_SUBS_CAB, CORSTATUS_MODULE_CAB, CORSTATUS_MODULE_CAB) #define CHECK_HANDLE_PIXPRO( hPixPro) CHECK_HANDLE( hPixPro, CORHANDLE_TYPE_SUBS_PIXPRO, CORSTATUS_MODULE_PIXPRO, CORSTATUS_MODULE_PIXPRO) #define CHECK_HANDLE_VIC( hVIC) CHECK_HANDLE( hVIC, CORHANDLE_TYPE_RES_VIC, CORSTATUS_MODULE_VIC, CORSTATUS_MODULE_VIC) #define CHECK_HANDLE_BUFFER( hBuffer) CHECK_HANDLE( hBuffer, CORHANDLE_TYPE_RES_BUFFER, CORSTATUS_MODULE_BUFFER, CORSTATUS_MODULE_BUFFER) #define CHECK_HANDLE_CAM( hCam) CHECK_HANDLE( hCam, CORHANDLE_TYPE_RES_CAM, CORSTATUS_MODULE_CAM, CORSTATUS_MODULE_CAM) #define CHECK_HANDLE_KERNEL( hKernel) CHECK_HANDLE( hKernel, CORHANDLE_TYPE_RES_KERNEL, CORSTATUS_MODULE_KERNEL, CORSTATUS_MODULE_KERNEL) #define CHECK_HANDLE_LUT( hLut) CHECK_HANDLE( hLut, CORHANDLE_TYPE_RES_LUT, CORSTATUS_MODULE_LUT, CORSTATUS_MODULE_LUT) #define CHECK_HANDLE_VIEW( hView) CHECK_HANDLE( hView, CORHANDLE_TYPE_SUBS_VIEW, CORSTATUS_MODULE_VIEW, CORSTATUS_MODULE_VIEW) #define CHECK_HANDLE_VOC( hVOC) CHECK_HANDLE( hVOC, CORHANDLE_TYPE_RES_VOC, CORSTATUS_MODULE_VOC, CORSTATUS_MODULE_VOC) #define CHECK_HANDLE_PCI_DEVICE( hPciDevice) CHECK_HANDLE_TYPE( hPciDevice, CORHANDLE_TYPE_RES_PCI_DEVICE, CORSTATUS_MODULE_PCI, CORSTATUS_MODULE_PCI) #define CHECK_HANDLE_FILE( hFile) CHECK_HANDLE( hFile, CORHANDLE_TYPE_RES_FILE, CORSTATUS_MODULE_FILE, CORSTATUS_MODULE_FILE) #define CHECK_HANDLE_GIO( hGio) CHECK_HANDLE( hGio, CORHANDLE_TYPE_SUBS_GIO, CORSTATUS_MODULE_GIO, CORSTATUS_MODULE_GIO) #define CHECK_HANDLE_COUNTER( hCounter) CHECK_HANDLE( hCounter, CORHANDLE_TYPE_SUBS_COUNTER, CORSTATUS_MODULE_COUNTER, CORSTATUS_MODULE_COUNTER) #define CHECK_HANDLE_OBJECT( hObject) CHECK_HANDLE( hObject, CORHANDLE_TYPE_RES_OBJECT, CORSTATUS_MODULE_OBJECT, CORSTATUS_MODULE_OBJECT) #define CHECK_HANDLE_STREAM( hStream) CHECK_HANDLE( hStream, CORHANDLE_TYPE_RES_STREAM, CORSTATUS_MODULE_STREAM, CORSTATUS_MODULE_STREAM) #define CHECK_HANDLE_PARAM( hParam) CHECK_HANDLE( hParam, CORHANDLE_TYPE_RES_PARAM, CORSTATUS_MODULE_STREAM, CORSTATUS_MODULE_PARAM) #define CHECK_HANDLE_SERIAL( hSerial) CHECK_HANDLE( hSerial, CORHANDLE_TYPE_SUBS_SERIAL, CORSTATUS_MODULE_SERIAL, CORSTATUS_MODULE_SERIAL) #define CHECK_HANDLE_EVENTINFO( hEventInfo) CHECK_HANDLE( hEventInfo, CORHANDLE_TYPE_RES_EVENTINFO, CORSTATUS_MODULE_EVENTINFO, CORSTATUS_MODULE_EVENTINFO) #define CHECK_HANDLE_FEATURE( hFeature) CHECK_HANDLE( hFeature, CORHANDLE_TYPE_RES_FEATURE, CORSTATUS_MODULE_FEATURE, CORSTATUS_MODULE_FEATURE) #define CHECK_HANDLE_ACQDEVICE( hAcqDevice) CHECK_HANDLE( hAcqDevice, CORHANDLE_TYPE_SUBS_ACQDEVICE, CORSTATUS_MODULE_ACQDEVICE, CORSTATUS_MODULE_ACQDEVICE) // Use these macros when checking a handle inside or outside its own module. #define CHECK_HANDLE_ACQ_MOD( hAcq, module) CHECK_HANDLE( hAcq, CORHANDLE_TYPE_SUBS_ACQ, CORSTATUS_MODULE_ACQ, module) #define CHECK_HANDLE_DISPLAY_MOD( hDisplay, module) CHECK_HANDLE( hDisplay, CORHANDLE_TYPE_SUBS_DISPLAY, CORSTATUS_MODULE_DISPLAY, module) #define CHECK_HANDLE_GRAPHIC_MOD( hGraphic, module) CHECK_HANDLE( hGraphic, CORHANDLE_TYPE_SUBS_GRAPHIC, CORSTATUS_MODULE_GRAPHIC, module) #define CHECK_HANDLE_PRO_MOD( hPro, module) CHECK_HANDLE( hPro, CORHANDLE_TYPE_SUBS_PRO, CORSTATUS_MODULE_PRO, module) #define CHECK_HANDLE_XFER_MOD( hXfer, module) CHECK_HANDLE( hXfer, CORHANDLE_TYPE_SUBS_XFER, CORSTATUS_MODULE_XFER, module) #define CHECK_HANDLE_CAB_MOD( hCAB, module) CHECK_HANDLE( hCAB, CORHANDLE_TYPE_SUBS_CAB, CORSTATUS_MODULE_CAB, module) #define CHECK_HANDLE_PIXPRO_MOD( hPixPro, module) CHECK_HANDLE( hPixPro, CORHANDLE_TYPE_SUBS_PIXPRO, CORSTATUS_MODULE_PIXPRO, module) #define CHECK_HANDLE_VIC_MOD( hVIC, module) CHECK_HANDLE( hVIC, CORHANDLE_TYPE_RES_VIC, CORSTATUS_MODULE_VIC, module) #define CHECK_HANDLE_BUFFER_MOD( hBuffer, module) CHECK_HANDLE( hBuffer, CORHANDLE_TYPE_RES_BUFFER, CORSTATUS_MODULE_BUFFER, module) #define CHECK_HANDLE_CAM_MOD( hCam, module) CHECK_HANDLE( hCam, CORHANDLE_TYPE_RES_CAM, CORSTATUS_MODULE_CAM, module) #define CHECK_HANDLE_KERNEL_MOD( hKernel, module) CHECK_HANDLE( hKernel, CORHANDLE_TYPE_RES_KERNEL, CORSTATUS_MODULE_KERNEL, module) #define CHECK_HANDLE_LUT_MOD( hLut, module) CHECK_HANDLE( hLut, CORHANDLE_TYPE_RES_LUT, CORSTATUS_MODULE_LUT, module) #define CHECK_HANDLE_VIEW_MOD( hView, module) CHECK_HANDLE( hView, CORHANDLE_TYPE_SUBS_VIEW, CORSTATUS_MODULE_VIEW, module) #define CHECK_HANDLE_VOC_MOD( hVOC, module) CHECK_HANDLE( hVOC, CORHANDLE_TYPE_RES_VOC, CORSTATUS_MODULE_VOC, module) #define CHECK_HANDLE_PCI_DEVICE_MOD( hPciDevice, module) CHECK_HANDLE_TYPE( hPciDevice, CORHANDLE_TYPE_RES_PCI_DEVICE, CORSTATUS_MODULE_PCI, module) #define CHECK_HANDLE_FILE_MOD( hFile, module) CHECK_HANDLE( hFile, CORHANDLE_TYPE_RES_FILE, CORSTATUS_MODULE_FILE, module) #define CHECK_HANDLE_GIO_MOD( hGio, module) CHECK_HANDLE( hGio, CORHANDLE_TYPE_SUBS_GIO, CORSTATUS_MODULE_GIO, module) #define CHECK_HANDLE_COUNTER_MOD( hCounter, module) CHECK_HANDLE( hCounter, CORHANDLE_TYPE_SUBS_COUNTER, CORSTATUS_MODULE_COUNTER, module) #define CHECK_HANDLE_OBJECT_MOD( hObject, module) CHECK_HANDLE( hObject, CORHANDLE_TYPE_RES_OBJECT, CORSTATUS_MODULE_OBJECT, module) #define CHECK_HANDLE_STREAM_MOD( hStream, module) CHECK_HANDLE( hStream, CORHANDLE_TYPE_RES_STREAM, CORSTATUS_MODULE_STREAM, module) #define CHECK_HANDLE_PARAM_MOD( hParam, module) CHECK_HANDLE( hParam, CORHANDLE_TYPE_RES_PARAM, CORSTATUS_MODULE_PARAM, module) #define CHECK_HANDLE_SERIAL_MOD( hSerial, module) CHECK_HANDLE( hSerial, CORHANDLE_TYPE_SUBS_SERIAL, CORSTATUS_MODULE_SERIAL, module) #define CHECK_HANDLE_EVENTINFO_MOD( hEventInfo, module) CHECK_HANDLE( hEventInfo, CORHANDLE_TYPE_RES_EVENTINFO, CORSTATUS_MODULE_EVENTINFO, module) #define CHECK_HANDLE_FEATURE_MOD( hFeature, module) CHECK_HANDLE( hFeature, CORHANDLE_TYPE_RES_FEATURE, CORSTATUS_MODULE_FEATURE, module) #define CHECK_HANDLE_ACQDEVICE_MOD( hAcqDevice, module) CHECK_HANDLE( hAcqDevice, CORHANDLE_TYPE_SUBS_ACQDEVICE, CORSTATUS_MODULE_ACQDEVICE, module) #define CHECK_HANDLE_ISLOCAL( hHandle, nArg, module)\ {\ if( CorManIsSameLocation( hHandle) == FALSE)\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_ARG_INVALID, nArg, module));\ } #define CHECK_HANDLE_IS_ACCESSIBLE( hHandle, nArg, module)\ {\ if( CorManIsAccessibleLocation( hHandle) == FALSE)\ CORMANLOG_AND_RETURN( CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_ARG_INVALID, nArg, module));\ } // Use these macros ONLY to check a handle inside its own module, otherwise use the VALIDATE macros. #define CHECK_HANDLE_ISLOCAL_ACQ( hAcq, nArg) CHECK_HANDLE_ISLOCAL( hAcq, nArg, CORSTATUS_MODULE_ACQ) #define CHECK_HANDLE_ISLOCAL_DISPLAY( hDisplay, nArg) CHECK_HANDLE_ISLOCAL( hDisplay, nArg, CORSTATUS_MODULE_DISPLAY) #define CHECK_HANDLE_ISLOCAL_GRAPHIC( hGraphic, nArg) CHECK_HANDLE_ISLOCAL( hGraphic, nArg, CORSTATUS_MODULE_GRAPHIC) #define CHECK_HANDLE_ISLOCAL_PRO( hPro, nArg) CHECK_HANDLE_ISLOCAL( hPro, nArg, CORSTATUS_MODULE_PRO) #define CHECK_HANDLE_ISLOCAL_XFER( hXfer, nArg) CHECK_HANDLE_ISLOCAL( hXfer, nArg, CORSTATUS_MODULE_XFER) #define CHECK_HANDLE_ISLOCAL_CAB( hCAB, nArg) CHECK_HANDLE_ISLOCAL( hCAB, nArg, CORSTATUS_MODULE_CAB) #define CHECK_HANDLE_ISLOCAL_PIXPRO( hPixPro, nArg) CHECK_HANDLE_ISLOCAL( hPixPro, nArg, CORSTATUS_MODULE_PIXPRO) #define CHECK_HANDLE_ISLOCAL_VIC( hVIC, nArg) CHECK_HANDLE_ISLOCAL( hVIC, nArg, CORSTATUS_MODULE_VIC) #define CHECK_HANDLE_ISLOCAL_BUFFER( hBuffer, nArg) CHECK_HANDLE_ISLOCAL( hBuffer, nArg, CORSTATUS_MODULE_BUFFER) #define CHECK_HANDLE_ISLOCAL_CAM( hCam, nArg) CHECK_HANDLE_ISLOCAL( hCam, nArg, CORSTATUS_MODULE_CAM) #define CHECK_HANDLE_ISLOCAL_KERNEL( hKernel, nArg) CHECK_HANDLE_ISLOCAL( hKernel, nArg, CORSTATUS_MODULE_KERNEL) #define CHECK_HANDLE_ISLOCAL_LUT( hLut, nArg) CHECK_HANDLE_ISLOCAL( hLut, nArg, CORSTATUS_MODULE_LUT) #define CHECK_HANDLE_ISLOCAL_VIEW( hView, nArg) CHECK_HANDLE_ISLOCAL( hView, nArg, CORSTATUS_MODULE_VIEW) #define CHECK_HANDLE_ISLOCAL_VOC( hVOC, nArg) CHECK_HANDLE_ISLOCAL( hVOC, nArg, CORSTATUS_MODULE_VOC) #define CHECK_HANDLE_ISLOCAL_GIO( hGio, nArg) CHECK_HANDLE_ISLOCAL( hGio, nArg, CORSTATUS_MODULE_GIO) #define CHECK_HANDLE_ISLOCAL_COUNTER( hCounter, nArg) CHECK_HANDLE_ISLOCAL( hCounter, nArg, CORSTATUS_MODULE_COUNTER) #define CHECK_HANDLE_ISLOCAL_OBJECT( hObject, nArg) CHECK_HANDLE_ISLOCAL( hObject, nArg, CORSTATUS_MODULE_OBJECT) #define CHECK_HANDLE_ISLOCAL_STREAM( hStream, nArg) CHECK_HANDLE_ISLOCAL( hStream, nArg, CORSTATUS_MODULE_STREAM) #define CHECK_HANDLE_ISLOCAL_PARAM( hParam, nArg) CHECK_HANDLE_ISLOCAL( hParam, nArg, CORSTATUS_MODULE_PARAM) #define CHECK_HANDLE_ISLOCAL_SERIAL( hSerial, nArg) CHECK_HANDLE_ISLOCAL( hSerial, nArg, CORSTATUS_MODULE_SERIAL) #define CHECK_HANDLE_ISLOCAL_EVENTINFO( hEventInfo, nArg) CHECK_HANDLE_ISLOCAL( hEventInfo, nArg, CORSTATUS_MODULE_EVENTINFO) #define CHECK_HANDLE_ISLOCAL_FEATURE( hFeature, nArg) CHECK_HANDLE_ISLOCAL( hFeature, nArg, CORSTATUS_MODULE_FEATURE) #define CHECK_HANDLE_ISLOCAL_ACQDEVICE( hAcqDevice, nArg) CHECK_HANDLE_ISLOCAL( hAcqDevice, nArg, CORSTATUS_MODULE_ACQDEVICE) #define CHECK_HANDLE_IS_ACCESSIBLE_BUFFER( hBuffer, nArg) CHECK_HANDLE_IS_ACCESSIBLE( hBuffer, nArg, CORSTATUS_MODULE_BUFFER) // Use these macros when checking a handle inside or outside its own module. #define CHECK_HANDLE_ISLOCAL_MOD( hAcq, nArg, module) CHECK_HANDLE_ISLOCAL( hAcq, nArg, module) // // New method to be used // Example: status = VALIDATE_HANDLE( handle, type) // #define VALIDATE_HANDLE_GENERIC( hHandle)\ (CORHANDLE_IS_BAD_PTR( hHandle) || (CORHANDLE_TYPE( hHandle) != CORHANDLE_TYPE_GENERIC) ?\ CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, CORHANDLE_TYPE_GENERIC, 0):\ CORSTATUS_OK) #define VALIDATE_HANDLE_SERVER( hHandle)\ (CORHANDLE_IS_BAD_PTR( hHandle) || (CORHANDLE_TYPE( hHandle) != CORHANDLE_TYPE_SERVER) ?\ CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, CORHANDLE_TYPE_SERVER, 0):\ CORSTATUS_OK) #define VALIDATE_HANDLE( hHandle, hType)\ (CORHANDLE_IS_BAD_PTR( hHandle) || (CORHANDLE_TYPE( hHandle) != hType || CORHANDLE_INFO( hHandle) == 0) ?\ CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, hType, 0):\ CORSTATUS_OK) #define VALIDATE_HANDLE_TYPE( hHandle, hType)\ (CORHANDLE_IS_BAD_PTR( hHandle) || (CORHANDLE_TYPE( hHandle) != hType) ?\ CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, hType, 0):\ CORSTATUS_OK) #define VALIDATE_HANDLE_ANY_TYPE( hHandle)\ (CORHANDLE_IS_BAD_PTR( hHandle) ?\ CORSTATUS_BUILD( CORSTATUS_LEVEL_ERR, CORSTATUS_INVALID_HANDLE, 0, 0):\ CORSTATUS_OK) #define VALIDATE_HANDLE_ACQ2( hAcq) VALIDATE_HANDLE( hAcq, CORHANDLE_TYPE_SUBS_ACQ2) #define VALIDATE_HANDLE_ACQ1( hAcq) VALIDATE_HANDLE( hAcq, CORHANDLE_TYPE_SUBS_ACQ) #define VALIDATE_HANDLE_ACQ( hAcq) ((VALIDATE_HANDLE_ACQ1(hAcq)!=CORSTATUS_OK) ? VALIDATE_HANDLE_ACQ2(hAcq) : CORSTATUS_OK) #define VALIDATE_HANDLE_DISPLAY( hDisplay) VALIDATE_HANDLE( hDisplay, CORHANDLE_TYPE_SUBS_DISPLAY) #define VALIDATE_HANDLE_GRAPHIC( hGraphic) VALIDATE_HANDLE( hGraphic, CORHANDLE_TYPE_SUBS_GRAPHIC) #define VALIDATE_HANDLE_PRO( hPro) VALIDATE_HANDLE( hPro, CORHANDLE_TYPE_SUBS_PRO) #define VALIDATE_HANDLE_XFER( hXfer) VALIDATE_HANDLE( hXfer, CORHANDLE_TYPE_SUBS_XFER) #define VALIDATE_HANDLE_CAB( hCAB) VALIDATE_HANDLE( hCAB, CORHANDLE_TYPE_SUBS_CAB) #define VALIDATE_HANDLE_PIXPRO( hPixPro) VALIDATE_HANDLE( hPixPro, CORHANDLE_TYPE_SUBS_PIXPRO) #define VALIDATE_HANDLE_VIC( hVIC) VALIDATE_HANDLE( hVIC, CORHANDLE_TYPE_RES_VIC) #define VALIDATE_HANDLE_BUFFER( hBuffer) VALIDATE_HANDLE( hBuffer, CORHANDLE_TYPE_RES_BUFFER) #define VALIDATE_HANDLE_MULTIBUFFER(hBuffer) VALIDATE_HANDLE( hBuffer, CORHANDLE_TYPE_RES_MULTIBUFFER) #define VALIDATE_HANDLE_CAM( hCam) VALIDATE_HANDLE( hCam, CORHANDLE_TYPE_RES_CAM) #define VALIDATE_HANDLE_KERNEL( hKernel) VALIDATE_HANDLE( hKernel, CORHANDLE_TYPE_RES_KERNEL) #define VALIDATE_HANDLE_LUT( hLut) VALIDATE_HANDLE( hLut, CORHANDLE_TYPE_RES_LUT) #define VALIDATE_HANDLE_VIEW( hView) VALIDATE_HANDLE( hView, CORHANDLE_TYPE_SUBS_VIEW) #define VALIDATE_HANDLE_VOC( hVOC) VALIDATE_HANDLE( hVOC, CORHANDLE_TYPE_RES_VOC) #define VALIDATE_HANDLE_PCI_DEVICE( hPciDevice) VALIDATE_HANDLE_TYPE( hPciDevice, CORHANDLE_TYPE_RES_PCI_DEVICE) #define VALIDATE_HANDLE_FILE( hFile) VALIDATE_HANDLE( hFile, CORHANDLE_TYPE_RES_FILE) #define VALIDATE_HANDLE_GIO( hGio) VALIDATE_HANDLE( hGio, CORHANDLE_TYPE_SUBS_GIO) #define VALIDATE_HANDLE_COUNTER( hCounter) VALIDATE_HANDLE( hCounter, CORHANDLE_TYPE_SUBS_COUNTER) #define VALIDATE_HANDLE_OBJECT( hObject) VALIDATE_HANDLE( hObject, CORHANDLE_TYPE_RES_OBJECT) #define VALIDATE_HANDLE_STREAM( hStream) VALIDATE_HANDLE( hStream, CORHANDLE_TYPE_RES_STREAM) #define VALIDATE_HANDLE_PARAM( hParam) VALIDATE_HANDLE( hParam, CORHANDLE_TYPE_RES_PARAM) #define VALIDATE_HANDLE_SERIAL( hSerial) VALIDATE_HANDLE( hSerial, CORHANDLE_TYPE_SUBS_SERIAL) #define VALIDATE_HANDLE_EVENTINFO( hEventInfo) VALIDATE_HANDLE( hEventInfo, CORHANDLE_TYPE_RES_EVENTINFO) #define VALIDATE_HANDLE_FEATURE( hFeature) VALIDATE_HANDLE( hFeature, CORHANDLE_TYPE_RES_FEATURE) #define VALIDATE_HANDLE_ACQDEVICE( hAcqDevice) VALIDATE_HANDLE( hAcqDevice, CORHANDLE_TYPE_SUBS_ACQDEVICE) //#define VALIDATE_HANDLE_MULTIBUFFER( hMultiBuffer) VALIDATE_HANDLE( hMultiBuffer, CORHANDLE_TYPE_RES_MULTIBUFFER) typedef struct COR_PACK __CORHANDLE { UINT32 location; CORADDRESS address; UINT32 type; struct __CORHANDLE * localAddress; } _CORHANDLE, *CORHANDLE, **PCORHANDLE; typedef struct COR_PACK { UINT32 left; UINT32 top; UINT32 height; UINT32 length; } CORWINDOW, *PCORWINDOW; typedef _CORHANDLE _CORSERVER, *CORSERVER, **PCORSERVER; typedef _CORHANDLE _CORPCIDEVICE, *CORPCIDEVICE, **PCORPCIDEVICE; #define CORSERVER_MAX_NUMBER 1024 #define CORSERVER_MAX_STRLEN 30 #define CORHANDLE_MAX_NUMBER 256 #define CORHANDLE_MAX_STRLEN 30 /* Subsystems */ typedef _CORHANDLE _CORACQ, *CORACQ, **PCORACQ; typedef _CORHANDLE _CORDISPLAY, *CORDISPLAY, **PCORDISPLAY; typedef _CORHANDLE _CORGRAPHIC, *CORGRAPHIC, **PCORGRAPHIC; typedef _CORHANDLE _CORPRO, *CORPRO, **PCORPRO; typedef _CORHANDLE _CORXFER, *CORXFER, **PCORXFER; typedef _CORHANDLE _CORCAB, *CORCAB, **PCORCAB; typedef _CORHANDLE _CORPIXPRO, *CORPIXPRO, **PCORPIXPRO; typedef _CORHANDLE _CORGIO, *CORGIO, **PCORGIO; typedef _CORHANDLE _CORCOUNTER, *CORCOUNTER, **PCORCOUNTER; typedef _CORHANDLE _CORSERIAL, *CORSERIAL, **PCORSERIAL; typedef _CORHANDLE _CORACQDEVICE, *CORACQDEVICE, **PCORACQDEVICE; /* Passives ressources */ typedef _CORHANDLE _CORBUFFER, *CORBUFFER, **PCORBUFFER; typedef _CORHANDLE _CORBUFFERMULTI, *CORBUFFERMULTI, **PCORBUFFERMULTI; typedef _CORHANDLE _CORVIC, *CORVIC, **PCORVIC; typedef _CORHANDLE _CORCAM, *CORCAM, **PCORCAM; typedef _CORHANDLE _CORKERNEL, *CORKERNEL, **PCORKERNEL; typedef _CORHANDLE _CORLUT, *CORLUT, **PCORLUT; typedef _CORHANDLE _CORVIEW, *CORVIEW, **PCORVIEW; typedef _CORHANDLE _CORFILE, *CORFILE, **PCORFILE; typedef _CORHANDLE _COROBJECT, *COROBJECT, **PCOROBJECT; typedef _CORHANDLE _CORARRAY, *CORARRAY, **PCORARRAY; // obsolete typedef _CORHANDLE _CORSTREAM, *CORSTREAM, **PCORSTREAM; typedef _CORHANDLE _CORPARAM, *CORPARAM, **PCORPARAM; typedef _CORHANDLE _COREVENTINFO, *COREVENTINFO, **PCOREVENTINFO; typedef _CORHANDLE _CORFEATURE, *CORFEATURE, **PCORFEATURE; /* General data types definitions */ typedef UINT32 CORINFOMSGTYPE; typedef ULONG_PTR CORTRANSAC; typedef void* CORFUNCHANDLER; typedef HANDLE COREVENT; typedef CORSTATUS (CCONV *PCORCALLBACK)( void *context, UINT32 eventType, UINT32 eventCount); typedef CORSTATUS (CCONV *PCORMANCALLBACK)( UINT32 cmd, void *inData, UINT32 inDataSize, void *outData, UINT32 outDataSize); typedef CORSTATUS (CCONV *PCORMSGCALLBACK)( UINT32 cmd, void *inData, UINT32 inDataSize, void *outData, UINT32 outDataSize, void *context); typedef CORSTATUS (CCONV *PCOREVENTINFOCALLBACK)(void* context, COREVENTINFO hEventInfo); /* Buffer data types definitions */ // (32-bit format descriptor) //------------------------------------------------------------------------------- // Bits Description //------------------------------------------------------------------------------- // 0-7: WiT compatible type (used by Sapera Processing 4.2 and previous) // 8-15: Number of bits per pixel // 16-21: Index (used by internal implementation as an index to function table) // 22-23: Planar type (specifies the type color space on planar formats) // 22-23: Color alignement for bicolor and bayer format // 24-27: Number of pages (specifies the number of pages of planar formats) // 24-27: Number of formats (for multi-format buffer types like RGB-IR) // 28: Sign (used by monochrome formats) // 29: Interlacing (used by LUT formats) // 30: Color (true if it's a color format) // 31: Not used //------------------------------------------------------------------------------- #define CORDATA_FORMAT_MAX 36 #define CORDATA_FORMAT( nPages, index, nBits)\ (((nPages) << 24) | ((index) << 16) | (nBits << 8)) // Bit fields // Color: bit 30 #define CORDATA_FORMAT_MONO 0x00000000 #define CORDATA_FORMAT_COLOR 0x40000000 // Interlacing: bit 29 #define CORDATA_FORMAT_NINTRL 0x00000000 #define CORDATA_FORMAT_INTRL 0x20000000 // Sign: bit 28 #define CORDATA_FORMAT_UNSIGNED 0x00000000 #define CORDATA_FORMAT_SIGNED 0x10000000 // Planar type: bits 22-23 #define CORDATA_FORMAT_PLANAR_TYPE_RGB 0x00000000 // 00 #define CORDATA_FORMAT_PLANAR_TYPE_YUV 0x00400000 // 01 #define CORDATA_FORMAT_PLANAR_TYPE_HSV 0x00800000 // 10 #define CORDATA_FORMAT_PLANAR_TYPE_HSI 0x00C00000 // 11 // Note that we only have two bits for the planar type definition. Since the HSV format // is currently not used in Sapera LT, we use the two bits for LAB instead. If we ever // need a planar HSV format, however, we will have a problem, as the CORDATA_FORMAT // values for planar HSV and planar LAB are the same. #define CORDATA_FORMAT_PLANAR_TYPE_LAB CORDATA_FORMAT_PLANAR_TYPE_HSV #define CORDATA_FORMAT_COLORI (CORDATA_FORMAT_COLOR | CORDATA_FORMAT_INTRL) #define CORDATA_FORMAT_COLORNI (CORDATA_FORMAT_COLOR | CORDATA_FORMAT_NINTRL) // Monochrome data formats #define CORDATA_FORMAT_MONO8 CORDATA_FORMAT( 1, 1, 8) #define CORDATA_FORMAT_INT8 (CORDATA_FORMAT_MONO8 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT8 (CORDATA_FORMAT_MONO8 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO16 CORDATA_FORMAT( 1, 2, 16) #define CORDATA_FORMAT_INT16 (CORDATA_FORMAT_MONO16 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT16 (CORDATA_FORMAT_MONO16 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO24 CORDATA_FORMAT( 1, 3, 24) #define CORDATA_FORMAT_INT24 (CORDATA_FORMAT_MONO24 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT24 (CORDATA_FORMAT_MONO24 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO32 CORDATA_FORMAT( 1, 4, 32) #define CORDATA_FORMAT_INT32 (CORDATA_FORMAT_MONO32 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT32 (CORDATA_FORMAT_MONO32 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO64 CORDATA_FORMAT( 1, 5, 64) #define CORDATA_FORMAT_INT64 (CORDATA_FORMAT_MONO64 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT64 (CORDATA_FORMAT_MONO64 | CORDATA_FORMAT_UNSIGNED) // Color RGB data formats #define CORDATA_FORMAT_RGB5551 (CORDATA_FORMAT( 1, 6, 16) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB565 (CORDATA_FORMAT( 1, 7, 16) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB888 (CORDATA_FORMAT( 1, 8, 24) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB8888 (CORDATA_FORMAT( 1, 9, 32) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB101010 (CORDATA_FORMAT( 1, 10, 32) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB161616 (CORDATA_FORMAT( 1, 11, 48) | CORDATA_FORMAT_COLORI) // CORDATA_FORMAT_RGB16161616 defined below // Color HSV data formats #define CORDATA_FORMAT_HSV (CORDATA_FORMAT( 1, 12, 32) | CORDATA_FORMAT_COLORI) // Color YUV data formats // these 4:2:2 #define CORDATA_FORMAT_UYVY (CORDATA_FORMAT( 1, 13, 16) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_YUY2 (CORDATA_FORMAT( 1, 14, 16) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_YVYU (CORDATA_FORMAT( 1, 15, 16) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_YUYV (CORDATA_FORMAT( 1, 16, 16) | CORDATA_FORMAT_COLORI) //4:1:1 also known as Y41P #define CORDATA_FORMAT_Y411 (CORDATA_FORMAT( 1, 17, 12) | CORDATA_FORMAT_COLORI) //2:1:1 #define CORDATA_FORMAT_Y211 (CORDATA_FORMAT( 1, 18, 12) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_YUV (CORDATA_FORMAT( 1, 19, 32) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_AYUV CORDATA_FORMAT_YUV // Other data formats #define CORDATA_FORMAT_FLOAT (CORDATA_FORMAT( 1, 20, 32) | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_COMPLEX (CORDATA_FORMAT( 1, 21, 64) | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_POINT (CORDATA_FORMAT( 1, 22, 64) | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_FPOINT (CORDATA_FORMAT( 1, 23, 64) | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_MONO1 (CORDATA_FORMAT( 1, 24, 1)) #define CORDATA_FORMAT_UINT1 (CORDATA_FORMAT_MONO1 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_BINARY CORDATA_FORMAT_UINT1 #define CORDATA_FORMAT_HSI (CORDATA_FORMAT( 1, 25, 32) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_IYU1 CORDATA_FORMAT_Y411 #define CORDATA_FORMAT_IYU2 (CORDATA_FORMAT( 1, 26, 24) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB16161616 (CORDATA_FORMAT( 1, 27, 64) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_LAB (CORDATA_FORMAT( 1, 28, 32) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_LAB16161616 (CORDATA_FORMAT( 1, 29, 64) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_LAB101010 (CORDATA_FORMAT( 1, 30, 32) | CORDATA_FORMAT_COLORI) // Color RGB data format with components ordered as R -> G -> B // The RGB888 format has components ordered as B -> G -> R #define CORDATA_FORMAT_RGBR888 (CORDATA_FORMAT( 1, 31, 24) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_BICOLOR88 (CORDATA_FORMAT( 1, 32, 16) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_BICOLOR1616 (CORDATA_FORMAT( 1, 33, 32) | CORDATA_FORMAT_COLORI) // Multispectral RGB-IR formats #define CORDATA_FORMAT_RGB888_MONO8 (CORDATA_FORMAT( 2, 34, 32) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_RGB161616_MONO16 (CORDATA_FORMAT( 2, 35, 64) | CORDATA_FORMAT_COLORI) // add new format here! // Planar formats (those formats reuse monochrome indexes) #define CORDATA_FORMAT_RGBP8 (CORDATA_FORMAT( 3, 1, 8) | CORDATA_FORMAT_PLANAR_TYPE_RGB) #define CORDATA_FORMAT_RGBP16 (CORDATA_FORMAT( 3, 2, 16) | CORDATA_FORMAT_PLANAR_TYPE_RGB) #define CORDATA_FORMAT_YUVP8 (CORDATA_FORMAT( 3, 1, 8) | CORDATA_FORMAT_PLANAR_TYPE_YUV) #define CORDATA_FORMAT_YUVP16 (CORDATA_FORMAT( 3, 2, 16) | CORDATA_FORMAT_PLANAR_TYPE_YUV) #define CORDATA_FORMAT_HSVP8 (CORDATA_FORMAT( 3, 1, 8) | CORDATA_FORMAT_PLANAR_TYPE_HSV) #define CORDATA_FORMAT_HSVP16 (CORDATA_FORMAT( 3, 2, 16) | CORDATA_FORMAT_PLANAR_TYPE_HSV) #define CORDATA_FORMAT_HSIP8 (CORDATA_FORMAT( 3, 1, 8) | CORDATA_FORMAT_PLANAR_TYPE_HSI) #define CORDATA_FORMAT_HSIP16 (CORDATA_FORMAT( 3, 2, 16) | CORDATA_FORMAT_PLANAR_TYPE_HSI) #define CORDATA_FORMAT_LABP8 (CORDATA_FORMAT( 3, 1, 8) | CORDATA_FORMAT_PLANAR_TYPE_LAB) #define CORDATA_FORMAT_LABP16 (CORDATA_FORMAT( 3, 2, 16) | CORDATA_FORMAT_PLANAR_TYPE_LAB) // Data formats used by LUT #define CORDATA_FORMAT_MONO9 CORDATA_FORMAT( 1, 0, 9) #define CORDATA_FORMAT_INT9 (CORDATA_FORMAT_MONO9 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT9 (CORDATA_FORMAT_MONO9 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO10 CORDATA_FORMAT( 1, 0, 10) #define CORDATA_FORMAT_INT10 (CORDATA_FORMAT_MONO10 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT10 (CORDATA_FORMAT_MONO10 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO11 CORDATA_FORMAT( 1, 0, 11) #define CORDATA_FORMAT_INT11 (CORDATA_FORMAT_MONO11 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT11 (CORDATA_FORMAT_MONO11 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO12 CORDATA_FORMAT( 1, 0, 12) #define CORDATA_FORMAT_INT12 (CORDATA_FORMAT_MONO12 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT12 (CORDATA_FORMAT_MONO12 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO13 CORDATA_FORMAT( 1, 0, 13) #define CORDATA_FORMAT_INT13 (CORDATA_FORMAT_MONO13 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT13 (CORDATA_FORMAT_MONO13 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO14 CORDATA_FORMAT( 1, 0, 14) #define CORDATA_FORMAT_INT14 (CORDATA_FORMAT_MONO14 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT14 (CORDATA_FORMAT_MONO14 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_MONO15 CORDATA_FORMAT( 1, 0, 15) #define CORDATA_FORMAT_INT15 (CORDATA_FORMAT_MONO15 | CORDATA_FORMAT_SIGNED) #define CORDATA_FORMAT_UINT15 (CORDATA_FORMAT_MONO15 | CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_COLORI8 (CORDATA_FORMAT( 1, 0, 24) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI9 (CORDATA_FORMAT( 1, 0, 27) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI10 (CORDATA_FORMAT( 1, 0, 30) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI11 (CORDATA_FORMAT( 1, 0, 33) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI12 (CORDATA_FORMAT( 1, 0, 36) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI13 (CORDATA_FORMAT( 1, 0, 39) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI14 (CORDATA_FORMAT( 1, 0, 42) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI15 (CORDATA_FORMAT( 1, 0, 45) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORI16 (CORDATA_FORMAT( 1, 0, 48) | CORDATA_FORMAT_COLORI) #define CORDATA_FORMAT_COLORNI8 (CORDATA_FORMAT( 3, 0, 8) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI9 (CORDATA_FORMAT( 3, 0, 9) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI10 (CORDATA_FORMAT( 3, 0, 10) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI11 (CORDATA_FORMAT( 3, 0, 11) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI12 (CORDATA_FORMAT( 3, 0, 12) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI13 (CORDATA_FORMAT( 3, 0, 13) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI14 (CORDATA_FORMAT( 3, 0, 14) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI15 (CORDATA_FORMAT( 3, 0, 15) | CORDATA_FORMAT_COLORNI) #define CORDATA_FORMAT_COLORNI16 (CORDATA_FORMAT( 3, 0, 16) | CORDATA_FORMAT_COLORNI) // Macros to access bitfield information #define CORDATA_FORMAT_DATADEPTH(format) (((format) >> 8) & 0xFF) #define CORDATA_FORMAT_INDEX(format) (((format) >> 16) & 0x3F) #define CORDATA_FORMAT_PLANAR_TYPE(format) (((format) >> 22) & 0x03) #define CORDATA_FORMAT_NPAGES(format) (((format) >> 24) & 0x0F) #define CORDATA_FORMAT_IS_SIGNED(format) (((format) & CORDATA_FORMAT_SIGNED)? CORDATA_FORMAT_SIGNED: CORDATA_FORMAT_UNSIGNED) #define CORDATA_FORMAT_IS_INTRL( format) (((format) & CORDATA_FORMAT_INTRL)? TRUE: FALSE) #define CORDATA_FORMAT_IS_COLOR( format) (((format) & CORDATA_FORMAT_COLOR)? TRUE: FALSE) #define CORDATA_FORMAT_SET_SIGN( format, sign)\ {\ if (CORDATA_FORMAT_IS_MONO(format))\ {\ (format) = (format) & ~CORDATA_FORMAT_SIGNED;\ (format) = (format) | (sign);\ }\ } #define CORDATA_FORMAT_PLANE(format) (CORDATA_FORMAT_NPAGES(format)) #define CORDATA_FORMAT_DATASIZE(format) ((CORDATA_FORMAT_DATADEPTH(format) + 7) >> 3) #define CORDATA_FORMAT_ALIGNMENT(format) ((format) & 0x00C00000) #define CORDATA_FORMAT_IS_MULTI(x) ( \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB888_MONO8)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB161616_MONO16))) #define CORDATA_FORMAT_IS_RGB(x) ( \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB5551)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB565)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB888)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGBR888)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB8888)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB101010))|| \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB161616)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_RGB16161616))) #define CORDATA_FORMAT_IS_BICOLOR(x) ( \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_BICOLOR88)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_BICOLOR1616))) #define CORDATA_FORMAT_IS_YUV(x) ( \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_UYVY)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_YUY2)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_YVYU)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_YUYV)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_Y411)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_Y211)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_IYU1)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_IYU2)) || \ (CORDATA_FORMAT_INDEX(x) == CORDATA_FORMAT_INDEX(CORDATA_FORMAT_YUV))) #define CORDATA_FORMAT_IS_MONO(x) ( \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO1)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO8)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO9)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO10)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO11)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO12)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO13)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO14)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO15)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO16)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO24)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO32)) || \ (CORDATA_FORMAT_INDEX( x) == CORDATA_FORMAT_INDEX( CORDATA_FORMAT_MONO64))) /* Gray-level limits macros */ #define CORDATA_MININT8 (0) #define CORDATA_MAXINT8 (255) #define CORDATA_MIDINT8 (128) #define CORDATA_NEGINT8 (-128) #define CORDATA_POSINT8 (127) #define CORDATA_MININT16 (0) #define CORDATA_MAXINT16 (65535) #define CORDATA_MIDINT16 (32768) #define CORDATA_NEGINT16 (-32768) #define CORDATA_POSINT16 (32767) #define CORDATA_MININT32 (0) #define CORDATA_MAXINT32 (4294967295) #define CORDATA_MIDINT32 (2147483648) #define CORDATA_NEGINT32 (-2147483647-1) #define CORDATA_POSINT32 (2147483647) /* Processing-specific data formats */ #define CORDATA_MIN(format) ((INT32) ( \ format == CORDATA_FORMAT_INT8 ? CORDATA_NEGINT8 : \ format == CORDATA_FORMAT_UINT8 ? CORDATA_MININT8 : \ format == CORDATA_FORMAT_INT16 ? CORDATA_NEGINT16 : \ format == CORDATA_FORMAT_UINT16 ? CORDATA_MININT16 : \ format == CORDATA_FORMAT_INT32 ? CORDATA_NEGINT32 : \ format == CORDATA_FORMAT_UINT32 ? CORDATA_MININT32 : 0)) #define CORDATA_MAX(format) ((INT32) ( \ format == CORDATA_FORMAT_INT8 ? CORDATA_POSINT8 : \ format == CORDATA_FORMAT_UINT8 ? CORDATA_MAXINT8 : \ format == CORDATA_FORMAT_INT16 ? CORDATA_POSINT16 : \ format == CORDATA_FORMAT_UINT16 ? CORDATA_MAXINT16 : \ format == CORDATA_FORMAT_INT32 ? CORDATA_POSINT32 : \ format == CORDATA_FORMAT_UINT32 ? CORDATA_MAXINT32 : 0)) #define CORDATA_MID(format) ((INT32) ( \ format == CORDATA_FORMAT_INT8 ? CORDATA_MIDINT8 : \ format == CORDATA_FORMAT_UINT8 ? CORDATA_MIDINT8 : \ format == CORDATA_FORMAT_INT16 ? CORDATA_MIDINT16 : \ format == CORDATA_FORMAT_UINT16 ? CORDATA_MIDINT16 : \ format == CORDATA_FORMAT_INT32 ? CORDATA_MIDINT32 : \ format == CORDATA_FORMAT_UINT32 ? CORDATA_MIDINT32 : 0)) /* General Data Structure */ typedef union COR_PACK { INT32 mono; struct { INT32 red; INT32 green; INT32 blue; } rgb; struct { INT32 h; INT32 s; INT32 i; } hsi; struct { INT32 l; INT32 a; INT32 b; } lab; struct { INT32 h; INT32 s; INT32 v; } hsv; struct { INT32 y; INT32 u; INT32 v; } yuv; struct { INT32 x; INT32 y; } point; FLOAT flt; struct { UINT16 alpha; UINT16 red; UINT16 green; UINT16 blue; } rgba; struct { UINT16 alpha; UINT16 l; UINT16 a; UINT16 b; } laba; struct { FLOAT real; FLOAT imag; } cplx; struct { FLOAT x; FLOAT y; } fpoint; struct { FLOAT red; FLOAT green; FLOAT blue; } frgb; } CORDATA, *PCORDATA; /* Point */ typedef struct COR_PACK { INT32 x; /* x coordinate */ INT32 y; /* y coordinate */ } CORDATAINFO_POINT, *PCORDATAINFO_POINT; /* Fpoint */ typedef struct COR_PACK { FLOAT x; /* x coordinate */ FLOAT y; /* y coordinate */ } CORDATAINFO_FPOINT, *PCORDATAINFO_FPOINT; /* Capabilities */ #define CORCAP_GETSIZE( cap) ((cap) & 0xFFFF) #define CORCAP_GETID( cap) (((cap) >> 16) & 0xFFFF) /* Parameters */ #define CORPRM_GETSIZE( prm) ((prm) & 0xFFFF) #define CORPRM_GETID( prm) (((prm) >> 16) & 0xFFFF) /* Ports */ #define CORPORT_TYPE_USER1 0 #define CORPORT_TYPE_USER2 1 #define CORPORT_TYPE_USER3 2 #define CORPORT_TYPE_USER4 3 #define CORPORT_TYPE_TCPIP 4 #define CORPORT_TYPE_HOST 5 #define CORPORT_TYPE_COBRA 6 #define CORPORT_TYPE_COBRAHOST 7 #define CORPORT_TYPE_COBRAC60 8 #define CORPORT_TYPE_PYTHON 9 #define CORPORT_TYPE_VIPERRGB 10 #define CORPORT_TYPE_VIPERDIG 11 #define CORPORT_TYPE_ICESTORM 12 #define CORPORT_TYPE_VIPERQUAD 13 #define CORPORT_TYPE_X64AN2 14 // Old Rebel entry #define CORPORT_TYPE_X64ANX2 15 // Old Rebel Host entry #define CORPORT_TYPE_MAMBA 16 #define CORPORT_TYPE_MAMBAHOST 17 #define CORPORT_TYPE_WIN32_P1 18 #define CORPORT_TYPE_WIN32_P2 19 #define CORPORT_TYPE_WIN32_P3 20 #define CORPORT_TYPE_WIN32_P4 21 #define CORPORT_TYPE_WIN32_P5 22 #define CORPORT_TYPE_WIN32_P6 23 #define CORPORT_TYPE_WIN32_P7 24 #define CORPORT_TYPE_WIN32_P8 25 #define CORPORT_TYPE_BANDITII 26 #define CORPORT_TYPE_BANDITIIHOST 27 #define CORPORT_TYPE_VIPERCAMLINK 28 #define CORPORT_TYPE_X64 29 #define CORPORT_TYPE_X64HOST 30 #define CORPORT_TYPE_X64AN 31 #define CORPORT_TYPE_BOARD_NAME 32 // Used by Driver Template Example. #define CORPORT_TYPE_PC2C 33 #define CORPORT_TYPE_PC2V 34 #define CORPORT_TYPE_X64LVDS 35 #define CORPORT_TYPE_X64LVDSHOST 36 #define CORPORT_TYPE_WIN32_P9 37 #define CORPORT_TYPE_WIN32_P10 38 #define CORPORT_TYPE_WIN32_P11 39 #define CORPORT_TYPE_WIN32_P12 40 #define CORPORT_TYPE_WIN32_P13 41 #define CORPORT_TYPE_WIN32_P14 42 #define CORPORT_TYPE_WIN32_P15 43 #define CORPORT_TYPE_WIN32_P16 44 #define CORPORT_TYPE_ANACONDA 45 #define CORPORT_TYPE_ANACONDAHOST 46 #define CORPORT_TYPE_PC2V_NS 47 #define CORPORT_TYPE_NEXUS 48 #define CORPORT_TYPE_X64CHL 49 #define CORPORT_TYPE_ARIES 50 #define CORPORT_TYPE_X64NS 51 #define CORPORT_TYPE_X64IPRO 52 #define CORPORT_TYPE_ANACONDALVDS 53 // Port type 54 is now obsolete #define CORPORT_TYPE_X64IPROE 55 #define CORPORT_TYPE_XRICL 56 #define CORPORT_TYPE_XRILVDS 57 #define CORPORT_TYPE_X64INET 58 #define CORPORT_TYPE_NEXUSCV 59 #define CORPORT_TYPE_CAMGIGE 60 #define CORPORT_TYPE_X64CZM 61 #define CORPORT_TYPE_X64IPROE4X 62 // Next definitions are there so they can be used for new boards #define CORPORT_TYPE_PC2COMP 63 #define CORPORT_TYPE_XCELERAL4X 64 #define CORPORT_TYPE_XCELERAV4XCL 65 #define CORPORT_TYPE_XCELERAV4XLVDS 66 #define CORPORT_TYPE_XCELERAPX4LVDS 67 #define CORPORT_TYPE_XCELERAXRICL 68 #define CORPORT_TYPE_XCELERAXRILVDS 69 #define CORPORT_TYPE_X64ANLX1 70 #define CORPORT_TYPE_XCELERALX1CL 71 #define CORPORT_TYPE_XCELERAHSPX8 72 #define CORPORT_TYPE_XCELERACLpPX8 73 #define CORPORT_TYPE_BUNGEECLPX4 74 #define CORPORT_TYPE_WIN32_P17 75 #define CORPORT_TYPE_WIN32_P18 76 #define CORPORT_TYPE_WIN32_P19 77 #define CORPORT_TYPE_WIN32_P20 78 #define CORPORT_TYPE_WIN32_P21 79 #define CORPORT_TYPE_WIN32_P22 80 #define CORPORT_TYPE_WIN32_P23 81 #define CORPORT_TYPE_WIN32_P24 82 #define CORPORT_TYPE_WIN32_P25 83 #define CORPORT_TYPE_WIN32_P26 84 #define CORPORT_TYPE_WIN32_P27 85 #define CORPORT_TYPE_WIN32_P28 86 #define CORPORT_TYPE_WIN32_P29 87 #define CORPORT_TYPE_WIN32_P30 88 #define CORPORT_TYPE_WIN32_P31 89 #define CORPORT_TYPE_WIN32_P32 90 #define CORPORT_TYPE_BUNGEECLPX4OPTO 91 #define CORPORT_TYPE_CLPROTOCOL 92 #define CORPORT_TYPE_XCELERACLPX8 93 #define CORPORT_TYPE_XCELERACLHSPX8 94 #define CORPORT_TYPE_BUNGEELVDSLX1 95 #define CORPORT_TYPE_XTIUMCLHSPX8 96 #define CORPORT_TYPE_XTIUMCLPX4 97 #define CORPORT_TYPE_XTIUMCXPPX8 98 #define CORPORT_TYPE_XTIUMCLHSPX4 99 #define CORPORT_TYPE_XTIUMSFPMPX4 100 #define CORPORT_TYPE_XTIUMSFPXPX4 101 #define CORPORT_TYPE_XTIUMCLMX4 102 // Add new ports in numerical order above #define CORPORT_TYPE_RESERVE_LAST 255 #define CORPORT_TYPE_FIRST CORPORT_TYPE_USER1 #define CORPORT_TYPE_LAST CORPORT_TYPE_RESERVE_LAST #define CORPORT_TYPE_NTYPES (CORPORT_TYPE_LAST - CORPORT_TYPE_FIRST + 1) /* STEP */ #define CORSTEP_INCREMENT_LINEAR 0x10000000 #define CORSTEP_INCREMENT_EXPONENTIAL 0x20000000 #define CORSTEP_INCREMENT_VALUE_MASK 0x0FFFFFFF /* Signals */ #define CORSIGNAL_ACTIVE_LOW 0x00000001 #define CORSIGNAL_ACTIVE_HIGH 0x00000002 #define CORSIGNAL_RISING_EDGE 0x00000004 #define CORSIGNAL_FALLING_EDGE 0x00000008 #define CORSIGNAL_BOTH_EDGE 0x00000010 #define CORSIGNAL_DOUBLE_PULSE_RISING_EDGE 0x00000020 #define CORSIGNAL_DOUBLE_PULSE_FALLING_EDGE 0x00000040 #define CORSIGNAL_LEVEL_TTL 0x00000001 #define CORSIGNAL_LEVEL_422 0x00000002 #define CORSIGNAL_LEVEL_LVDS 0x00000004 #define CORSIGNAL_LEVEL_24VOLTS 0x00000008 #define CORSIGNAL_LEVEL_OPTO 0x00000010 #define CORSIGNAL_LEVEL_LVTTL 0x00000020 #define CORSIGNAL_LEVEL_12VOLTS 0x00000040 #define CORSIGNAL_DIR_INPUT 0x00000001 #define CORSIGNAL_DIR_OUTPUT 0x00000002 #define CORSIGNAL_DIR_TRISTATE 0x00000004 /* File Formats */ #define CORDATA_FILEFORMAT_BMP 0 #define CORDATA_FILEFORMAT_TIF 1 #define CORDATA_FILEFORMAT_TIFF 1 #define CORDATA_FILEFORMAT_CRC 2 #define CORDATA_FILEFORMAT_RAW 3 #define CORDATA_FILEFORMAT_JPG 4 #define CORDATA_FILEFORMAT_JPEG 4 #define CORDATA_FILEFORMAT_AVI 5 #define CORDATA_FILEFORMAT_JPEG_2000 6 #define CORDATA_FILEFORMAT_LAST CORDATA_FILEFORMAT_JPEG_2000 #define CORDATA_FILEFORMAT_UNKNOWN -1 /* Color conversion */ #define CORCOLORCONV_ALIGN_GB_RG 0x00000001 #define CORBAYER_ALIGN_GB_RG CORCOLORCONV_ALIGN_GB_RG // obsolete #define CORCOLORCONV_ALIGN_BG_GR 0x00000002 #define CORBAYER_ALIGN_BG_GR CORCOLORCONV_ALIGN_BG_GR // obsolete #define CORCOLORCONV_ALIGN_RG_GB 0x00000004 #define CORBAYER_ALIGN_RG_GB CORCOLORCONV_ALIGN_RG_GB // obsolete #define CORCOLORCONV_ALIGN_GR_BG 0x00000008 #define CORBAYER_ALIGN_GR_BG CORCOLORCONV_ALIGN_GR_BG // obsolete #define CORCOLORCONV_ALIGN_RGBG 0x00000010 #define CORCOLORCONV_ALIGN_BGRG 0x00000020 #define CORCOLORCONV_ALIGN_MASK 0x0000003F #define CORBAYER_ALIGN_MASK CORCOLORCONV_ALIGN_MASK // obsolete #define CORCOLORCONV_METHOD_1 0x00000010 #define CORBAYER_METHOD_1 CORCOLORCONV_METHOD_1 // obsolete #define CORCOLORCONV_METHOD_2 0x00000020 #define CORBAYER_METHOD_2 CORCOLORCONV_METHOD_2 // obsolete #define CORCOLORCONV_METHOD_3 0x00000040 #define CORBAYER_METHOD_3 CORCOLORCONV_METHOD_3 // obsolete #define CORCOLORCONV_METHOD_4 0x00000080 #define CORBAYER_METHOD_4 CORCOLORCONV_METHOD_4 // obsolete #define CORCOLORCONV_METHOD_5 0x00000100 #define CORBAYER_METHOD_5 CORCOLORCONV_METHOD_5 // obsolete #define CORCOLORCONV_METHOD_6 0x00000200 #define CORBAYER_METHOD_6 CORCOLORCONV_METHOD_6 // obsolete #define CORCOLORCONV_METHOD_7 0x00000400 #define CORBAYER_METHOD_7 CORCOLORCONV_METHOD_7 // obsolete #define CORCOLORCONV_METHOD_MASK 0x000007F0 #define CORBAYER_METHOD_MASK CORCOLORCONV_METHOD_MASK // obsolete // For backward compatibility // obsolete #define CORBAYER_METHOD_INTERPOLATE CORBAYER_METHOD_1 #define CORBAYER_METHOD_GOLDEN_EAGLE CORBAYER_METHOD_2 #define CORBAYER_METHOD_EAGLE CORBAYER_METHOD_3 typedef struct COR_PACK { INT32 x; INT32 y; } MONO64_POINT, *PMONO64_POINT; /* Version Manager macro */ #define VERSION_WINMAJOR_TO_CRMAJOR(value) ((value & 0x03FF0000) << 6) #define VERSION_WINMINOR_TO_CORMINOR(value) ((value & 0x00000FFF) << 10) #define VERSION_WINBETA_TO_CORBETA(value) (value & 0x000003FF) #include "cunpackd.h" #endif // _CAPIDEF_H_