Skip to content

File SpinnakerGenApiC.h

File List > include > spinc > SpinnakerGenApiC.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_GENAPI_C_H_
#define FLIR_SPINNAKER_GENAPI_C_H_

#include "SpinnakerGenApiDefsC.h"
#include "SpinnakerDefsC.h"
#include "SpinnakerPlatformC.h"

#ifdef __cplusplus
extern "C"
{
#endif

    SPINNAKERC_API spinNodeMapGetNode(spinNodeMapHandle hNodeMap, const char* pName, spinNodeHandle* phNode);

    SPINNAKERC_API spinNodeMapGetNumNodes(spinNodeMapHandle hNodeMap, size_t* pValue);

    SPINNAKERC_API spinNodeMapGetNodeByIndex(spinNodeMapHandle hNodeMap, size_t index, spinNodeHandle* phNode);

    SPINNAKERC_API spinNodeMapReleaseNode(spinNodeMapHandle hNodeMap, spinNodeHandle hNode);

    SPINNAKERC_API spinNodeMapPoll(spinNodeMapHandle hNodeMap, int64_t timestamp);
    SPINNAKERC_API spinNodeIsImplemented(spinNodeHandle hNode, bool8_t* pbResult);

    SPINNAKERC_API spinNodeIsReadable(spinNodeHandle hNode, bool8_t* pbResult);

    SPINNAKERC_API spinNodeIsWritable(spinNodeHandle hNode, bool8_t* pbResult);

    SPINNAKERC_API spinNodeIsAvailable(spinNodeHandle hNode, bool8_t* pbResult);

    SPINNAKERC_API spinNodeIsEqual(spinNodeHandle hNodeFirst, spinNodeHandle hNodeSecond, bool8_t* pbResult);

    SPINNAKERC_API spinNodeGetAccessMode(spinNodeHandle hNode, spinAccessMode* pAccessMode);

    SPINNAKERC_API spinNodeGetName(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinNodeGetNameSpace(spinNodeHandle hNode, spinNameSpace* pNamespace);

    SPINNAKERC_API spinNodeGetVisibility(spinNodeHandle hNode, spinVisibility* pVisibility);

    SPINNAKERC_API spinNodeInvalidateNode(spinNodeHandle hNode);

    SPINNAKERC_API spinNodeGetCachingMode(spinNodeHandle hNode, spinCachingMode* pCachingMode);

    SPINNAKERC_API spinNodeGetToolTip(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinNodeGetDescription(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinNodeGetDisplayName(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinNodeGetType(spinNodeHandle hNode, spinNodeType* pType);

    SPINNAKERC_API spinNodeGetPollingTime(spinNodeHandle hNode, int64_t* pPollingTime);

    SPINNAKERC_API spinNodeRegisterCallback(
        spinNodeHandle hNode,
        spinNodeCallbackFunction pCbFunction,
        spinNodeCallbackHandle* phCb);

    SPINNAKERC_API spinNodeDeregisterCallback(spinNodeHandle hNode, spinNodeCallbackHandle hCb);

    SPINNAKERC_API spinNodeGetImposedAccessMode(spinNodeHandle hNode, spinAccessMode imposedAccessMode);

    SPINNAKERC_API spinNodeGetImposedVisibility(spinNodeHandle hNode, spinVisibility imposedVisibility);
    SPINNAKERC_API spinNodeToString(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinNodeToStringEx(spinNodeHandle hNode, bool8_t bVerify, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinNodeFromString(spinNodeHandle hNode, const char* pBuf);

    SPINNAKERC_API spinNodeFromStringEx(spinNodeHandle hNode, bool8_t bVerify, const char* pBuf);
    SPINNAKERC_API spinStringSetValue(spinNodeHandle hNode, const char* pBuf);

    SPINNAKERC_API spinStringSetValueEx(spinNodeHandle hNode, bool8_t bVerify, const char* pBuf);

    SPINNAKERC_API spinStringGetValue(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinStringGetValueEx(spinNodeHandle hNode, bool8_t bVerify, char* pBuf, size_t* pBufLen);

    SPINNAKERC_API spinStringGetMaxLength(spinNodeHandle hNode, int64_t* pValue);
    SPINNAKERC_API spinIntegerSetValue(spinNodeHandle hNode, int64_t value);

    SPINNAKERC_API spinIntegerSetValueEx(spinNodeHandle hNode, bool8_t bVerify, int64_t value);

    SPINNAKERC_API spinIntegerGetValue(spinNodeHandle hNode, int64_t* pValue);

    SPINNAKERC_API spinIntegerGetValueEx(spinNodeHandle hNode, bool8_t bVerify, int64_t* pValue);

    SPINNAKERC_API spinIntegerGetMin(spinNodeHandle hNode, int64_t* pValue);

    SPINNAKERC_API spinIntegerGetMax(spinNodeHandle hNode, int64_t* pValue);

    SPINNAKERC_API spinIntegerGetInc(spinNodeHandle hNode, int64_t* pValue);

    SPINNAKERC_API spinIntegerGetRepresentation(spinNodeHandle hNode, spinRepresentation* pValue);
    SPINNAKERC_API spinFloatSetValue(spinNodeHandle hNode, double value);

    SPINNAKERC_API spinFloatSetValueEx(spinNodeHandle hNode, bool8_t bVerify, double value);

    SPINNAKERC_API spinFloatGetValue(spinNodeHandle hNode, double* pValue);

    SPINNAKERC_API spinFloatGetValueEx(spinNodeHandle hNode, bool8_t bVerify, double* pValue);

    SPINNAKERC_API spinFloatGetMin(spinNodeHandle hNode, double* pValue);

    SPINNAKERC_API spinFloatGetMax(spinNodeHandle hNode, double* pValue);

    SPINNAKERC_API spinFloatGetRepresentation(spinNodeHandle hNode, spinRepresentation* pValue);

    SPINNAKERC_API spinFloatGetUnit(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);
    SPINNAKERC_API spinEnumerationGetNumEntries(spinNodeHandle hEnumNode, size_t* pValue);

    SPINNAKERC_API spinEnumerationGetEntryByIndex(spinNodeHandle hEnumNode, size_t index, spinNodeHandle* phEntry);

    SPINNAKERC_API spinEnumerationGetEntryByName(spinNodeHandle hEnumNode, const char* pName, spinNodeHandle* phEntry);

    SPINNAKERC_API spinEnumerationGetCurrentEntry(spinNodeHandle hEnumNode, spinNodeHandle* phEntry);

    SPINNAKERC_API spinEnumerationReleaseNode(spinNodeHandle hEnumNode, spinNodeHandle hEntry);

    SPINNAKERC_API spinEnumerationSetIntValue(spinNodeHandle hEnumNode, int64_t value);

    SPINNAKERC_API spinEnumerationSetEnumValue(spinNodeHandle hEnumNode, size_t value);
    SPINNAKERC_API spinEnumerationEntryGetIntValue(spinNodeHandle hNode, int64_t* pValue);

    SPINNAKERC_API spinEnumerationEntryGetEnumValue(spinNodeHandle hNode, size_t* pValue);

    SPINNAKERC_API spinEnumerationEntryGetSymbolic(spinNodeHandle hNode, char* pBuf, size_t* pBufLen);
    SPINNAKERC_API spinBooleanSetValue(spinNodeHandle hNode, bool8_t value);

    SPINNAKERC_API spinBooleanGetValue(spinNodeHandle hNode, bool8_t* pbValue);
    SPINNAKERC_API spinCommandExecute(spinNodeHandle hNode);

    SPINNAKERC_API spinCommandIsDone(spinNodeHandle hNode, bool8_t* pbValue);
    SPINNAKERC_API spinCategoryGetNumFeatures(spinNodeHandle hCategoryNode, size_t* pValue);

    SPINNAKERC_API spinCategoryGetFeatureByIndex(spinNodeHandle hCategoryNode, size_t index, spinNodeHandle* phFeature);
    SPINNAKERC_API spinCategoryReleaseNode(spinNodeHandle hCategoryNode, spinNodeHandle hFeature);

    SPINNAKERC_API spinRegisterGet(spinNodeHandle hNode, uint8_t* pBuf, int64_t length);

    SPINNAKERC_API spinRegisterGetEx(
        spinNodeHandle hNode,
        bool8_t bVerify,
        bool8_t bIgnoreCache,
        uint8_t* pBuf,
        int64_t length);

    SPINNAKERC_API spinRegisterGetAddress(spinNodeHandle hNode, int64_t* pAddress);

    SPINNAKERC_API spinRegisterGetLength(spinNodeHandle hNode, int64_t* pLength);

    SPINNAKERC_API spinRegisterSet(spinNodeHandle hNode, const uint8_t* pBuf, int64_t length);

    SPINNAKERC_API spinRegisterSetEx(spinNodeHandle hNode, bool8_t bVerify, const uint8_t* pBuf, int64_t length);

    SPINNAKERC_API spinRegisterSetReference(spinNodeHandle hNode, spinNodeHandle hRef);

#ifdef __cplusplus
}
#endif

#endif /* FLIR_SPINNAKER_GENAPI_C_H_ */