Program Listing for File VmbC.h

Return to documentation for file (include/VmbC/VmbC.h)

/*=============================================================================
  Copyright (C) 2012 - 2023 Allied Vision Technologies.  All Rights Reserved.

  Redistribution of this header file, in original or modified form, without
  prior written consent of Allied Vision Technologies is prohibited.

-------------------------------------------------------------------------------

  File:        VmbC.h

-------------------------------------------------------------------------------

  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
  NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR  PURPOSE ARE
  DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

=============================================================================*/

#ifndef VMBC_H_INCLUDE_
#define VMBC_H_INCLUDE_

#include <stddef.h>
#include <stdint.h>

#include <VmbC/VmbCommonTypes.h>
#include <VmbC/VmbCTypeDefinitions.h>

#ifdef __cplusplus
extern "C" {
#endif

#define VMBINFINITE        0xFFFFFFFF

#define VMB_API_HANDLE(typeName) ((typeName)((((VmbUint64_t)1) << (VmbUint64_t)(sizeof(VmbHandle_t) * 8 - 4)) | ((VmbUint64_t) 1)))

static const VmbHandle_t gVmbHandle = VMB_API_HANDLE(VmbHandle_t);

//===== FUNCTION PROTOTYPES ===================================================

IMEXPORTC VmbError_t VMB_CALL VmbVersionQuery ( VmbVersionInfo_t*   versionInfo,
                                                VmbUint32_t         sizeofVersionInfo );
IMEXPORTC VmbError_t VMB_CALL VmbStartup (const VmbFilePathChar_t* pathConfiguration);

IMEXPORTC void VMB_CALL VmbShutdown ( void );

IMEXPORTC VmbError_t VMB_CALL VmbCamerasList ( VmbCameraInfo_t*   cameraInfo,
                                               VmbUint32_t        listLength,
                                               VmbUint32_t*       numFound,
                                               VmbUint32_t        sizeofCameraInfo );

IMEXPORTC VmbError_t VMB_CALL VmbCameraInfoQueryByHandle(   VmbHandle_t         cameraHandle,
                                                            VmbCameraInfo_t*    info,
                                                            VmbUint32_t         sizeofCameraInfo);

IMEXPORTC VmbError_t VMB_CALL VmbCameraInfoQuery ( const char*         idString,
                                                   VmbCameraInfo_t*    info,
                                                   VmbUint32_t         sizeofCameraInfo );

IMEXPORTC VmbError_t VMB_CALL VmbCameraOpen ( const char*      idString,
                                              VmbAccessMode_t  accessMode,
                                              VmbHandle_t*     cameraHandle );

IMEXPORTC VmbError_t VMB_CALL VmbCameraClose ( const VmbHandle_t  cameraHandle );

//----- Features ----------------------------------------------------------

IMEXPORTC VmbError_t VMB_CALL VmbFeaturesList ( VmbHandle_t         handle,
                                                VmbFeatureInfo_t*   featureInfoList,
                                                VmbUint32_t         listLength,
                                                VmbUint32_t*        numFound,
                                                VmbUint32_t         sizeofFeatureInfo );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureInfoQuery ( const VmbHandle_t   handle,
                                                    const char*         name,
                                                    VmbFeatureInfo_t*   featureInfo,
                                                    VmbUint32_t         sizeofFeatureInfo );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureListSelected ( const VmbHandle_t  handle,
                                                       const char*        name,
                                                       VmbFeatureInfo_t*  featureInfoList,
                                                       VmbUint32_t        listLength,
                                                       VmbUint32_t*       numFound,
                                                       VmbUint32_t        sizeofFeatureInfo );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureAccessQuery ( const VmbHandle_t   handle,
                                                      const char*         name,
                                                      VmbBool_t *         isReadable,
                                                      VmbBool_t *         isWriteable );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntGet ( const VmbHandle_t   handle,
                                                 const char*         name,
                                                 VmbInt64_t*         value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntSet ( const VmbHandle_t   handle,
                                                 const char*         name,
                                                 VmbInt64_t          value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntRangeQuery ( const VmbHandle_t   handle,
                                                        const char*         name,
                                                        VmbInt64_t*         min,
                                                        VmbInt64_t*         max );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntIncrementQuery ( const VmbHandle_t   handle,
                                                            const char*         name,
                                                            VmbInt64_t*         value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntValidValueSetQuery(const VmbHandle_t   handle,
                                                              const char*         name,
                                                              VmbInt64_t*         buffer,
                                                              VmbUint32_t         bufferSize,
                                                              VmbUint32_t*        setSize);

IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatGet ( const VmbHandle_t   handle,
                                                   const char*         name,
                                                   double*             value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatSet ( const VmbHandle_t   handle,
                                                   const char*         name,
                                                   double              value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatRangeQuery ( const VmbHandle_t   handle,
                                                          const char*         name,
                                                          double*             min,
                                                          double*             max );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatIncrementQuery ( const VmbHandle_t   handle,
                                                              const char*         name,
                                                              VmbBool_t*          hasIncrement,
                                                              double*             value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumGet ( const VmbHandle_t   handle,
                                                  const char*         name,
                                                  const char**        value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumSet ( const VmbHandle_t   handle,
                                                  const char*         name,
                                                  const char*         value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumRangeQuery ( const VmbHandle_t   handle,
                                                         const char*         name,
                                                         const char**        nameArray,
                                                         VmbUint32_t         arrayLength,
                                                         VmbUint32_t*        numFound );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumIsAvailable ( const VmbHandle_t   handle,
                                                          const char*         name,
                                                          const char*         value,
                                                          VmbBool_t *         isAvailable );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumAsInt ( const VmbHandle_t   handle,
                                                    const char*         name,
                                                    const char*         value,
                                                    VmbInt64_t*         intVal );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumAsString ( VmbHandle_t   handle,
                                                       const char*   name,
                                                       VmbInt64_t    intValue,
                                                       const char**  stringValue );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumEntryGet ( const VmbHandle_t        handle,
                                                       const char*              featureName,
                                                       const char*              entryName,
                                                       VmbFeatureEnumEntry_t*   featureEnumEntry,
                                                       VmbUint32_t              sizeofFeatureEnumEntry );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringGet ( const VmbHandle_t   handle,
                                                    const char*         name,
                                                    char*               buffer,
                                                    VmbUint32_t         bufferSize,
                                                    VmbUint32_t*        sizeFilled );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringSet ( const VmbHandle_t   handle,
                                                    const char*         name,
                                                    const char*         value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringMaxlengthQuery ( const VmbHandle_t   handle,
                                                               const char*         name,
                                                               VmbUint32_t*        maxLength );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureBoolGet ( const VmbHandle_t   handle,
                                                  const char*         name,
                                                  VmbBool_t *         value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureBoolSet ( const VmbHandle_t   handle,
                                                  const char*         name,
                                                  VmbBool_t           value );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureCommandRun ( const VmbHandle_t   handle,
                                                     const char*         name );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureCommandIsDone ( const VmbHandle_t   handle,
                                                        const char*         name,
                                                        VmbBool_t *         isDone );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawGet ( const VmbHandle_t   handle,
                                                 const char*         name,
                                                 char*               buffer,
                                                 VmbUint32_t         bufferSize,
                                                 VmbUint32_t*        sizeFilled );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawSet ( const VmbHandle_t   handle,
                                                 const char*         name,
                                                 const char*         buffer,
                                                 VmbUint32_t         bufferSize );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawLengthQuery ( const VmbHandle_t   handle,
                                                         const char*         name,
                                                         VmbUint32_t*        length );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureInvalidationRegister ( VmbHandle_t              handle,
                                                               const char*              name,
                                                               VmbInvalidationCallback  callback,
                                                               void*                    userContext );

IMEXPORTC VmbError_t VMB_CALL VmbFeatureInvalidationUnregister ( VmbHandle_t              handle,
                                                                 const char*              name,
                                                                 VmbInvalidationCallback  callback );

IMEXPORTC VmbError_t VMB_CALL VmbPayloadSizeGet(VmbHandle_t     handle,
                                                VmbUint32_t*    payloadSize);

IMEXPORTC VmbError_t VMB_CALL VmbFrameAnnounce ( VmbHandle_t        handle,
                                                 const VmbFrame_t*  frame,
                                                 VmbUint32_t        sizeofFrame );


IMEXPORTC VmbError_t VMB_CALL VmbFrameRevoke ( VmbHandle_t          handle,
                                               const VmbFrame_t*    frame );


IMEXPORTC VmbError_t VMB_CALL VmbFrameRevokeAll ( VmbHandle_t  handle );


IMEXPORTC VmbError_t VMB_CALL VmbCaptureStart ( VmbHandle_t  handle );


IMEXPORTC VmbError_t VMB_CALL VmbCaptureEnd ( VmbHandle_t handle );


IMEXPORTC VmbError_t VMB_CALL VmbCaptureFrameQueue ( VmbHandle_t        handle,
                                                     const VmbFrame_t*  frame,
                                                     VmbFrameCallback   callback );

IMEXPORTC VmbError_t VMB_CALL VmbCaptureFrameWait ( const VmbHandle_t   handle,
                                                    const VmbFrame_t*   frame,
                                                    VmbUint32_t         timeout);


IMEXPORTC VmbError_t VMB_CALL VmbCaptureQueueFlush(VmbHandle_t handle);

IMEXPORTC VmbError_t VMB_CALL VmbTransportLayersList ( VmbTransportLayerInfo_t*   transportLayerInfo,
                                                       VmbUint32_t                listLength,
                                                       VmbUint32_t*               numFound,
                                                       VmbUint32_t                sizeofTransportLayerInfo);

IMEXPORTC VmbError_t VMB_CALL VmbInterfacesList ( VmbInterfaceInfo_t*   interfaceInfo,
                                                  VmbUint32_t           listLength,
                                                  VmbUint32_t*          numFound,
                                                  VmbUint32_t           sizeofInterfaceInfo );

//----- Memory/Register access --------------------------------------------

IMEXPORTC VmbError_t VMB_CALL VmbMemoryRead ( const VmbHandle_t   handle,
                                              VmbUint64_t         address,
                                              VmbUint32_t         bufferSize,
                                              char*               dataBuffer,
                                              VmbUint32_t*        sizeComplete );

IMEXPORTC VmbError_t VMB_CALL VmbMemoryWrite ( const VmbHandle_t   handle,
                                               VmbUint64_t         address,
                                               VmbUint32_t         bufferSize,
                                               const char*         dataBuffer,
                                               VmbUint32_t*        sizeComplete );

IMEXPORTC VmbError_t VMB_CALL VmbSettingsSave(VmbHandle_t                           handle,
                                              const VmbFilePathChar_t*              filePath,
                                              const VmbFeaturePersistSettings_t*    settings,
                                              VmbUint32_t                           sizeofSettings);

IMEXPORTC VmbError_t VMB_CALL VmbSettingsLoad(VmbHandle_t                           handle,
                                              const VmbFilePathChar_t*              filePath,
                                              const VmbFeaturePersistSettings_t*    settings,
                                              VmbUint32_t                           sizeofSettings);

IMEXPORTC VmbError_t VMB_CALL VmbChunkDataAccess(const VmbFrame_t*         frame,
                                                 VmbChunkAccessCallback    chunkAccessCallback,
                                                 void*                     userContext);

#ifdef __cplusplus
}
#endif

#endif // VMBC_H_INCLUDE_