File SpinnakerC.h¶
File List > include > spinc > SpinnakerC.h
Go to the documentation of this file
//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================
#ifndef FLIR_SPINNAKER_C_H
#define FLIR_SPINNAKER_C_H
#include "SpinnakerPlatformC.h"
#include "SpinnakerDefsC.h"
#include "CameraDefsC.h"
#include "ChunkDataDefC.h"
#include "SpinnakerGenApiDefsC.h"
#include "SpinnakerGenApiC.h"
#include "QuickSpinC.h"
#ifdef __cplusplus
extern "C"
{
#endif
SPINNAKERC_API spinErrorGetLast(spinError* pError);
SPINNAKERC_API spinErrorGetLastMessage(char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinErrorGetLastBuildDate(char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinErrorGetLastBuildTime(char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinErrorGetLastFileName(char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinErrorGetLastFullMessage(char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinErrorGetLastFunctionName(char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinErrorGetLastLineNumber(int64_t* pLineNum);
SPINNAKERC_API spinSystemGetInstance(spinSystem* phSystem);
SPINNAKERC_API spinSystemReleaseInstance(spinSystem hSystem);
SPINNAKERC_API spinSystemGetInterfaces(spinSystem hSystem, spinInterfaceList hInterfaceList);
SPINNAKERC_API spinSystemGetCameras(spinSystem hSystem, spinCameraList hCameraList);
SPINNAKERC_API spinSystemGetCamerasEx(
spinSystem hSystem,
bool8_t bUpdateInterfaces,
bool8_t bUpdateCameras,
spinCameraList hCameraList);
SPINNAKERC_API spinSystemSetLoggingLevel(spinSystem hSystem, spinnakerLogLevel logLevel);
SPINNAKERC_API spinSystemGetLoggingLevel(spinSystem hSystem, spinnakerLogLevel* pLogLevel);
SPINNAKERC_API spinSystemRegisterLogEventHandler(spinSystem hSystem, spinLogEventHandler hLogEventHandler);
SPINNAKERC_API spinSystemUnregisterLogEventHandler(spinSystem hSystem, spinLogEventHandler hLogEventHandler);
SPINNAKERC_API spinSystemUnregisterAllLogEventHandlers(spinSystem hSystem);
SPINNAKERC_API spinSystemIsInUse(spinSystem hSystem, bool8_t* pbIsInUse);
SPINNAKERC_API spinSystemRegisterDeviceArrivalEventHandler(
spinSystem hSystem,
spinDeviceArrivalEventHandler hDeviceArrivalEventHandler);
SPINNAKERC_API spinSystemRegisterDeviceRemovalEventHandler(
spinSystem hSystem,
spinDeviceRemovalEventHandler hDeviceRemovalEventHandler);
SPINNAKERC_API spinSystemUnregisterDeviceArrivalEventHandler(
spinSystem hSystem,
spinDeviceArrivalEventHandler hDeviceArrivalEventHandler);
SPINNAKERC_API spinSystemUnregisterDeviceRemovalEventHandler(
spinSystem hSystem,
spinDeviceRemovalEventHandler hDeviceRemovalEventHandler);
SPINNAKERC_API spinSystemRegisterInterfaceEventHandler(
spinSystem hSystem,
spinInterfaceEventHandler hInterfaceEventHandler);
SPINNAKERC_API spinSystemUnregisterInterfaceEventHandler(
spinSystem hSystem,
spinInterfaceEventHandler hInterfaceEventHandler);
SPINNAKERC_API spinSystemUpdateCameras(spinSystem hSystem, bool8_t* pbChanged);
SPINNAKERC_API spinSystemUpdateCamerasEx(spinSystem hSystem, bool8_t bUpdateInterfaces, bool8_t* pbChanged);
SPINNAKERC_API spinSystemSendActionCommand(
spinSystem hSystem,
size_t iDeviceKey,
size_t iGroupKey,
size_t iGroupMask,
size_t iActionTime,
bool8_t requestAck,
size_t* piResultSize,
actionCommandResult results[]);
SPINNAKERC_API spinSystemGetLibraryVersion(spinSystem hSystem, spinLibraryVersion* hLibraryVersion);
SPINNAKERC_API spinSystemGetTLNodeMap(spinSystem hSystem, spinNodeMapHandle* phNodeMap);
SPINNAKERC_API spinInterfaceListCreateEmpty(spinInterfaceList* phInterfaceList);
SPINNAKERC_API spinInterfaceListDestroy(spinInterfaceList hInterfaceList);
SPINNAKERC_API spinInterfaceListGetSize(spinInterfaceList hInterfaceList, size_t* pSize);
SPINNAKERC_API spinInterfaceListGet(spinInterfaceList hInterfaceList, size_t index, spinInterface* phInterface);
SPINNAKERC_API spinInterfaceListClear(spinInterfaceList hInterfaceList);
SPINNAKERC_API spinCameraListCreateEmpty(spinCameraList* phCameraList);
SPINNAKERC_API spinCameraListDestroy(spinCameraList hCameraList);
SPINNAKERC_API spinCameraListGetSize(spinCameraList hCameraList, size_t* pSize);
SPINNAKERC_API spinCameraListGet(spinCameraList hCameraList, size_t index, spinCamera* phCamera);
SPINNAKERC_API spinCameraListClear(spinCameraList hCameraList);
SPINNAKERC_API spinCameraListRemove(spinCameraList hCameraList, size_t index);
SPINNAKERC_API spinCameraListAppend(spinCameraList hCameraListBase, spinCameraList hCameraListToAppend);
SPINNAKERC_API spinCameraListGetBySerial(spinCameraList hCameraList, const char* pSerial, spinCamera* phCamera);
SPINNAKERC_API spinCameraListRemoveBySerial(spinCameraList hCameraList, const char* pSerial);
SPINNAKERC_API spinImageListCreateEmpty(spinImageList* phImageList);
SPINNAKERC_API spinImageListDestroy(spinImageList hImageList);
SPINNAKERC_API spinImageListGetSize(spinImageList hImageList, size_t* pSize);
SPINNAKERC_API spinImageListGet(spinImageList hImageList, size_t index, spinImage* phImage);
SPINNAKERC_API spinImageListClear(spinImageList hImageList);
SPINNAKERC_API spinImageListRemove(spinImageList hImageList, size_t index);
SPINNAKERC_API spinImageListAppend(spinImageList hImageListBase, spinImageList hImageListToAppend);
SPINNAKERC_API spinImageListGetImagesByPixelFormat(
spinImageList hImageList,
spinPixelFormatEnums pixelFormat,
spinImageList* hImageListReturn);
SPINNAKERC_API spinImageListGetByPixelFormat(
spinImageList hImageList,
spinPixelFormatEnums pixelFormat,
spinImage* phImage);
SPINNAKERC_API spinImageListGetByStreamIndex(spinImageList hImageList, uint64_t streamIndex, spinImage* phImage);
SPINNAKERC_API spinImageListRemoveByPixelFormat(spinImageList hImageList, spinPixelFormatEnums pixelFormat);
SPINNAKERC_API spinImageListRemoveByStreamIndex(spinImageList hImageList, uint64_t streamIndex);
/*
* Releases all the images that were acquired calling spinCameraGetNextImageSync().
* @see spinCameraInit()
* @see spinCameraGetNextImageSync(grabTimeout)
* @see spinImageRelease(spinImage hImage)
* @see spinError
*
* @param hImageList The image list of the image to remove
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinImageListRelease(spinImageList hImageList);
SPINNAKERC_API spinImageListSave(spinImageList hImageList, const char* fileName);
SPINNAKERC_API spinImageListLoad(spinImageList* phImageList, const char* fileName);
SPINNAKERC_API spinInterfaceUpdateCameras(spinInterface hInterface, bool8_t* pbChanged);
SPINNAKERC_API spinInterfaceGetCameras(spinInterface hInterface, spinCameraList hCameraList);
SPINNAKERC_API spinInterfaceGetCamerasEx(
spinInterface hInterface,
bool8_t bUpdateCameras,
spinCameraList hCameraList);
SPINNAKERC_API spinInterfaceGetTLNodeMap(spinInterface hInterface, spinNodeMapHandle* phNodeMap);
SPINNAKERC_API spinInterfaceRegisterDeviceArrivalEventHandler(
spinInterface hInterface,
spinDeviceArrivalEventHandler hDeviceArrivalEventHandler);
SPINNAKERC_API spinInterfaceRegisterDeviceRemovalEventHandler(
spinInterface hInterface,
spinDeviceRemovalEventHandler hDeviceRemovalEventHandler);
SPINNAKERC_API spinInterfaceUnregisterDeviceArrivalEventHandler(
spinInterface hInterface,
spinDeviceArrivalEventHandler hDeviceArrivalEventHandler);
SPINNAKERC_API spinInterfaceUnregisterDeviceRemovalEventHandler(
spinInterface hInterface,
spinDeviceRemovalEventHandler hDeviceRemovalEventHandler);
SPINNAKERC_API spinInterfaceRegisterInterfaceEventHandler(
spinInterface hInterface,
spinInterfaceEventHandler hInterfaceEventHandler);
SPINNAKERC_API spinInterfaceUnregisterInterfaceEventHandler(
spinInterface hInterface,
spinInterfaceEventHandler hInterfaceEventHandler);
SPINNAKERC_API spinInterfaceRelease(spinInterface hInterface);
SPINNAKERC_API spinInterfaceIsInUse(spinInterface hInterface, bool8_t* pbIsInUse);
SPINNAKERC_API spinInterfaceSendActionCommand(
spinInterface hInterface,
size_t iDeviceKey,
size_t iGroupKey,
size_t iGroupMask,
size_t iActionTime,
bool8_t requestAck,
size_t* piResultSize,
actionCommandResult results[]);
SPINNAKERC_API spinCameraInit(spinCamera hCamera);
SPINNAKERC_API spinCameraDeInit(spinCamera hCamera);
SPINNAKERC_API spinCameraGetNodeMap(spinCamera hCamera, spinNodeMapHandle* phNodeMap);
SPINNAKERC_API spinCameraGetTLDeviceNodeMap(spinCamera hCamera, spinNodeMapHandle* phNodeMap);
SPINNAKERC_API spinCameraGetTLStreamNodeMap(spinCamera hCamera, spinNodeMapHandle* phNodeMap);
SPINNAKERC_API spinCameraGetAccessMode(spinCamera hCamera, spinAccessMode* pAccessMode);
/*
* Reads a remote port on a physical Camera. This function can be used to read
* registers on Cameras.
*
* Caution: Only perform direct read/write to a register if the register isn't
* supported in the device nodemap. Otherwise the camera and nodemap
* may be left in an undefined state after the register read/write.
*
* @see WritePort()
*
* @param iAddress A 64 bit address to a register on the camera
* @param pBuffer A pointer to a data buffer that will store result
* @param iSize Number of bytes to read
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinCameraReadPort(spinCamera hCamera, uint64_t iAddress, void* pBuffer, size_t iSize);
/*
* Writes a remote port on a physical Camera. This function can be used to write
* registers on Cameras.
*
* Caution: Only perform direct read/write to a register if the register isn't
* supported in the device nodemap. Otherwise the camera and nodemap
* may be left in an undefined state after the register read/write.
*
* @see ReadPort()
*
* @param iAddress A 64 bit address to a register on the camera
* @param pBuffer A pointer to a data buffer that will be written
* @param iSize Number of bytes to write
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinCameraWritePort(spinCamera hCamera, uint64_t iAddress, void* pBuffer, size_t iSize);
SPINNAKERC_API spinCameraBeginAcquisition(spinCamera hCamera);
SPINNAKERC_API spinCameraEndAcquisition(spinCamera hCamera);
SPINNAKERC_API spinCameraGetNextImage(spinCamera hCamera, spinImage* phImage);
SPINNAKERC_API spinCameraGetNextImageEx(spinCamera hCamera, uint64_t grabTimeout, spinImage* phImage);
SPINNAKERC_API spinCameraGetNextImageSync(spinCamera hCamera, uint64_t grabTimeout, spinImageList* phImageList);
SPINNAKERC_API spinCameraGetDeviceID(spinCamera hCamera, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinCameraGetDeviceSerialNumber(spinCamera hCamera, char* pBuf, size_t* pBufLen);
SPINNAKERC_API_DEPRECATED("Use spinCameraGetDeviceID() instead.",
spinCameraGetUniqueID(spinCamera hCamera, char* pBuf, size_t* pBufLen);)
SPINNAKERC_API spinCameraIsStreaming(spinCamera hCamera, bool8_t* pbIsStreaming);
SPINNAKERC_API spinCameraGetGuiXml(spinCamera hCamera, char* pBuf, size_t* pBufLen);
SPINNAKERC_API_DEPRECATED(
"Use spinNodeRegisterCallback() and spinNodeDeregisterCallback() for handling device node callbacks instead.",
spinCameraRegisterDeviceEventHandler(spinCamera hCamera, spinDeviceEventHandler hDeviceEventHandler));
SPINNAKERC_API_DEPRECATED(
"Use spinNodeRegisterCallback() and spinNodeDeregisterCallback() for handling device node callbacks instead.",
spinCameraRegisterDeviceEventHandlerEx(
spinCamera hCamera,
spinDeviceEventHandler hDeviceEventHandler,
const char* pName));
SPINNAKERC_API_DEPRECATED(
"Use spinNodeRegisterCallback() and spinNodeDeregisterCallback() for handling device node callbacks instead.",
spinCameraUnregisterDeviceEventHandler(spinCamera hCamera, spinDeviceEventHandler hDeviceEventHandler));
SPINNAKERC_API spinCameraRegisterImageEventHandler(spinCamera hCamera, spinImageEventHandler hImageEventHandler);
SPINNAKERC_API spinCameraRegisterImageEventHandlerEx(
spinCamera hCamera,
spinImageEventHandler hImageEventHandler,
uint64_t streamIndex);
SPINNAKERC_API spinCameraUnregisterImageEventHandler(spinCamera hCamera, spinImageEventHandler hImageEventHandler);
SPINNAKERC_API spinCameraRegisterImageListEventHandler(
spinCamera hCamera,
spinImageListEventHandler hImageListEventHandler);
SPINNAKERC_API spinCameraUnregisterImageListEventHandler(
spinCamera hCamera,
spinImageListEventHandler hImageListEventHandler);
SPINNAKERC_API spinCameraRelease(spinCamera hCamera);
SPINNAKERC_API spinCameraIsValid(spinCamera hCamera, bool8_t* pbValid);
SPINNAKERC_API spinCameraIsInitialized(spinCamera hCamera, bool8_t* pbInit);
SPINNAKERC_API spinCameraDiscoverMaxPacketSize(spinCamera hCamera, unsigned int* pMaxPacketSize);
SPINNAKERC_API spinCameraForceIP();
SPINNAKERC_API spinImageCreateEmpty(spinImage* phImage);
SPINNAKERC_API spinImageCreate(spinImage hSrcImage, spinImage* phDestImage);
SPINNAKERC_API spinImageCreateEx(
spinImage* phImage,
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
spinPixelFormatEnums pixelFormat,
void* pData);
SPINNAKERC_API spinImageCreateEx2(
spinImage* phImage,
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
spinPixelFormatEnums pixelFormat,
void* pData,
spinTLPayloadType dataPayloadType,
size_t dataSize);
SPINNAKERC_API spinImageDestroy(spinImage hImage);
SPINNAKERC_API spinImageGetColorProcessing(spinImage hImage, spinColorProcessingAlgorithm* pAlgorithm);
SPINNAKERC_API spinImageLoad(spinImage* phImage, const char* fileName);
SPINNAKERC_API spinImageReset(
spinImage hImage,
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
spinPixelFormatEnums pixelFormat);
SPINNAKERC_API spinImageResetEx(
spinImage hImage,
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
spinPixelFormatEnums pixelFormat,
void* pData);
SPINNAKERC_API spinImageGetID(spinImage hImage, uint64_t* pId);
SPINNAKERC_API spinImageGetData(spinImage hImage, void** ppData);
SPINNAKERC_API spinImageGetPrivateData(spinImage hImage, void** ppData);
SPINNAKERC_API spinImageGetBufferSize(spinImage hImage, size_t* pSize);
SPINNAKERC_API spinImageDeepCopy(spinImage hSrcImage, spinImage hDestImage);
SPINNAKERC_API spinImageGetWidth(spinImage hImage, size_t* pWidth);
SPINNAKERC_API spinImageGetHeight(spinImage hImage, size_t* pHeight);
SPINNAKERC_API spinImageGetOffsetX(spinImage hImage, size_t* pOffsetX);
SPINNAKERC_API spinImageGetOffsetY(spinImage hImage, size_t* pOffsetY);
SPINNAKERC_API spinImageGetPaddingX(spinImage hImage, size_t* pPaddingX);
SPINNAKERC_API spinImageGetPaddingY(spinImage hImage, size_t* pPaddingY);
SPINNAKERC_API spinImageGetFrameID(spinImage hImage, uint64_t* pFrameID);
SPINNAKERC_API spinImageGetTimeStamp(spinImage hImage, uint64_t* pTimeStamp);
SPINNAKERC_API spinImageGetPayloadType(spinImage hImage, size_t* pPayloadType);
SPINNAKERC_API spinImageGetTLPayloadType(spinImage hImage, spinTLPayloadType* pPayloadType);
SPINNAKERC_API spinImageGetPixelFormat(spinImage hImage, spinPixelFormatEnums* pPixelFormat);
SPINNAKERC_API spinImageGetTLPixelFormat(spinImage hImage, uint64_t* pPixelFormat);
SPINNAKERC_API spinImageGetTLPixelFormatNamespace(
spinImage hImage,
spinTLPixelFormatNamespace* pPixelFormatNamespace);
SPINNAKERC_API spinImageGetPixelFormatName(spinImage hImage, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinImageIsIncomplete(spinImage hImage, bool8_t* pbIsIncomplete);
SPINNAKERC_API spinImageGetValidPayloadSize(spinImage hImage, size_t* pSize);
SPINNAKERC_API spinImageSave(spinImage hImage, const char* pFilename, spinImageFileFormat format);
SPINNAKERC_API spinImageSaveFromExt(spinImage hImage, const char* pFilename);
SPINNAKERC_API spinImageSavePng(spinImage hImage, const char* pFilename, const spinPNGOption* pOption);
SPINNAKERC_API spinImageSavePpm(spinImage hImage, const char* pFilename, const spinPPMOption* pOption);
SPINNAKERC_API spinImageSavePgm(spinImage hImage, const char* pFilename, const spinPGMOption* pOption);
SPINNAKERC_API spinImageSaveTiff(spinImage hImage, const char* pFilename, const spinTIFFOption* pOption);
SPINNAKERC_API spinImageSaveJpeg(spinImage hImage, const char* pFilename, const spinJPEGOption* pOption);
SPINNAKERC_API spinImageSaveJpg2(spinImage hImage, const char* pFilename, const spinJPG2Option* pOption);
SPINNAKERC_API spinImageSaveBmp(spinImage hImage, const char* pFilename, const spinBMPOption* pOption);
SPINNAKERC_API spinImageGetChunkLayoutID(spinImage hImage, uint64_t* pId);
SPINNAKERC_API spinImageCalculateStatistics(spinImage hImage, const spinImageStatistics hStatistics);
SPINNAKERC_API spinImageGetStatus(spinImage hImage, spinImageStatus* pStatus);
SPINNAKERC_API spinImageGetStatusDescription(spinImageStatus status, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinImageRelease(spinImage hImage);
SPINNAKERC_API spinImageHasCRC(spinImage hImage, bool8_t* pbHasCRC);
SPINNAKERC_API spinImageCheckCRC(spinImage hImage, bool8_t* pbCheckCRC);
SPINNAKERC_API spinImageGetBitsPerPixel(spinImage hImage, size_t* pBitsPerPixel);
SPINNAKERC_API spinImageGetSize(spinImage hImage, size_t* pImageSize);
SPINNAKERC_API spinImageGetStride(spinImage hImage, size_t* pStride);
SPINNAKERC_API spinImageProcessorCreate(spinImageProcessor* phImageProcessor);
SPINNAKERC_API spinImageProcessorDestroy(spinImageProcessor hImageProcessor);
SPINNAKERC_API spinImageProcessorSetColorProcessing(
spinImageProcessor hImageProcessor,
spinColorProcessingAlgorithm colorAlgorithm);
SPINNAKERC_API spinImageProcessorGetColorProcessing(
spinImageProcessor hImageProcessor,
spinColorProcessingAlgorithm* pColorAlgorithm);
SPINNAKERC_API spinImageProcessorSetNumDecompressionThreads(
spinImageProcessor hImageProcessor,
unsigned int numThreads);
SPINNAKERC_API spinImageProcessorGetNumDecompressionThreads(
spinImageProcessor hImageProcessor,
unsigned int* pNumThreads);
SPINNAKERC_API spinImageProcessorConvert(
spinImageProcessor hImageProcessor,
spinImage hSrcImage,
spinImage hDestImage,
spinPixelFormatEnums destFormat);
SPINNAKERC_API spinImageProcessorConvertImageList(
spinImageProcessor hImageProcessor,
spinImageList hSrcImageList,
spinImage hDestImage,
spinPixelFormatEnums destFormat);
SPINNAKERC_API spinImageProcessorApplyGamma(
spinImageProcessor hImageProcessor,
spinImage hSrcImage,
spinImage hDestImage,
float gamma,
bool8_t applyGammaInverse);
SPINNAKERC_API spinDeviceEventHandlerCreate(
spinDeviceEventHandler* phDeviceEventHandler,
spinDeviceEventFunction pFunction,
void* pUserData);
SPINNAKERC_API spinDeviceEventHandlerDestroy(spinDeviceEventHandler hDeviceEventHandler);
SPINNAKERC_API spinImageEventHandlerCreate(
spinImageEventHandler* phImageEventHandler,
spinImageEventFunction pFunction,
void* pUserData);
SPINNAKERC_API spinImageEventHandlerDestroy(spinImageEventHandler hImageEventHandler);
SPINNAKERC_API spinImageListEventHandlerCreate(
spinImageListEventHandler* phImageEventHandler,
spinImageListEventFunction pFunction,
void* pUserData);
SPINNAKERC_API spinImageListEventHandlerDestroy(spinImageListEventHandler hImageListEventHandler);
SPINNAKERC_API spinDeviceArrivalEventHandlerCreate(
spinDeviceArrivalEventHandler* phDeviceArrivalEventHandler,
spinArrivalEventFunction pFunction,
void* pUserData);
SPINNAKERC_API spinDeviceArrivalEventHandlerDestroy(spinDeviceArrivalEventHandler hDeviceArrivalEventHandler);
SPINNAKERC_API spinDeviceRemovalEventHandlerCreate(
spinDeviceRemovalEventHandler* phDeviceRemovalEventHandler,
spinRemovalEventFunction pFunction,
void* pUserData);
SPINNAKERC_API spinDeviceRemovalEventHandlerDestroy(spinDeviceRemovalEventHandler hDeviceRemovalEventHandler);
SPINNAKERC_API spinInterfaceEventHandlerCreate(
spinInterfaceEventHandler* phInterfaceEventHandler,
spinArrivalEventFunction pArrivalFunction,
spinRemovalEventFunction pRemovalFunction,
void* pUserData);
SPINNAKERC_API spinInterfaceEventHandlerDestroy(spinInterfaceEventHandler hInterfaceEventHandler);
SPINNAKERC_API spinLogEventHandlerCreate(
spinLogEventHandler* phLogEventHandler,
spinLogEventFunction pFunction,
void* pUserData);
SPINNAKERC_API spinLogEventHandlerDestroy(spinLogEventHandler hLogEventHandler);
SPINNAKERC_API spinImageStatisticsCreate(spinImageStatistics* phStatistics);
SPINNAKERC_API spinImageStatisticsDestroy(spinImageStatistics hStatistics);
SPINNAKERC_API spinImageStatisticsEnableAll(spinImageStatistics hStatistics);
SPINNAKERC_API spinImageStatisticsDisableAll(spinImageStatistics hStatistics);
SPINNAKERC_API spinImageStatisticsEnableGreyOnly(spinImageStatistics hStatistics);
SPINNAKERC_API spinImageStatisticsEnableRgbOnly(spinImageStatistics hStatistics);
SPINNAKERC_API spinImageStatisticsEnableHslOnly(spinImageStatistics hStatistics);
SPINNAKERC_API spinImageStatisticsGetChannelStatus(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
bool8_t* pbEnabled);
SPINNAKERC_API spinImageStatisticsSetChannelStatus(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
bool8_t bEnable);
SPINNAKERC_API spinImageStatisticsGetRange(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
unsigned int* pMin,
unsigned int* pMax);
SPINNAKERC_API spinImageStatisticsGetPixelValueRange(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
unsigned int* pMin,
unsigned int* pMax);
SPINNAKERC_API spinImageStatisticsGetNumPixelValues(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
unsigned int* pNumValues);
SPINNAKERC_API spinImageStatisticsGetMean(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
float* pMean);
SPINNAKERC_API spinImageStatisticsGetHistogram(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
int** ppHistogram);
SPINNAKERC_API spinImageStatisticsGetAll(
spinImageStatistics hStatistics,
spinStatisticsChannel channel,
unsigned int* pRangeMin,
unsigned int* pRangeMax,
unsigned int* pPixelValueMin,
unsigned int* pPixelValueMax,
unsigned int* pNumPixelValues,
float* pPixelValueMean,
int** ppHistogram);
SPINNAKERC_API spinLogDataGetCategoryName(spinLogEventData hLogEventData, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinLogDataGetPriority(spinLogEventData hLogEventData, int64_t* pValue);
SPINNAKERC_API spinLogDataGetPriorityName(spinLogEventData hLogEventData, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinLogDataGetTimestamp(spinLogEventData hLogEventData, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinLogDataGetNDC(spinLogEventData hLogEventData, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinLogDataGetThreadName(spinLogEventData hLogEventData, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinLogDataGetLogMessage(spinLogEventData hLogEventData, char* pBuf, size_t* pBufLen);
SPINNAKERC_API spinDeviceEventGetId(spinDeviceEventData hDeviceEventData, uint64_t* pEventId);
SPINNAKERC_API spinDeviceEventGetPayloadData(
spinDeviceEventData hDeviceEventData,
const uint8_t* pBuf,
size_t* pBufSize);
SPINNAKERC_API spinDeviceEventGetPayloadDataSize(spinDeviceEventData hDeviceEventData, size_t* pBufSize);
SPINNAKERC_API spinDeviceEventGetName(spinDeviceEventData hDeviceEventData, char* pBuf, size_t* pBufLen);
// Chunk data from Image
/*
* Retrieves an integer value of a piece of chunk data
* @see spinError
*
* @param hImage The image of the chunk data to retrieve
* @param pName The name of the piece of chunk data to retrieve
* @param pValue The integer pointer in which the piece of chunk data is returned
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinImageChunkDataGetIntValue(spinImage hImage, const char* pName, int64_t* pValue);
/*
* Retrieves a float value of a piece of chunk data
* @see spinError
*
* @param hImage The image of the chunk data to retrieve
* @param pName The name of the piece of chunk data to retrieve
* @param pValue The float pointer in which the piece of chunk data is returned
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinImageChunkDataGetFloatValue(spinImage hImage, const char* pName, double* pValue);
/*
* Retrieves a pointer to memory of a piece of chunk data
* @see spinError
*
* @param hImage The image of the chunk data to retrieve
* @param pName The name of the piece of chunk data to retrieve
* @param pData The uint8_t pointer in which the piece of chunk data is returned
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinImageChunkDataGetRawData(spinImage hImage, const char* pName, uint8_t** pData);
/*
* Retrieves a boolean value of a piece of chunk data
* @see spinError
*
* @param hImage The image of the chunk data to retrieve
* @param pName The name of the piece of chunk data to retrieve
* @param pValue The boolean pointer in which the piece of chunk data is returned
*
* @return spinError The error code; returns SPINNAKER_ERR_SUCCESS (or 0) for no error
*/
SPINNAKERC_API spinImageChunkDataGetBoolValue(spinImage hImage, const char* pName, bool8_t* pValue);
#ifdef __cplusplus
}
#endif
#endif /* FLIR_SPINNAKER_C_H */