VimbaC.h
Go to the documentation of this file.
1 /*=============================================================================
2  Copyright (C) 2012 - 2017 Allied Vision Technologies. All Rights Reserved.
3 
4  Redistribution of this header file, in original or modified form, without
5  prior written consent of Allied Vision Technologies is prohibited.
6 
7 -------------------------------------------------------------------------------
8 
9  File: VimbaC.h
10 
11  Description: Main header file for the VimbaC API.
12 
13 -------------------------------------------------------------------------------
14 
15  THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
16  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
17  NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
19  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
22  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
23  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
26 =============================================================================*/
27 
28 #ifndef VIMBAC_H_INCLUDE_
29 #define VIMBAC_H_INCLUDE_
30 
31 // This file describes all necessary definitions for using Allied Vision's
32 // VimbaC API. These type definitions are designed to be portable from other
33 // languages and other operating systems.
34 //
35 // General conventions:
36 // - Method names are composed in the following manner:
37 // - Vmb"Action" example: VmbStartup()
38 // - Vmb"Entity""Action" or Vmb"ActionTarget""Action" example: VmbInterfaceOpen()
39 // - Vmb"Entity""SubEntity/ActionTarget""Action" example: VmbFeatureCommandRun()
40 // - Methods dealing with features, memory or registers accept a handle from the following
41 // entity list as first parameter: System, Camera, Interface and AncillaryData.
42 // All other methods taking handles accept only a specific handle.
43 // - Strings (generally declared as "const char *") are assumed to have a trailing 0 character
44 // - All pointer parameters should of course be valid, except if stated otherwise.
45 // - To ensure compatibility with older programs linked against a former version of the API,
46 // all struct* parameters have an accompanying sizeofstruct parameter.
47 // - Functions returning lists are usually called twice: once with a zero buffer
48 // to get the length of the list, and then again with a buffer of the correct length.
49 
50 //===== #DEFINES ==============================================================
51 
52 #if defined (_WIN32)
53  #if defined AVT_VMBAPI_C_EXPORTS // DLL exports
54  #define IMEXPORTC /*__declspec(dllexport) HINT: We export via the .def file */
55  #elif defined AVT_VMBAPI_C_LIB // static LIB
56  #define IMEXPORTC
57  #else // import
58  #define IMEXPORTC __declspec(dllimport)
59  #endif
60 
61  #ifndef _WIN64
62  // Calling convention
63  #define VMB_CALL __stdcall
64  #else
65  // Calling convention
66  #define VMB_CALL
67  #endif
68 #elif defined (__GNUC__) && (__GNUC__ >= 4) && defined (__ELF__)
69  // SO exports (requires compiler option -fvisibility=hidden)
70  #ifdef AVT_VMBAPI_C_EXPORTS
71  #define IMEXPORTC __attribute__((visibility("default")))
72  #else
73  #define IMEXPORTC
74  #endif
75 
76  #ifdef __i386__
77  // Calling convention
78  #define VMB_CALL __attribute__((stdcall))
79  #else
80  // Calling convention
81  #define VMB_CALL
82  #endif
83 #elif defined (__APPLE__)
84  #define IMEXPORTC __attribute__((visibility("default")))
85  // Calling convention
86  #define VMB_CALL
87 #else
88  #error Unknown platform, file needs adaption
89 #endif
90 
91 //===== TYPES ==============================================================
92 #include "VmbCommonTypes.h"
93 
94 #ifdef __cplusplus
95 extern "C" {
96 #endif
97 
98 // Timeout parameter signaling a blocking call
99 #define VMBINFINITE 0xFFFFFFFF
100 
101 // Constant for the Vimba handle to be able to access Vimba system features
103 
104 //
105 // Camera interface type (for instance FireWire, Ethernet);
106 //
107 typedef enum VmbInterfaceType
108 {
109  VmbInterfaceUnknown = 0, // Interface is not known to this version of the API
110  VmbInterfaceFirewire = 1, // 1394
111  VmbInterfaceEthernet = 2, // GigE
112  VmbInterfaceUsb = 3, // USB 3.0
113  VmbInterfaceCL = 4, // Camera Link
114  VmbInterfaceCSI2 = 5, // CSI-2
116 typedef VmbUint32_t VmbInterface_t; // Type for an Interface; for values see VmbInterfaceType
117 
118 //
119 // Access mode for configurable devices (interfaces, cameras).
120 // Used in VmbCameraInfo_t, VmbInterfaceInfo_t as flags, so multiple modes can be
121 // announced, while in VmbCameraOpen(), no combination must be used.
122 //
123 typedef enum VmbAccessModeType
124 {
125  VmbAccessModeNone = 0, // No access
126  VmbAccessModeFull = 1, // Read and write access
127  VmbAccessModeRead = 2, // Read-only access
128  VmbAccessModeConfig = 4, // Configuration access (GeV)
129  VmbAccessModeLite = 8, // Read and write access without feature access (only addresses)
131 typedef VmbUint32_t VmbAccessMode_t; // Type for an AccessMode; for values see VmbAccessModeType
132 
133 //
134 // Interface information.
135 // Holds read-only information about an interface.
136 //
137 typedef struct
138 {
139  const char* interfaceIdString; // Unique identifier for each interface
140  VmbInterface_t interfaceType; // Interface type, see VmbInterfaceType
141  const char* interfaceName; // Interface name, given by the transport layer
142  const char* serialString; // Serial number
143  VmbAccessMode_t permittedAccess; // Used access mode, see VmbAccessModeType
145 
146 //
147 // Camera information.
148 // Holds read-only information about a camera.
149 //
150 typedef struct
151 {
152  const char* cameraIdString; // Unique identifier for each camera
153  const char* cameraName; // Name of the camera
154  const char* modelName; // Model name
155  const char* serialString; // Serial number
156  VmbAccessMode_t permittedAccess; // Used access mode, see VmbAccessModeType
157  const char* interfaceIdString; // Unique value for each interface or bus
159 
160 //
161 // Supported feature data types
162 //
163 typedef enum VmbFeatureDataType
164 {
165  VmbFeatureDataUnknown = 0, // Unknown feature type
166  VmbFeatureDataInt = 1, // 64 bit integer feature
167  VmbFeatureDataFloat = 2, // 64 bit floating point feature
168  VmbFeatureDataEnum = 3, // Enumeration feature
169  VmbFeatureDataString = 4, // String feature
170  VmbFeatureDataBool = 5, // Boolean feature
171  VmbFeatureDataCommand = 6, // Command feature
172  VmbFeatureDataRaw = 7, // Raw (direct register access) feature
173  VmbFeatureDataNone = 8, // Feature with no data
175 typedef VmbUint32_t VmbFeatureData_t; // Data type for a Feature; for values see VmbFeatureDataType
176 
177 //
178 // Feature visibility
179 //
181 {
182  VmbFeatureVisibilityUnknown = 0, // Feature visibility is not known
183  VmbFeatureVisibilityBeginner = 1, // Feature is visible in feature list (beginner level)
184  VmbFeatureVisibilityExpert = 2, // Feature is visible in feature list (expert level)
185  VmbFeatureVisibilityGuru = 3, // Feature is visible in feature list (guru level)
186  VmbFeatureVisibilityInvisible = 4, // Feature is not visible in feature list
188 typedef VmbUint32_t VmbFeatureVisibility_t; // Type for Feature visibility; for values see VmbFeatureVisibilityType
189 
190 //
191 // Feature flags
192 //
194 {
195  VmbFeatureFlagsNone = 0, // No additional information is provided
196  VmbFeatureFlagsRead = 1, // Static info about read access. Current status depends on access mode, check with VmbFeachtureAccessQuery()
197  VmbFeatureFlagsWrite = 2, // Static info about write access. Current status depends on access mode, check with VmbFeachtureAccessQuery()
198  VmbFeatureFlagsVolatile = 8, // Value may change at any time
199  VmbFeatureFlagsModifyWrite = 16, // Value may change after a write
201 typedef VmbUint32_t VmbFeatureFlags_t; // Type for Feature flags; for values see VmbFeatureFlagsType
202 
203 //
204 // Feature information.
205 // Holds read-only information about a feature.
206 //
207 typedef struct VmbFeatureInfo
208 {
209  const char* name; // Name used in the API
210  VmbFeatureData_t featureDataType; // Data type of this feature
211  VmbFeatureFlags_t featureFlags; // Access flags for this feature
212  const char* category; // Category this feature can be found in
213  const char* displayName; // Feature name to be used in GUIs
214  VmbUint32_t pollingTime; // Predefined polling time for volatile features
215  const char* unit; // Measuring unit as given in the XML file
216  const char* representation; // Representation of a numeric feature
218  const char* tooltip; // Short description, e.g. for a tooltip
219  const char* description; // Longer description
220  const char* sfncNamespace; // Namespace this feature resides in
221  VmbBool_t isStreamable; // Indicates if a feature can be stored to / loaded from a file
222  VmbBool_t hasAffectedFeatures; // Indicates if the feature potentially affects other features
223  VmbBool_t hasSelectedFeatures; // Indicates if the feature selects other features
225 
226 //
227 // Info about possible entries of an enumeration feature
228 //
229 typedef struct VmbFeatureEnumEntry
230 {
231  const char* name; // Name used in the API
232  const char* displayName; // Enumeration entry name to be used in GUIs
234  const char* tooltip; // Short description, e.g. for a tooltip
235  const char* description; // Longer description
236  const char* sfncNamespace; // Namespace this feature resides in
237  VmbInt64_t intValue; // Integer value of this enumeration entry
239 
240 //
241 // Status of a frame transfer
242 //
243 typedef enum VmbFrameStatusType
244 {
245  VmbFrameStatusComplete = 0, // Frame has been completed without errors
246  VmbFrameStatusIncomplete = -1, // Frame could not be filled to the end
247  VmbFrameStatusTooSmall = -2, // Frame buffer was too small
248  VmbFrameStatusInvalid = -3, // Frame buffer was invalid
250 typedef VmbInt32_t VmbFrameStatus_t; // Type for the frame status; for values see VmbFrameStatusType
251 
252 //
253 // Frame flags
254 //
255 typedef enum VmbFrameFlagsType
256 {
257  VmbFrameFlagsNone = 0, // No additional information is provided
258  VmbFrameFlagsDimension = 1, // Frame's dimension is provided
259  VmbFrameFlagsOffset = 2, // Frame's offset is provided (ROI)
260  VmbFrameFlagsFrameID = 4, // Frame's ID is provided
261  VmbFrameFlagsTimestamp = 8, // Frame's timestamp is provided
263 typedef VmbUint32_t VmbFrameFlags_t; // Type for Frame flags; for values see VmbFrameFlagsType
264 
265 //
266 // Frame delivered by the camera
267 //
268 typedef struct
269 {
270  //----- In -----
271  void* buffer; // Comprises image and ancillary data
272  VmbUint32_t bufferSize; // Size of the data buffer
273 
274  void* context[4]; // 4 void pointers that can be employed by the user (e.g. for storing handles)
275 
276  //----- Out -----
277  VmbFrameStatus_t receiveStatus; // Resulting status of the receive operation
278  VmbFrameFlags_t receiveFlags; // Flags indicating which additional frame information is available
279 
280  VmbUint32_t imageSize; // Size of the image data inside the data buffer
281  VmbUint32_t ancillarySize; // Size of the ancillary data inside the data buffer
282 
283  VmbPixelFormat_t pixelFormat; // Pixel format of the image
284 
285  VmbUint32_t width; // Width of an image
286  VmbUint32_t height; // Height of an image
287  VmbUint32_t offsetX; // Horizontal offset of an image
288  VmbUint32_t offsetY; // Vertical offset of an image
289 
290  VmbUint64_t frameID; // Unique ID of this frame in this stream
291  VmbUint64_t timestamp; // Timestamp set by the camera
292 } VmbFrame_t;
293 
294 //
295 // Type of features that are to be saved (persisted) to the XML file when using VmbCameraSettingsSave
296 //
298 {
299  VmbFeaturePersistAll = 0, // Save all features to XML, including look-up tables
300  VmbFeaturePersistStreamable = 1, // Save only features marked as streamable, excluding look-up tables
301  VmbFeaturePersistNoLUT = 2 // Save all features except look-up tables (default)
303 typedef VmbUint32_t VmbFeaturePersist_t; // Type for feature persistence; for values see VmbFeaturePersistType
304 
305 //
306 // Parameters determining the operation mode of VmbCameraSettingsSave and VmbCameraSettingsLoad
307 //
308 typedef struct
309 {
310  VmbFeaturePersist_t persistType; // Type of features that are to be saved
311  VmbUint32_t maxIterations; // Number of iterations when loading settings
312  VmbUint32_t loggingLevel; // Determines level of detail for load/save settings logging
314 
315 
316 // ----- Callbacks ------------------------------------------------------------
317 
318 //
319 // Name: VmbInvalidationCallback
320 //
321 // Purpose: Invalidation Callback type for a function that gets called in a separate thread
322 // and has been registered with VmbFeatureInvalidationRegister()
323 //
324 // Parameters:
325 //
326 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
327 // [in ] const char* name Name of the feature
328 // [in ] void* pUserContext Pointer to the user context, see VmbFeatureInvalidationRegister
329 //
330 // Details: While the callback is run, all feature data is atomic. After the
331 // callback finishes, the feature data might be updated with new values.
332 //
333 // Note: Do not spend too much time in this thread; it will prevent the feature values
334 // from being updated from any other thread or the lower-level drivers.
335 //
336 typedef void (VMB_CALL *VmbInvalidationCallback)( const VmbHandle_t handle, const char* name, void* pUserContext );
337 
338 //
339 // Name: VmbFrameCallback
340 //
341 // Purpose: Frame Callback type for a function that gets called in a separate thread
342 // if a frame has been queued with VmbCaptureFrameQueue()
343 //
344 // Parameters:
345 //
346 // [in ] const VmbHandle_t cameraHandle Handle of the camera
347 // [out] VmbFrame_t* pFrame Frame completed
348 //
349 typedef void (VMB_CALL *VmbFrameCallback)( const VmbHandle_t cameraHandle, VmbFrame_t* pFrame );
350 
351 
352 //===== FUNCTION PROTOTYPES ===================================================
353 
354 //----- API Version -----------------------------------------------------------
355 
356 //
357 // Method: VmbVersionQuery()
358 //
359 // Purpose: Retrieve the version number of VimbaC.
360 //
361 // Parameters:
362 //
363 // [out] VmbVersionInfo_t* pVersionInfo Pointer to the struct where version information
364 // is copied
365 // [in ] VmbUint32_t sizeofVersionInfo Size of structure in bytes
366 //
367 // Returns:
368 //
369 // - VmbErrorSuccess: If no error
370 // - VmbErrorStructSize: The given struct size is not valid for this version of the API
371 // - VmbErrorBadParameter: If "pVersionInfo" is NULL.
372 //
373 // Details: This function can be called at anytime, even before the API is
374 // initialized. All other version numbers may be queried via feature access.
375 //
376 IMEXPORTC VmbError_t VMB_CALL VmbVersionQuery ( VmbVersionInfo_t* pVersionInfo,
377  VmbUint32_t sizeofVersionInfo );
378 
379 
380 //----- API Initialization ----------------------------------------------------
381 
382 //
383 // Method: VmbStartup()
384 //
385 // Purpose: Initialize the VimbaC API.
386 //
387 // Parameters:
388 //
389 // Returns:
390 //
391 // - VmbErrorSuccess: If no error
392 // - VmbErrorInternalFault: An internal fault occurred
393 //
394 // Details: On successful return, the API is initialized; this is a necessary call.
395 //
396 // Note: This method must be called before any VimbaC function other than VmbVersionQuery() is run.
397 //
398 IMEXPORTC VmbError_t VMB_CALL VmbStartup ( void );
399 
400 //
401 // Method: VmbShutdown()
402 //
403 // Purpose: Perform a shutdown on the API.
404 //
405 // Parameters: none
406 //
407 // Returns: none
408 //
409 // Details: This will free some resources and deallocate all physical resources if applicable.
410 //
411 IMEXPORTC void VMB_CALL VmbShutdown ( void );
412 
413 
414 //----- Camera Enumeration & Information --------------------------------------
415 
416 //
417 // Method: VmbCamerasList()
418 //
419 // Purpose: Retrieve a list of all cameras.
420 //
421 // Parameters:
422 //
423 // [out] VmbCameraInfo_t* pCameraInfo Array of VmbCameraInfo_t, allocated by
424 // the caller. The camera list is
425 // copied here. May be NULL if pNumFound is used for size query.
426 // [in ] VmbUint32_t listLength Number of VmbCameraInfo_t elements provided
427 // [out] VmbUint32_t* pNumFound Number of VmbCameraInfo_t elements found.
428 // [in ] VmbUint32_t sizeofCameraInfo Size of the structure (if pCameraInfo == NULL this parameter is ignored)
429 //
430 // Returns:
431 //
432 // - VmbErrorSuccess: If no error
433 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
434 // - VmbErrorStructSize: The given struct size is not valid for this API version
435 // - VmbErrorMoreData: The given list length was insufficient to hold all available entries
436 // - VmbErrorBadParameter: If "pNumFound" was NULL
437 //
438 // Details: Camera detection is started with the registration of the "DiscoveryCameraEvent"
439 // event or the first call of VmbCamerasList(), which may be delayed if no
440 // "DiscoveryCameraEvent" event is registered (see examples).
441 // VmbCamerasList() is usually called twice: once with an empty array to query the
442 // list length, and then again with an array of the correct length. If camera
443 // lists change between the calls, pNumFound may deviate from the query return.
444 //
445 IMEXPORTC VmbError_t VMB_CALL VmbCamerasList ( VmbCameraInfo_t* pCameraInfo,
446  VmbUint32_t listLength,
447  VmbUint32_t* pNumFound,
448  VmbUint32_t sizeofCameraInfo );
449 
450 //
451 // Method: VmbCameraInfoQuery()
452 //
453 // Purpose: Retrieve information on a camera given by an ID.
454 //
455 // Parameters:
456 //
457 // [in ] const char* idString ID of the camera
458 // [out] VmbCameraInfo_t* pInfo Structure where information will be copied. May be NULL.
459 // [in ] VmbUint32_t sizeofCameraInfo Size of the structure
460 //
461 // Returns:
462 //
463 // - VmbErrorSuccess: If no error
464 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
465 // - VmbErrorNotFound: The designated camera cannot be found
466 // - VmbErrorStructSize: The given struct size is not valid for this API version
467 // - VmbErrorBadParameter: If "idString" was NULL
468 //
469 // Details: May be called if a camera has not been opened by the application yet.
470 // Examples for "idString":
471 // "DEV_81237473991" for an ID given by a transport layer,
472 // "169.254.12.13" for an IP address,
473 // "000F314C4BE5" for a MAC address or
474 // "DEV_1234567890" for an ID as reported by Vimba
475 //
476 IMEXPORTC VmbError_t VMB_CALL VmbCameraInfoQuery ( const char* idString,
477  VmbCameraInfo_t* pInfo,
478  VmbUint32_t sizeofCameraInfo );
479 
480 //
481 // Method: VmbCameraOpen()
482 //
483 // Purpose: Open the specified camera.
484 //
485 // Parameters:
486 //
487 // [in ] const char* idString ID of the camera
488 // [in ] VmbAccessMode_t accessMode Determines the level of control you have on the camera
489 // [out] VmbHandle_t* pCameraHandle A camera handle
490 //
491 // Returns:
492 //
493 // - VmbErrorSuccess: If no error
494 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
495 // - VmbErrorNotFound: The designated camera cannot be found
496 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
497 // - VmbErrorInvalidCall: If called from frame callback
498 // - VmbErrorBadParameter: If "idString" or "pCameraHandle" is NULL
499 //
500 // Details: A camera may be opened in a specific access mode, which determines
501 // the level of control you have on a camera.
502 // Examples for "idString":
503 // "DEV_81237473991" for an ID given by a transport layer,
504 // "169.254.12.13" for an IP address,
505 // "000F314C4BE5" for a MAC address or
506 // "DEV_1234567890" for an ID as reported by Vimba
507 //
508 IMEXPORTC VmbError_t VMB_CALL VmbCameraOpen ( const char* idString,
509  VmbAccessMode_t accessMode,
510  VmbHandle_t* pCameraHandle );
511 
512 //
513 // Method: VmbCameraClose()
514 //
515 // Purpose: Close the specified camera.
516 //
517 // Parameters:
518 //
519 // [in ] const VmbHandle_t cameraHandle A valid camera handle
520 //
521 // Returns:
522 //
523 // - VmbErrorSuccess: If no error
524 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
525 // - VmbErrorInvalidCall: If called from frame callback
526 //
527 // Details: Depending on the access mode this camera was opened with, events are killed,
528 // callbacks are unregistered, and camera control is released.
529 //
530 IMEXPORTC VmbError_t VMB_CALL VmbCameraClose ( const VmbHandle_t cameraHandle );
531 
532 
533 //----- Features ----------------------------------------------------------
534 
535 //
536 // Method: VmbFeaturesList()
537 //
538 // Purpose: List all the features for this entity.
539 //
540 // Parameters:
541 //
542 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
543 // [out] VmbFeatureInfo_t* pFeatureInfoList An array of VmbFeatureInfo_t to be filled by the API. May be NULL if pNumFund is used for size query.
544 // [in ] VmbUint32_t listLength Number of VmbFeatureInfo_t elements provided
545 // [out] VmbUint32_t* pNumFound Number of VmbFeatureInfo_t elements found. May be NULL if pFeatureInfoList is not NULL.
546 // [in ] VmbUint32_t sizeofFeatureInfo Size of a VmbFeatureInfo_t entry
547 //
548 // Returns:
549 //
550 // - VmbErrorSuccess: If no error
551 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
552 // - VmbErrorBadHandle: The given handle is not valid
553 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
554 // - VmbErrorStructSize: The given struct size of VmbFeatureInfo_t is not valid for this version of the API
555 // - VmbErrorMoreData: The given list length was insufficient to hold all available entries
556 //
557 // Details: This method lists all implemented features, whether they are currently available or not.
558 // The list of features does not change as long as the camera/interface is connected.
559 // "pNumFound" returns the number of VmbFeatureInfo elements.
560 // This function is usually called twice: once with an empty list to query the length
561 // of the list, and then again with an list of the correct length.
562 //
563 //
564 IMEXPORTC VmbError_t VMB_CALL VmbFeaturesList ( const VmbHandle_t handle,
565  VmbFeatureInfo_t* pFeatureInfoList,
566  VmbUint32_t listLength,
567  VmbUint32_t* pNumFound,
568  VmbUint32_t sizeofFeatureInfo );
569 
570 //
571 // Method: VmbFeatureInfoQuery()
572 //
573 // Purpose: Query information about the constant properties of a feature.
574 //
575 // Parameters:
576 //
577 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
578 // [in ] const char* name Name of the feature
579 // [out] VmbFeatureInfo_t* pFeatureInfo The feature info to query
580 // [in ] VmbUint32_t sizeofFeatureInfo Size of the structure
581 //
582 // Returns:
583 //
584 // - VmbErrorSuccess: If no error
585 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
586 // - VmbErrorBadHandle: The given handle is not valid
587 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
588 // - VmbErrorStructSize: The given struct size is not valid for this version of the API
589 //
590 // Details: Users provide a pointer to VmbFeatureInfo_t, which is then set to the internal representation.
591 //
592 IMEXPORTC VmbError_t VMB_CALL VmbFeatureInfoQuery ( const VmbHandle_t handle,
593  const char* name,
594  VmbFeatureInfo_t* pFeatureInfo,
595  VmbUint32_t sizeofFeatureInfo );
596 
597 //
598 // Method: VmbFeatureListAffected()
599 //
600 // Purpose: List all the features that might be affected by changes to this feature.
601 //
602 // Parameters:
603 //
604 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
605 // [in ] const char* name Name of the feature
606 // [out] VmbFeatureInfo_t* pFeatureInfoList An array of VmbFeatureInfo_t to be filled by the API. May be NULL if pNumFound is used for size query.
607 // [in ] VmbUint32_t listLength Number of VmbFeatureInfo_t elements provided
608 // [out] VmbUint32_t* pNumFound Number of VmbFeatureInfo_t elements found. May be NULL is pFeatureInfoList is not NULL.
609 // [in ] VmbUint32_t sizeofFeatureInfo Size of a VmbFeatureInfo_t entry
610 //
611 // Returns:
612 //
613 // - VmbErrorSuccess: If no error
614 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
615 // - VmbErrorBadHandle: The given handle is not valid
616 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
617 // - VmbErrorStructSize: The given struct size of VmbFeatureInfo_t is not valid for this version of the API
618 // - VmbErrorMoreData: The given list length was insufficient to hold all available entries
619 //
620 // Details: This method lists all affected features, whether they are currently available or not.
621 // The value of affected features depends directly or indirectly on this feature
622 // (including all selected features).
623 // The list of features does not change as long as the camera/interface is connected.
624 // This function is usually called twice: once with an empty array to query the length
625 // of the list, and then again with an array of the correct length.
626 //
627 IMEXPORTC VmbError_t VMB_CALL VmbFeatureListAffected ( const VmbHandle_t handle,
628  const char* name,
629  VmbFeatureInfo_t* pFeatureInfoList,
630  VmbUint32_t listLength,
631  VmbUint32_t* pNumFound,
632  VmbUint32_t sizeofFeatureInfo );
633 
634 //
635 // Method: VmbFeatureListSelected()
636 //
637 // Purpose: List all the features selected by a given feature for this module.
638 //
639 // Parameters:
640 //
641 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
642 // [in ] const char* name Name of the feature
643 // [out] VmbFeatureInfo_t* pFeatureInfoList An array of VmbFeatureInfo_t to be filled by the API. May be NULL if pNumFound is used for size query.
644 // [in ] VmbUint32_t listLength Number of VmbFeatureInfo_t elements provided
645 // [out] VmbUint32_t* pNumFound Number of VmbFeatureInfo_t elements found. May be NULL if pFeatureInfoList is not NULL.
646 // [in ] VmbUint32_t sizeofFeatureInfo Size of a VmbFeatureInfo_t entry
647 //
648 // Returns:
649 //
650 // - VmbErrorSuccess: If no error
651 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
652 // - VmbErrorBadHandle: The given handle is not valid
653 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
654 // - VmbErrorStructSize: The given struct size is not valid for this version of the API
655 // - VmbErrorMoreData: The given list length was insufficient to hold all available entries
656 //
657 // Details: This method lists all selected features, whether they are currently available or not.
658 // Features with selected features ("selectors") have no direct impact on the camera,
659 // but only influence the register address that selected features point to.
660 // The list of features does not change while the camera/interface is connected.
661 // This function is usually called twice: once with an empty array to query the length
662 // of the list, and then again with an array of the correct length.
663 //
664 IMEXPORTC VmbError_t VMB_CALL VmbFeatureListSelected ( const VmbHandle_t handle,
665  const char* name,
666  VmbFeatureInfo_t* pFeatureInfoList,
667  VmbUint32_t listLength,
668  VmbUint32_t* pNumFound,
669  VmbUint32_t sizeofFeatureInfo );
670 
671 //
672 // Method: VmbFeatureAccessQuery()
673 //
674 // Purpose: Return the dynamic read and write capabilities of this feature.
675 //
676 // Parameters:
677 //
678 // [in ] const VmbHandle_t handle Handle for an entity that exposes features.
679 // [in ] const char * name Name of the feature.
680 // [out] VmbBool_t * pIsReadable Indicates if this feature is readable. May be NULL.
681 // [out] VmbBool_t * pIsWriteable Indicates if this feature is writable. May be NULL.
682 //
683 // Returns:
684 //
685 // - VmbErrorSuccess: If no error
686 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
687 // - VmbErrorBadHandle: The given handle is not valid
688 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
689 // - VmbErrorBadParameter: If "pIsReadable" and "pIsWriteable" were both NULL
690 // - VmbErrorNotFound: The feature was not found
691 //
692 // Details: The access mode of a feature may change. For example, if "PacketSize"
693 // is locked while image data is streamed, it is only readable.
694 //
695 IMEXPORTC VmbError_t VMB_CALL VmbFeatureAccessQuery ( const VmbHandle_t handle,
696  const char* name,
697  VmbBool_t * pIsReadable,
698  VmbBool_t * pIsWriteable );
699 
700 
701 //-----Integer --------
702 
703 //
704 // Method: VmbFeatureIntGet()
705 //
706 // Purpose: Get the value of an integer feature.
707 //
708 // Parameters:
709 //
710 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
711 // [in ] const char* name Name of the feature
712 // [out] VmbInt64_t* pValue Value to get
713 //
714 // Returns:
715 //
716 // - VmbErrorSuccess: If no error
717 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
718 // - VmbErrorBadHandle: The given handle is not valid
719 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
720 // - VmbErrorWrongType: The type of feature "name" is not Integer
721 // - VmbErrorNotFound: The feature was not found
722 // - VmbErrorBadParameter: If "name" or "pValue" is NULL
723 //
724 IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntGet ( const VmbHandle_t handle,
725  const char* name,
726  VmbInt64_t* pValue );
727 
728 //
729 // Method: VmbFeatureIntSet()
730 //
731 // Purpose: Set the value of an integer feature.
732 //
733 // Parameters:
734 //
735 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
736 // [in ] const char* name Name of the feature
737 // [in ] VmbInt64_t value Value to set
738 //
739 // Returns:
740 //
741 // - VmbErrorSuccess: If no error
742 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
743 // - VmbErrorBadHandle: The given handle is not valid
744 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
745 // - VmbErrorWrongType: The type of feature "name" is not Integer
746 // - VmbErrorInvalidValue: If "value" is either out of bounds or not an increment of the minimum
747 // - VmbErrorBadParameter: If "name" is NULL
748 // - VmbErrorNotFound: If the feature was not found
749 // - VmbErrorInvalidCall: If called from frame callback
750 //
751 IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntSet ( const VmbHandle_t handle,
752  const char* name,
753  VmbInt64_t value );
754 
755 //
756 // Method: VmbFeatureIntRangeQuery()
757 //
758 // Purpose: Query the range of an integer feature.
759 //
760 // Parameters:
761 //
762 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
763 // [in ] const char* name Name of the feature
764 // [out] VmbInt64_t* pMin Minimum value to be returned. May be NULL.
765 // [out] VmbInt64_t* pMax Maximum value to be returned. May be NULL.
766 //
767 // Returns:
768 //
769 // - VmbErrorSuccess: If no error
770 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
771 // - VmbErrorBadHandle: The given handle is not valid
772 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
773 // - VmbErrorBadParameter: If "name" is NULL or "pMin" and "pMax" are NULL
774 // - VmbErrorWrongType: The type of feature "name" is not Integer
775 // - VmbErrorNotFound: If the feature was not found
776 //
777 IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntRangeQuery ( const VmbHandle_t handle,
778  const char* name,
779  VmbInt64_t* pMin,
780  VmbInt64_t* pMax );
781 
782 //
783 // Method: VmbFeatureIntIncrementQuery()
784 //
785 // Purpose: Query the increment of an integer feature.
786 //
787 // Parameters:
788 //
789 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
790 // [in ] const char* name Name of the feature
791 // [out] VmbInt64_t* pValue Value of the increment to get.
792 //
793 // Returns:
794 //
795 // - VmbErrorSuccess: If no error
796 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
797 // - VmbErrorBadHandle: The given handle is not valid
798 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
799 // - VmbErrorWrongType: The type of feature "name" is not Integer
800 // - VmbErrorNotFound: The feature was not found
801 // VmbErrorBadParameter: If "name" or "pValue" is NULL
802 //
803 IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntIncrementQuery ( const VmbHandle_t handle,
804  const char* name,
805  VmbInt64_t* pValue );
806 
807 //-----Float --------
808 
809 //
810 // Method: VmbFeatureFloatGet()
811 //
812 // Purpose: Get the value of a float feature.
813 //
814 // Parameters:
815 //
816 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
817 // [in ] const char* name Name of the feature
818 // [out] double* pValue Value to get
819 //
820 // Returns:
821 //
822 // - VmbErrorSuccess: If no error
823 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
824 // - VmbErrorBadHandle: The given handle is not valid
825 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
826 // - VmbErrorWrongType: The type of feature "name" is not Float
827 // - VmbErrorBadParameter: If "name" or "pValue" is NULL
828 // - VmbErrorNotFound: The feature was not found
829 //
830 IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatGet ( const VmbHandle_t handle,
831  const char* name,
832  double* pValue );
833 
834 //
835 // Method: VmbFeatureFloatSet()
836 //
837 // Purpose: Set the value of a float feature.
838 //
839 // Parameters:
840 //
841 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
842 // [in ] const char* name Name of the feature
843 // [in ] double value Value to set
844 //
845 // Returns:
846 //
847 // - VmbErrorSuccess: If no error
848 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
849 // - VmbErrorBadHandle: The given handle is not valid
850 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
851 // - VmbErrorWrongType: The type of feature "name" is not Float
852 // - VmbErrorInvalidValue: If "value" is not within valid bounds
853 // - VmbErrorNotFound: The feature was not found
854 // - VmbErrorBadParameter: If "name" is NULL
855 // - VmbErrorInvalidCall: If called from frame callback
856 //
857 IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatSet ( const VmbHandle_t handle,
858  const char* name,
859  double value );
860 
861 //
862 // Method: VmbFeatureFloatRangeQuery()
863 //
864 // Purpose: Query the range of a float feature.
865 //
866 // Parameters:
867 //
868 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
869 // [in ] const char* name Name of the feature
870 // [out] double* pMin Minimum value to be returned. May be NULL.
871 // [out] double* pMax Maximum value to be returned. May be NULL.
872 //
873 // Returns:
874 //
875 // - VmbErrorSuccess: If no error
876 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
877 // - VmbErrorBadHandle: The given handle is not valid
878 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
879 // - VmbErrorWrongType: The type of feature "name" is not Float
880 // - VmbErrorNotFound: The feature was not found
881 // - VmbBadParameter: If "name" is NULL or "pMin" and "pMax" are NULL
882 //
883 // Details: Only one of the values may be queried if the other parameter is set to NULL,
884 // but if both parameters are NULL, an error is returned.
885 //
886 IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatRangeQuery ( const VmbHandle_t handle,
887  const char* name,
888  double* pMin,
889  double* pMax );
890 
891 //
892 // Method: VmbFeatureFloatIncrementQuery()
893 //
894 // Purpose: Query the increment of an float feature.
895 //
896 // Parameters:
897 //
898 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
899 // [in ] const char* name Name of the feature
900 // [out] VmbBool_t * pHasIncrement "true" if this float feature has an increment.
901 // [out] double* pValue Value of the increment to get.
902 //
903 // Returns:
904 //
905 // - VmbErrorSuccess: If no error
906 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
907 // - VmbErrorBadHandle: The given handle is not valid
908 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
909 // - VmbErrorWrongType: The type of feature "name" is not Integer
910 // - VmbErrorNotFound: The feature was not found
911 // VmbErrorBadParameter: If "name" or "pValue" is NULL
912 //
913 IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatIncrementQuery ( const VmbHandle_t handle,
914  const char* name,
915  VmbBool_t* pHasIncrement,
916  double* pValue );
917 //-----Enum --------
918 
919 //
920 // Method: VmbFeatureEnumGet()
921 //
922 // Purpose: Get the value of an enumeration feature.
923 //
924 // Parameters:
925 //
926 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
927 // [in ] const char* name Name of the feature
928 // [out] const char** pValue The current enumeration value. The returned value
929 // is a reference to the API value
930 //
931 // Returns:
932 //
933 // - VmbErrorSuccess: If no error
934 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
935 // - VmbErrorBadHandle: The given handle is not valid
936 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
937 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
938 // - VmbErrorNotFound: The feature was not found
939 // - VmbErrorBadParameter: If "name" or "pValue" is NULL
940 //
941 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumGet ( const VmbHandle_t handle,
942  const char* name,
943  const char** pValue );
944 
945 //
946 // Method: VmbFeatureEnumSet()
947 //
948 // Purpose: Set the value of an enumeration feature.
949 //
950 // Parameters:
951 //
952 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
953 // [in ] const char* name Name of the feature
954 // [in ] const char* value Value to set
955 //
956 // Returns:
957 //
958 // - VmbErrorSuccess: If no error
959 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
960 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
961 // - VmbErrorBadHandle: The given handle is not valid
962 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
963 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
964 // - VmbErrorInvalidValue: If "value" is not within valid bounds
965 // - VmbErrorNotFound: The feature was not found
966 // - VmbErrorBadParameter: If "name" ore "value" is NULL
967 // - VmbErrorInvalidCall: If called from frame callback
968 //
969 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumSet ( const VmbHandle_t handle,
970  const char* name,
971  const char* value );
972 
973 //
974 // Method: VmbFeatureEnumRangeQuery()
975 //
976 // Purpose: Query the value range of an enumeration feature.
977 //
978 // Parameters:
979 //
980 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
981 // [in ] const char* name Name of the feature
982 // [out] const char** pNameArray An array of enumeration value names; may be NULL if pNumFilled is used for size query
983 // [in ] VmbUint32_t arrayLength Number of elements in the array
984 // [out] VmbUint32_t * pNumFilled Number of filled elements; may be NULL if pNameArray is not NULL
985 //
986 // Returns:
987 //
988 // - VmbErrorSuccess: If no error
989 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
990 // - VmbErrorBadHandle: The given handle is not valid
991 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
992 // - VmbErrorMoreData: The given array length was insufficient to hold all available entries
993 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
994 // - VmbErrorNotFound: The feature was not found
995 // - VmbErrorBadParameter: If "name" is NULL or "pNameArray" and "pNumFilled" are NULL
996 //
997 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumRangeQuery ( const VmbHandle_t handle,
998  const char* name,
999  const char** pNameArray,
1000  VmbUint32_t arrayLength,
1001  VmbUint32_t* pNumFilled );
1002 
1003 //
1004 // Method: VmbFeatureEnumIsAvailable()
1005 //
1006 // Purpose: Check if a certain value of an enumeration is available.
1007 //
1008 // Parameters:
1009 //
1010 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1011 // [in ] const char* name Name of the feature
1012 // [in ] const char* value Value to check
1013 // [out] VmbBool_t * pIsAvailable Indicates if the given enumeration value is available
1014 //
1015 // Returns:
1016 //
1017 // - VmbErrorSuccess: If no error
1018 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1019 // - VmbErrorBadHandle: The given handle is not valid
1020 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1021 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
1022 // - VmbErrorNotFound: The feature was not found
1023 // - VmbErrorBadParameter: If "name" or "value" or "pIsAvailable" is NULL
1024 //
1025 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumIsAvailable ( const VmbHandle_t handle,
1026  const char* name,
1027  const char* value,
1028  VmbBool_t * pIsAvailable );
1029 
1030 //
1031 // Method: VmbFeatureEnumAsInt()
1032 //
1033 // Purpose: Get the integer value for a given enumeration string value.
1034 //
1035 // Parameters:
1036 //
1037 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1038 // [in ] const char* name Name of the feature
1039 // [in ] const char* value The enumeration value to get the integer value for
1040 // [out] VmbInt64_t* pIntVal The integer value for this enumeration entry
1041 //
1042 // Returns:
1043 //
1044 // - VmbErrorSuccess: If no error
1045 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1046 // - VmbErrorBadHandle: The given handle is not valid
1047 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1048 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
1049 // - VmbErrorNotFound: The feature was not found
1050 // - VmbErrorBadParameter: If "name" or "value" or "pIntVal" is NULL
1051 //
1052 // Details: Converts a name of an enum member into an int value ("Mono12Packed" to 0x10C0006)
1053 //
1054 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumAsInt ( const VmbHandle_t handle,
1055  const char* name,
1056  const char* value,
1057  VmbInt64_t* pIntVal );
1058 
1059 //
1060 // Method: VmbFeatureEnumAsString()
1061 //
1062 // Purpose: Get the enumeration string value for a given integer value.
1063 //
1064 // Parameters:
1065 //
1066 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1067 // [in ] const char* name Name of the feature
1068 // [in ] VmbInt64_t intValue The numeric value
1069 // [out] const char** pStringValue The string value for the numeric value
1070 //
1071 // Returns:
1072 //
1073 // - VmbErrorSuccess: If no error
1074 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1075 // - VmbErrorBadHandle: The given handle is not valid
1076 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1077 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
1078 // - VmbErrorNotFound: The feature was not found
1079 // - VmbErrorBadParameter: If "name" or "pStringValue" is NULL
1080 //
1081 // Details: Converts an int value to a name of an enum member (e.g. 0x10C0006 to "Mono12Packed")
1082 //
1083 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumAsString ( const VmbHandle_t handle,
1084  const char* name,
1085  VmbInt64_t intValue,
1086  const char** pStringValue );
1087 
1088 //
1089 // Method: VmbFeatureEnumEntryGet()
1090 //
1091 // Purpose: Get infos about an entry of an enumeration feature.
1092 //
1093 // Parameters:
1094 //
1095 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1096 // [in ] const char* featureName Name of the feature
1097 // [in ] const char* entryName Name of the enum entry of that feature
1098 // [out] VmbFeatureEnumEntry_t* pFeatureEnumEntry Infos about that entry returned by the API
1099 // [in] VmbUint32_t sizeofFeatureEnumEntry Size of the structure
1100 //
1101 // Returns:
1102 //
1103 // - VmbErrorSuccess: If no error
1104 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1105 // - VmbErrorBadHandle: The given handle is not valid
1106 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1107 // - VmbErrorStructSize Size of VmbFeatureEnumEntry_t is not compatible with the API version
1108 // - VmbErrorWrongType: The type of feature "name" is not Enumeration
1109 // - VmbErrorNotFound: The feature was not found
1110 // - VmbErrorBadParameter: If "featureName" or "entryName" or "pFeatureEnumEntry" is NULL
1111 //
1112 IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumEntryGet ( const VmbHandle_t handle,
1113  const char* featureName,
1114  const char* entryName,
1115  VmbFeatureEnumEntry_t* pFeatureEnumEntry,
1116  VmbUint32_t sizeofFeatureEnumEntry );
1117 
1118 //-----String --------
1119 
1120 //
1121 // Method: VmbFeatureStringGet()
1122 //
1123 // Purpose: Get the value of a string feature.
1124 //
1125 // Parameters:
1126 //
1127 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1128 // [in ] const char* name Name of the string feature
1129 // [out] char* buffer String buffer to fill. May be NULL if pSizeFilled is used for size query.
1130 // [in ] VmbUint32_t bufferSize Size of the input buffer
1131 // [out] VmbUint32_t* pSizeFilled Size actually filled. May be NULL if buffer is not NULL.
1132 //
1133 // Returns:
1134 //
1135 // - VmbErrorSuccess: If no error
1136 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1137 // - VmbErrorBadHandle: The given handle is not valid
1138 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1139 // - VmbErrorMoreData: The given buffer size was too small
1140 // - VmbErrorNotFound: The feature was not found
1141 // - VmbErrorWrongType: The type of feature "name" is not String
1142 //
1143 // Details: This function is usually called twice: once with an empty buffer to query the length
1144 // of the string, and then again with a buffer of the correct length.
1145 
1146 IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringGet ( const VmbHandle_t handle,
1147  const char* name,
1148  char* buffer,
1149  VmbUint32_t bufferSize,
1150  VmbUint32_t* pSizeFilled );
1151 
1152 //
1153 // Method: VmbFeatureStringSet()
1154 //
1155 // Purpose: Set the value of a string feature.
1156 //
1157 // Parameters:
1158 //
1159 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1160 // [in ] const char* name Name of the string feature
1161 // [in ] const char* value Value to set
1162 //
1163 // Returns:
1164 //
1165 // - VmbErrorSuccess: If no error
1166 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1167 // - VmbErrorBadHandle: The given handle is not valid
1168 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1169 // - VmbErrorNotFound: The feature was not found
1170 // - VmbErrorWrongType: The type of feature "name" is not String
1171 // - VmbErrorInvalidValue: If length of "value" exceeded the maximum length
1172 // - VmbErrorBadParameter: If "name" or "value" is NULL
1173 // - VmbErrorInvalidCall: If called from frame callback
1174 //
1175 IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringSet ( const VmbHandle_t handle,
1176  const char* name,
1177  const char* value );
1178 
1179 //
1180 // Method: VmbFeatureStringMaxlengthQuery()
1181 //
1182 // Purpose: Get the maximum length of a string feature.
1183 //
1184 // Parameters:
1185 //
1186 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1187 // [in ] const char* name Name of the string feature
1188 // [out] VmbUint32_t* pMaxLength Maximum length of this string feature
1189 //
1190 // Returns:
1191 //
1192 // - VmbErrorSuccess: If no error
1193 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1194 // - VmbErrorBadHandle: The given handle is not valid
1195 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1196 // - VmbErrorWrongType: The type of feature "name" is not String
1197 // - VmbErrorBadParameter: If "name" or "pMaxLength" is NULL
1198 //
1199 IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringMaxlengthQuery ( const VmbHandle_t handle,
1200  const char* name,
1201  VmbUint32_t* pMaxLength );
1202 
1203 //-----Boolean --------
1204 
1205 //
1206 // Method: VmbFeatureBoolGet()
1207 //
1208 // Purpose: Get the value of a boolean feature.
1209 //
1210 // Parameters:
1211 //
1212 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1213 // [in ] const char* name Name of the boolean feature
1214 // [out] VmbBool_t * pValue Value to be read
1215 //
1216 // Returns:
1217 //
1218 // - VmbErrorSuccess: If no error
1219 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1220 // - VmbErrorBadHandle: The given handle is not valid
1221 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1222 // - VmbErrorWrongType: The type of feature "name" is not Boolean
1223 // - VmbErrorNotFound: If feature is not found
1224 // - VmbErrorBadParameter: If "name" or "pValue" is NULL
1225 //
1226 IMEXPORTC VmbError_t VMB_CALL VmbFeatureBoolGet ( const VmbHandle_t handle,
1227  const char* name,
1228  VmbBool_t * pValue );
1229 
1230 //
1231 // Method: VmbFeatureBoolSet()
1232 //
1233 // Purpose: Set the value of a boolean feature.
1234 //
1235 // Parameters:
1236 //
1237 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1238 // [in ] const char* name Name of the boolean feature
1239 // [in ] VmbBool_t value Value to write
1240 //
1241 // Returns:
1242 //
1243 // - VmbErrorSuccess: If no error
1244 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1245 // - VmbErrorBadHandle: The given handle is not valid
1246 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1247 // - VmbErrorWrongType: The type of feature "name" is not Boolean
1248 // - VmbErrorInvalidValue: If "value" is not within valid bounds
1249 // - VmbErrorNotFound: If the feature is not found
1250 // - VmbErrorBadParameter: If "name" is NULL
1251 // - VmbErrorInvalidCall: If called from frame callback
1252 //
1253 IMEXPORTC VmbError_t VMB_CALL VmbFeatureBoolSet ( const VmbHandle_t handle,
1254  const char* name,
1255  VmbBool_t value );
1256 
1257 //-----Command ------
1258 
1259 //
1260 // Method: VmbFeatureCommandRun()
1261 //
1262 // Purpose: Run a feature command.
1263 //
1264 // Parameters:
1265 //
1266 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1267 // [in ] const char* name Name of the command feature
1268 //
1269 // Returns:
1270 //
1271 // - VmbErrorSuccess: If no error
1272 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1273 // - VmbErrorBadHandle: The given handle is not valid
1274 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1275 // - VmbErrorWrongType: The type of feature "name" is not Command
1276 // - VmbErrorNotFound: Feature was not found
1277 // - VmbErrorBadParameter: If "name" is NULL
1278 //
1279 IMEXPORTC VmbError_t VMB_CALL VmbFeatureCommandRun ( const VmbHandle_t handle,
1280  const char* name );
1281 
1282 //
1283 // Method: VmbFeatureCommandIsDone()
1284 //
1285 // Purpose: Check if a feature command is done.
1286 //
1287 // Parameters:
1288 //
1289 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1290 // [in ] const char* name Name of the command feature
1291 // [out] VmbBool_t * pIsDone State of the command.
1292 //
1293 // Returns:
1294 //
1295 // - VmbErrorSuccess: If no error
1296 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1297 // - VmbErrorBadHandle: The given handle is not valid
1298 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1299 // - VmbErrorWrongType: The type of feature "name" is not Command
1300 // - VmbErrorNotFound: Feature was not found
1301 // - VmbErrorBadParameter: If "name" or "pIsDone" is NULL
1302 //
1303 IMEXPORTC VmbError_t VMB_CALL VmbFeatureCommandIsDone ( const VmbHandle_t handle,
1304  const char* name,
1305  VmbBool_t * pIsDone );
1306 
1307 //-----Raw --------
1308 
1309 //
1310 // Method: VmbFeatureRawGet()
1311 //
1312 // Purpose: Read the memory contents of an area given by a feature name.
1313 //
1314 // Parameters:
1315 //
1316 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1317 // [in ] const char* name Name of the raw feature
1318 // [out] char* pBuffer Buffer to fill
1319 // [in ] VmbUint32_t bufferSize Size of the buffer to be filled
1320 // [out] VmbUint32_t* pSizeFilled Number of bytes actually filled
1321 //
1322 // Returns:
1323 //
1324 // - VmbErrorSuccess: If no error
1325 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1326 // - VmbErrorBadHandle: The given handle is not valid
1327 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1328 // - VmbErrorWrongType: The type of feature "name" is not Register
1329 // - VmbErrorNotFound: Feature was not found
1330 // - VmbErrorBadParameter: If "name" or "pBuffer" or "pSizeFilled" is NULL
1331 //
1332 // Details: This feature type corresponds to a top-level "Register" feature in GenICam.
1333 // Data transfer is split up by the transport layer if the feature length is too large.
1334 // You can get the size of the memory area addressed by the feature "name" by VmbFeatureRawLengthQuery().
1335 //
1336 IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawGet ( const VmbHandle_t handle,
1337  const char* name,
1338  char* pBuffer,
1339  VmbUint32_t bufferSize,
1340  VmbUint32_t* pSizeFilled );
1341 
1342 //
1343 // Method: VmbFeatureRawSet()
1344 //
1345 // Purpose: Write to a memory area given by a feature name.
1346 //
1347 // Parameters:
1348 //
1349 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1350 // [in ] const char* name Name of the raw feature
1351 // [in ] const char* pBuffer Data buffer to use
1352 // [in ] VmbUint32_t bufferSize Size of the buffer
1353 //
1354 // Returns:
1355 //
1356 // - VmbErrorSuccess: If no error
1357 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1358 // - VmbErrorBadHandle: The given handle is not valid
1359 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1360 // - VmbErrorWrongType: The type of feature "name" is not Register
1361 // - VmbErrorNotFound: Feature was not found
1362 // - VmbErrorBadParameter: If "name" or "pBuffer" is NULL
1363 // - VmbErrorInvalidCall: If called from frame callback
1364 //
1365 // Details: This feature type corresponds to a first-level "Register" node in the XML file.
1366 // Data transfer is split up by the transport layer if the feature length is too large.
1367 // You can get the size of the memory area addressed by the feature "name" by VmbFeatureRawLengthQuery().
1368 //
1369 IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawSet ( const VmbHandle_t handle,
1370  const char* name,
1371  const char* pBuffer,
1372  VmbUint32_t bufferSize );
1373 
1374 //
1375 // Method: VmbFeatureRawLengthQuery()
1376 //
1377 // Purpose: Get the length of a raw feature for memory transfers.
1378 //
1379 // Parameters:
1380 //
1381 // [in ] const VmbHandle_t handle Handle for an entity that exposes features
1382 // [in ] const char* name Name of the raw feature
1383 // [out] VmbUint32_t* pLength Length of the raw feature area (in bytes)
1384 //
1385 // Returns:
1386 //
1387 // - VmbErrorSuccess: If no error
1388 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1389 // - VmbErrorBadHandle: The given handle is not valid
1390 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1391 // - VmbErrorWrongType: The type of feature "name" is not Register
1392 // - VmbErrorNotFound: Feature not found
1393 // - VmbErrorBadParameter: If "name" or "pLength" is NULL
1394 //
1395 // Details: This feature type corresponds to a first-level "Register" node in the XML file.
1396 //
1397 IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawLengthQuery ( const VmbHandle_t handle,
1398  const char* name,
1399  VmbUint32_t* pLength );
1400 
1401 //----- Feature invalidation --------------------------------------------------------
1402 
1403 //
1404 // Method: VmbFeatureInvalidationRegister()
1405 //
1406 // Purpose: Register a VmbInvalidationCallback callback for feature invalidation signaling.
1407 //
1408 // Parameters:
1409 //
1410 // [in ] const VmbHandle_t handle Handle for an entity that emits events
1411 // [in ] const char* name Name of the event
1412 // [in ] VmbInvalidationCallback callback Callback to be run, when invalidation occurs
1413 // [in ] void* pUserContext User context passed to function
1414 //
1415 // Returns:
1416 //
1417 // - VmbErrorSuccess: If no error
1418 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1419 // - VmbErrorBadHandle: The given handle is not valid
1420 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1421 //
1422 // Details: Any feature change, either of its value or of its access state, may be tracked
1423 // by registering an invalidation callback.
1424 // Registering multiple callbacks for one feature invalidation event is possible because
1425 // only the combination of handle, name, and callback is used as key. If the same
1426 // combination of handle, name, and callback is registered a second time, it overwrites
1427 // the previous one.
1428 //
1429 IMEXPORTC VmbError_t VMB_CALL VmbFeatureInvalidationRegister ( const VmbHandle_t handle,
1430  const char* name,
1431  VmbInvalidationCallback callback,
1432  void* pUserContext );
1433 
1434 //
1435 // Method: VmbFeatureInvalidationUnregister()
1436 //
1437 // Purpose: Unregister a previously registered feature invalidation callback.
1438 //
1439 // Parameters:
1440 //
1441 // [in ] const VmbHandle_t handle Handle for an entity that emits events
1442 // [in ] const char* name Name of the event
1443 // [in ] VmbInvalidationCallback callback Callback to be removed
1444 //
1445 // Returns:
1446 //
1447 // - VmbErrorSuccess: If no error
1448 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1449 // - VmbErrorBadHandle: The given handle is not valid
1450 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1451 //
1452 // Details: Since multiple callbacks may be registered for a feature invalidation event,
1453 // a combination of handle, name, and callback is needed for unregistering, too.
1454 //
1455 IMEXPORTC VmbError_t VMB_CALL VmbFeatureInvalidationUnregister ( const VmbHandle_t handle,
1456  const char* name,
1457  VmbInvalidationCallback callback );
1458 
1459 
1460 //----- Image preparation and acquisition ---------------------------------------------------
1461 
1462 //
1463 // Method: VmbFrameAnnounce()
1464 //
1465 // Purpose: Announce frames to the API that may be queued for frame capturing later.
1466 //
1467 // Parameters:
1468 //
1469 // [in ] const VmbHandle_t cameraHandle Handle for a camera
1470 // [in ] const VmbFrame_t* pFrame Frame buffer to announce
1471 // [in ] VmbUint32_t sizeofFrame Size of the frame structure
1472 //
1473 // Returns:
1474 //
1475 // - VmbErrorSuccess: If no error
1476 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1477 // - VmbErrorBadHandle: The given camera handle is not valid
1478 // - VmbErrorBadParameter: The given frame pointer is not valid or "sizeofFrame" is 0
1479 // - VmbErrorStructSize: The given struct size is not valid for this version of the API
1480 //
1481 // Details: Allows some preparation for frames like DMA preparation depending on the transport layer.
1482 // The order in which the frames are announced is not taken into consideration by the API.
1483 //
1484 IMEXPORTC VmbError_t VMB_CALL VmbFrameAnnounce ( const VmbHandle_t cameraHandle,
1485  const VmbFrame_t* pFrame,
1486  VmbUint32_t sizeofFrame );
1487 
1488 
1489 //
1490 // Method: VmbFrameRevoke()
1491 //
1492 // Purpose: Revoke a frame from the API.
1493 //
1494 // Parameters:
1495 //
1496 // [in ] const VmbHandle_t cameraHandle Handle for a camera
1497 // [in ] const VmbFrame_t* pFrame Frame buffer to be removed from the list of announced frames
1498 //
1499 // Returns:
1500 //
1501 // - VmbErrorSuccess: If no error
1502 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1503 // - VmbErrorBadHandle: The given camera handle is not valid
1504 // - VmbErrorBadParameter: The given frame pointer is not valid
1505 // - VmbErrorStructSize: The given struct size is not valid for this version of the API
1506 //
1507 // Details: The referenced frame is removed from the pool of frames for capturing images.
1508 //
1509 IMEXPORTC VmbError_t VMB_CALL VmbFrameRevoke ( const VmbHandle_t cameraHandle,
1510  const VmbFrame_t* pFrame );
1511 
1512 
1513 //
1514 // Method: VmbFrameRevokeAll()
1515 //
1516 // Purpose: Revoke all frames assigned to a certain camera.
1517 //
1518 // Parameters:
1519 //
1520 // [in ] const VmbHandle_t cameraHandle Handle for a camera
1521 //
1522 // Returns:
1523 //
1524 // - VmbErrorSuccess: If no error
1525 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1526 // - VmbErrorBadHandle: The given camera handle is not valid
1527 //
1528 IMEXPORTC VmbError_t VMB_CALL VmbFrameRevokeAll ( const VmbHandle_t cameraHandle );
1529 
1530 
1531 //
1532 // Method: VmbCaptureStart()
1533 //
1534 // Purpose: Prepare the API for incoming frames.
1535 //
1536 // Parameters:
1537 //
1538 // [in ] const VmbHandle_t cameraHandle Handle for a camera
1539 //
1540 // Returns:
1541 //
1542 // - VmbErrorSuccess: If no error
1543 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1544 // - VmbErrorBadHandle: The given handle is not valid
1545 // - VmbErrorDeviceNotOpen: Camera was not opened for usage
1546 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1547 //
1548 IMEXPORTC VmbError_t VMB_CALL VmbCaptureStart ( const VmbHandle_t cameraHandle );
1549 
1550 
1551 //
1552 // Method: VmbCaptureEnd()
1553 //
1554 // Purpose: Stop the API from being able to receive frames.
1555 //
1556 // Parameters:
1557 //
1558 // [in ] const VmbHandle_t cameraHandle Handle for a camera
1559 //
1560 // Returns:
1561 //
1562 // - VmbErrorSuccess: If no error
1563 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1564 // - VmbErrorBadHandle: The given handle is not valid
1565 //
1566 // Details: Consequences of VmbCaptureEnd():
1567 // - The frame callback will not be called anymore
1568 //
1569 IMEXPORTC VmbError_t VMB_CALL VmbCaptureEnd ( const VmbHandle_t cameraHandle );
1570 
1571 
1572 //
1573 // Method: VmbCaptureFrameQueue()
1574 //
1575 // Purpose: Queue frames that may be filled during frame capturing.
1576 //
1577 // Parameters:
1578 //
1579 // [in ] const VmbHandle_t cameraHandle Handle of the camera
1580 // [in ] const VmbFrame_t* pFrame Pointer to an already announced frame
1581 // [in ] VmbFrameCallback callback Callback to be run when the frame is complete. NULL is Ok.
1582 //
1583 // Returns:
1584 //
1585 // - VmbErrorSuccess: If no error
1586 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1587 // - VmbErrorBadHandle: The given frame is not valid
1588 // - VmbErrorStructSize: The given struct size is not valid for this version of the API
1589 //
1590 // Details: The given frame is put into a queue that will be filled sequentially.
1591 // The order in which the frames are filled is determined by the order in which they are queued.
1592 // If the frame was announced with VmbFrameAnnounce() before, the application
1593 // has to ensure that the frame is also revoked by calling VmbFrameRevoke() or
1594 // VmbFrameRevokeAll() when cleaning up.
1595 //
1596 IMEXPORTC VmbError_t VMB_CALL VmbCaptureFrameQueue ( const VmbHandle_t cameraHandle,
1597  const VmbFrame_t* pFrame,
1598  VmbFrameCallback callback );
1599 
1600 
1601 //
1602 // Method: VmbCaptureFrameWait()
1603 //
1604 // Purpose: Wait for a queued frame to be filled (or dequeued).
1605 //
1606 // Parameters:
1607 //
1608 // [in ] const VmbHandle_t cameraHandle Handle of the camera
1609 // [in ] const VmbFrame_t* pFrame Pointer to an already announced & queued frame
1610 // [in ] VmbUint32_t timeout Timeout (in milliseconds)
1611 //
1612 // Returns:
1613 //
1614 // - VmbErrorSuccess: If no error
1615 // - VmbErrorTimeout: Call timed out
1616 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1617 // - VmbErrorBadHandle: The given handle is not valid
1618 //
1619 IMEXPORTC VmbError_t VMB_CALL VmbCaptureFrameWait ( const VmbHandle_t cameraHandle,
1620  const VmbFrame_t* pFrame,
1621  VmbUint32_t timeout);
1622 
1623 
1624 //
1625 // Method: VmbCaptureQueueFlush()
1626 //
1627 // Purpose: Flush the capture queue.
1628 //
1629 // Parameters:
1630 //
1631 // [in ] const VmbHandle_t cameraHandle Handle of the camera to flush
1632 //
1633 // Returns:
1634 //
1635 // - VmbErrorSuccess: If no error
1636 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1637 // - VmbErrorBadHandle: The given handle is not valid
1638 //
1639 // Details: Control of all the currently queued frames will be returned to the user,
1640 // leaving no frames in the capture queue.
1641 // After this call, no frame notification will occur until frames are queued again.
1642 //
1643 IMEXPORTC VmbError_t VMB_CALL VmbCaptureQueueFlush ( const VmbHandle_t cameraHandle );
1644 
1645 
1646 //----- Interface Enumeration & Information --------------------------------------
1647 
1648 //
1649 // Method: VmbInterfacesList()
1650 //
1651 // Purpose: List all the interfaces currently visible to VimbaC.
1652 //
1653 // Parameters:
1654 //
1655 // [out] VmbInterfaceInfo_t* pInterfaceInfo Array of VmbInterfaceInfo_t, allocated by the caller.
1656 // The interface list is copied here. May be NULL.
1657 // [in ] VmbUint32_t listLength Number of entries in the caller's pList array
1658 // [out] VmbUint32_t* pNumFound Number of interfaces found (may be more than
1659 // listLength!) returned here.
1660 // [in ] VmbUint32_t sizeofInterfaceInfo Size of one VmbInterfaceInfo_t entry
1661 //
1662 // Returns:
1663 //
1664 // - VmbErrorSuccess: If no error
1665 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1666 // - VmbErrorStructSize: The given struct size is not valid for this API version
1667 // - VmbErrorMoreData: The given list length was insufficient to hold all available entries
1668 // - VmbErrorBadParameter: If "pNumFound" was NULL
1669 //
1670 // Details: All the interfaces known via GenICam TransportLayers are listed by this
1671 // command and filled into the provided array. Interfaces may correspond to
1672 // adapter cards or frame grabber cards or, in the case of FireWire to the
1673 // whole 1394 infrastructure, for instance.
1674 // This function is usually called twice: once with an empty array to query the length
1675 // of the list, and then again with an array of the correct length.
1676 //
1677 IMEXPORTC VmbError_t VMB_CALL VmbInterfacesList ( VmbInterfaceInfo_t* pInterfaceInfo,
1678  VmbUint32_t listLength,
1679  VmbUint32_t* pNumFound,
1680  VmbUint32_t sizeofInterfaceInfo );
1681 
1682 //
1683 // Method: VmbInterfaceOpen()
1684 //
1685 // Purpose: Open an interface handle for feature access.
1686 //
1687 // Parameters:
1688 //
1689 // [in ] const char* idString The ID of the interface to get the handle for
1690 // (returned by VmbInterfacesList())
1691 // [out] VmbHandle_t* pInterfaceHandle The handle for this interface.
1692 //
1693 // Returns:
1694 //
1695 // - VmbErrorSuccess: If no error
1696 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1697 // - VmbErrorNotFound: The designated interface cannot be found
1698 // - VmbErrorBadParameter: If "pInterfaceHandle" was NULL
1699 //
1700 // Details: An interface can be opened if interface-specific control or information
1701 // is required, e.g. the number of devices attached to a specific interface.
1702 // Access is then possible via feature access methods.
1703 //
1704 IMEXPORTC VmbError_t VMB_CALL VmbInterfaceOpen ( const char* idString,
1705  VmbHandle_t* pInterfaceHandle );
1706 
1707 //
1708 // Method: VmbInterfaceClose()
1709 //
1710 // Purpose: Close an interface.
1711 //
1712 // Parameters:
1713 //
1714 // [in ] const VmbHandle_t interfaceHandle The handle of the interface to close.
1715 //
1716 // Returns:
1717 //
1718 // - VmbErrorSuccess: If no error
1719 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1720 // - VmbErrorBadHandle: The given handle is not valid
1721 //
1722 // Details: After configuration of the interface, close it by calling this function.
1723 //
1724 IMEXPORTC VmbError_t VMB_CALL VmbInterfaceClose ( const VmbHandle_t interfaceHandle );
1725 
1726 
1727 //----- Ancillary data --------------------------------------------------------
1728 
1729 //
1730 // Method: VmbAncillaryDataOpen()
1731 //
1732 // Purpose: Get a working handle to allow access to the elements of the ancillary data via feature access.
1733 //
1734 // Parameters:
1735 //
1736 // [in ] VmbFrame_t* pFrame Pointer to a filled frame
1737 // [out] VmbHandle_t* pAncillaryDataHandle Handle to the ancillary data inside the frame
1738 //
1739 // Returns:
1740 //
1741 // - VmbErrorSuccess: No error
1742 // - VmbErrorBadHandle: Chunk mode of the camera was not activated. See feature ChunkModeActive
1743 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1744 //
1745 // Details: This function can only succeed if the given frame has been filled by the API.
1746 //
1747 IMEXPORTC VmbError_t VMB_CALL VmbAncillaryDataOpen ( VmbFrame_t* pFrame,
1748  VmbHandle_t* pAncillaryDataHandle );
1749 
1750 //
1751 // Method: VmbAncillaryDataClose()
1752 //
1753 // Purpose: Destroy the working handle to the ancillary data inside a frame.
1754 //
1755 // Parameters:
1756 //
1757 // [in ] VmbHandle_t ancillaryDataHandle Handle to ancillary frame data
1758 //
1759 // Returns:
1760 //
1761 // - VmbErrorSuccess: If no error
1762 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1763 // - VmbErrorBadHandle: The given handle is not valid
1764 //
1765 // Details: After reading the ancillary data and before re-queuing the frame, ancillary data
1766 // must be closed.
1767 //
1768 IMEXPORTC VmbError_t VMB_CALL VmbAncillaryDataClose ( VmbHandle_t ancillaryDataHandle );
1769 
1770 
1771 //----- Memory/Register access --------------------------------------------
1772 //----- Memory/Register access --------------------------------------------
1773 
1774 //
1775 // Method: VmbMemoryRead()
1776 //
1777 // Purpose: Read an array of bytes.
1778 //
1779 // Parameters:
1780 //
1781 // [in ] const VmbHandle_t handle Handle for an entity that allows memory access
1782 // [in ] VmbUint64_t address Address to be used for this read operation
1783 // [in ] VmbUint32_t bufferSize Size of the data buffer to read
1784 // [out] char* dataBuffer Buffer to be filled
1785 // [out] VmbUint32_t* pSizeComplete Size of the data actually read
1786 //
1787 // Returns:
1788 //
1789 // - VmbErrorSuccess: If no error
1790 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1791 // - VmbErrorBadHandle: The given handle is not valid
1792 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1793 //
1794 IMEXPORTC VmbError_t VMB_CALL VmbMemoryRead ( const VmbHandle_t handle,
1795  VmbUint64_t address,
1796  VmbUint32_t bufferSize,
1797  char* dataBuffer,
1798  VmbUint32_t* pSizeComplete );
1799 
1800 //
1801 // Method: VmbMemoryWrite()
1802 //
1803 // Purpose: Write an array of bytes.
1804 //
1805 // Parameters:
1806 //
1807 // [in ] const VmbHandle_t handle Handle for an entity that allows memory access
1808 // [in ] VmbUint64_t address Address to be used for this read operation
1809 // [in ] VmbUint32_t bufferSize Size of the data buffer to write
1810 // [in ] const char* dataBuffer Data to write
1811 // [out] VmbUint32_t* pSizeComplete Number of bytes successfully written; if an
1812 // error occurs this is less than bufferSize
1813 //
1814 // Returns:
1815 //
1816 // - VmbErrorSuccess: If no error
1817 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1818 // - VmbErrorBadHandle: The given handle is not valid
1819 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1820 // - VmbErrorMoreData: Not all data were written; see pSizeComplete value for the number of bytes written
1821 //
1822 IMEXPORTC VmbError_t VMB_CALL VmbMemoryWrite ( const VmbHandle_t handle,
1823  VmbUint64_t address,
1824  VmbUint32_t bufferSize,
1825  const char* dataBuffer,
1826  VmbUint32_t* pSizeComplete );
1827 
1828 //
1829 // Method: VmbRegistersRead()
1830 //
1831 // Purpose: Read an array of registers.
1832 //
1833 // Parameters:
1834 //
1835 // [in ] const VmbHandle_t handle Handle for an entity that allows register access
1836 // [in ] VmbUint32_t readCount Number of registers to be read
1837 // [in ] const VmbUint64_t* pAddressArray Array of addresses to be used for this read operation
1838 // [out] VmbUint64_t* pDataArray Array of registers to be used for this read operation
1839 // [out] VmbUint32_t* pNumCompleteReads Number of reads completed
1840 //
1841 // Returns:
1842 //
1843 // - VmbErrorSuccess: If no error
1844 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1845 // - VmbErrorBadHandle: The given handle is not valid
1846 // - VmbErrorIncomplete: Not all the requested reads could be completed
1847 //
1848 // Details: Two arrays of data must be provided: an array of register addresses and one
1849 // for corresponding values to be read. The registers are read consecutively
1850 // until an error occurs or all registers are written successfully.
1851 //
1852 IMEXPORTC VmbError_t VMB_CALL VmbRegistersRead ( const VmbHandle_t handle,
1853  VmbUint32_t readCount,
1854  const VmbUint64_t* pAddressArray,
1855  VmbUint64_t* pDataArray,
1856  VmbUint32_t* pNumCompleteReads );
1857 
1858 //
1859 // Method: VmbRegistersWrite()
1860 //
1861 // Purpose: Write an array of registers.
1862 //
1863 // Parameters:
1864 //
1865 // [in ] const VmbHandle_t handle Handle for an entity that allows register access
1866 // [in ] VmbUint32_t writeCount Number of registers to be written
1867 // [in ] const VmbUint64_t* pAddressArray Array of addresses to be used for this write operation
1868 // [in ] const VmbUint64_t* pDataArray Array of reads to be used for this write operation
1869 // [out] VmbUint32_t* pNumCompleteWrites Number of writes completed
1870 //
1871 // Returns:
1872 //
1873 // - VmbErrorSuccess: If no error
1874 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1875 // - VmbErrorBadHandle: The given handle is not valid
1876 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1877 // - VmbErrorIncomplete: Not all the requested writes could be completed
1878 //
1879 // Details: Two arrays of data must be provided: an array of register addresses and one with the
1880 // corresponding values to be written to these addresses. The registers are written
1881 // consecutively until an error occurs or all registers are written successfully.
1882 //
1883 IMEXPORTC VmbError_t VMB_CALL VmbRegistersWrite ( const VmbHandle_t handle,
1884  VmbUint32_t writeCount,
1885  const VmbUint64_t* pAddressArray,
1886  const VmbUint64_t* pDataArray,
1887  VmbUint32_t* pNumCompleteWrites );
1888 
1889 //
1890 // Method: VmbCameraSettingsSave()
1891 //
1892 // Purpose: Saves all feature values to XML file.
1893 //
1894 // Parameters:
1895 //
1896 // [in ] const VmbHandle_t handle Handle for an entity that allows register access
1897 // [in ] const char* fileName Name of XML file to save settings
1898 // [in ] VmbFeaturePersistSettings_t* pSettings Settings struct
1899 // [in ] VmbUint32_t sizeofSettings Size of settings struct
1900 //
1901 // Returns:
1902 //
1903 // - VmbErrorSuccess: If no error
1904 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1905 // - VmbErrorBadHandle: The given handle is not valid
1906 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1907 // - VmbErrorBadParameter: If "fileName" is NULL
1908 //
1909 // Details: Camera must be opened beforehand and function needs corresponding handle.
1910 // With given filename parameter path and name of XML file can be determined.
1911 // Additionally behaviour of function can be set with providing 'persistent struct'.
1912 //
1913 IMEXPORTC VmbError_t VMB_CALL VmbCameraSettingsSave ( const VmbHandle_t handle,
1914  const char * fileName,
1915  VmbFeaturePersistSettings_t * pSettings,
1916  VmbUint32_t sizeofSettings );
1917 
1918 //
1919 // Method: VmbCameraSettingsLoad()
1920 //
1921 // Purpose: Load all feature values from XML file to device.
1922 //
1923 // Parameters:
1924 //
1925 // [in ] const VmbHandle_t handle Handle for an entity that allows register access
1926 // [in ] const char* fileName Name of XML file to save settings
1927 // [in ] VmbFeaturePersistSettings_t* pSettings Settings struct
1928 // [in ] VmbUint32_t sizeofSettings Size of settings struct
1929 //
1930 // Returns:
1931 //
1932 // - VmbErrorSuccess: If no error
1933 // - VmbErrorApiNotStarted: VmbStartup() was not called before the current command
1934 // - VmbErrorBadHandle: The given handle is not valid
1935 // - VmbErrorInvalidAccess: Operation is invalid with the current access mode
1936 // - VmbErrorBadParameter: If "fileName" is NULL
1937 //
1938 // Details: Camera must be opened beforehand and function needs corresponding handle.
1939 // With given filename parameter path and name of XML file can be determined.
1940 // Additionally behaviour of function can be set with providing 'settings struct'.
1941 //
1942 IMEXPORTC VmbError_t VMB_CALL VmbCameraSettingsLoad ( const VmbHandle_t handle,
1943  const char * fileName,
1944  VmbFeaturePersistSettings_t * pSettings,
1945  VmbUint32_t sizeofSettings );
1946 
1947 #ifdef __cplusplus
1948 }
1949 #endif
1950 
1951 #endif // VIMBAC_H_INCLUDE_
VmbInterfaceInfo_t::permittedAccess
VmbAccessMode_t permittedAccess
Definition: VimbaC.h:143
VmbFeatureData_t
VmbUint32_t VmbFeatureData_t
Definition: VimbaC.h:175
VmbFeatureInfo::visibility
VmbFeatureVisibility_t visibility
Definition: VimbaC.h:217
VmbFeaturePersist_t
VmbUint32_t VmbFeaturePersist_t
Definition: VimbaC.h:303
VmbFeatureEnumAsInt
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumAsInt(const VmbHandle_t handle, const char *name, const char *value, VmbInt64_t *pIntVal)
VmbFeaturePersistSettings_t::maxIterations
VmbUint32_t maxIterations
Definition: VimbaC.h:311
VmbFeatureEnumIsAvailable
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumIsAvailable(const VmbHandle_t handle, const char *name, const char *value, VmbBool_t *pIsAvailable)
VmbFeatureIntSet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntSet(const VmbHandle_t handle, const char *name, VmbInt64_t value)
VmbFrame_t::timestamp
VmbUint64_t timestamp
Definition: VimbaC.h:291
VmbAccessModeConfig
@ VmbAccessModeConfig
Definition: VimbaC.h:128
VmbFeatureInvalidationUnregister
IMEXPORTC VmbError_t VMB_CALL VmbFeatureInvalidationUnregister(const VmbHandle_t handle, const char *name, VmbInvalidationCallback callback)
VmbFeatureInfo_t
struct VmbFeatureInfo VmbFeatureInfo_t
VmbFeatureEnumEntry::description
const char * description
Definition: VimbaC.h:235
VmbFeatureInfo::category
const char * category
Definition: VimbaC.h:212
VmbFeatureDataInt
@ VmbFeatureDataInt
Definition: VimbaC.h:166
VmbVersionQuery
IMEXPORTC VmbError_t VMB_CALL VmbVersionQuery(VmbVersionInfo_t *pVersionInfo, VmbUint32_t sizeofVersionInfo)
VmbStartup
IMEXPORTC VmbError_t VMB_CALL VmbStartup(void)
VmbInterfaceType
VmbInterfaceType
Definition: VimbaC.h:107
VmbMemoryWrite
IMEXPORTC VmbError_t VMB_CALL VmbMemoryWrite(const VmbHandle_t handle, VmbUint64_t address, VmbUint32_t bufferSize, const char *dataBuffer, VmbUint32_t *pSizeComplete)
VmbFeatureEnumGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumGet(const VmbHandle_t handle, const char *name, const char **pValue)
VmbInterfaceClose
IMEXPORTC VmbError_t VMB_CALL VmbInterfaceClose(const VmbHandle_t interfaceHandle)
VmbFrameFlagsNone
@ VmbFrameFlagsNone
Definition: VimbaC.h:257
VmbFeatureEnumEntry
Definition: VimbaC.h:229
VmbAccessModeLite
@ VmbAccessModeLite
Definition: VimbaC.h:129
VmbAccessModeFull
@ VmbAccessModeFull
Definition: VimbaC.h:126
VmbFeatureFloatSet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatSet(const VmbHandle_t handle, const char *name, double value)
VmbFeatureInfoQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureInfoQuery(const VmbHandle_t handle, const char *name, VmbFeatureInfo_t *pFeatureInfo, VmbUint32_t sizeofFeatureInfo)
VmbFrameFlagsTimestamp
@ VmbFrameFlagsTimestamp
Definition: VimbaC.h:261
VmbAccessModeRead
@ VmbAccessModeRead
Definition: VimbaC.h:127
VmbFeatureFloatIncrementQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatIncrementQuery(const VmbHandle_t handle, const char *name, VmbBool_t *pHasIncrement, double *pValue)
VmbPixelFormat_t
VmbUint32_t VmbPixelFormat_t
Definition: VmbCommonTypes.h:245
VmbCameraInfo_t::permittedAccess
VmbAccessMode_t permittedAccess
Definition: VimbaC.h:156
VmbInterfaceCL
@ VmbInterfaceCL
Definition: VimbaC.h:113
VmbCameraOpen
IMEXPORTC VmbError_t VMB_CALL VmbCameraOpen(const char *idString, VmbAccessMode_t accessMode, VmbHandle_t *pCameraHandle)
VmbFeatureInfo::unit
const char * unit
Definition: VimbaC.h:215
VmbFrameFlagsOffset
@ VmbFrameFlagsOffset
Definition: VimbaC.h:259
VmbFeatureBoolSet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureBoolSet(const VmbHandle_t handle, const char *name, VmbBool_t value)
VmbFrameFlagsFrameID
@ VmbFrameFlagsFrameID
Definition: VimbaC.h:260
VmbCameraInfo_t::cameraName
const char * cameraName
Definition: VimbaC.h:153
VmbFrame_t::offsetX
VmbUint32_t offsetX
Definition: VimbaC.h:287
VmbFrameStatus_t
VmbInt32_t VmbFrameStatus_t
Definition: VimbaC.h:250
VmbFrame_t::width
VmbUint32_t width
Definition: VimbaC.h:285
VmbFrameFlagsDimension
@ VmbFrameFlagsDimension
Definition: VimbaC.h:258
VmbFeatureInfo::featureFlags
VmbFeatureFlags_t featureFlags
Definition: VimbaC.h:211
VmbFeaturePersistSettings_t::loggingLevel
VmbUint32_t loggingLevel
Definition: VimbaC.h:312
VmbFeatureEnumEntry::visibility
VmbFeatureVisibility_t visibility
Definition: VimbaC.h:233
VmbAncillaryDataOpen
IMEXPORTC VmbError_t VMB_CALL VmbAncillaryDataOpen(VmbFrame_t *pFrame, VmbHandle_t *pAncillaryDataHandle)
VmbFeatureIntRangeQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntRangeQuery(const VmbHandle_t handle, const char *name, VmbInt64_t *pMin, VmbInt64_t *pMax)
VmbFrame_t::imageSize
VmbUint32_t imageSize
Definition: VimbaC.h:280
VmbFeatureIntGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntGet(const VmbHandle_t handle, const char *name, VmbInt64_t *pValue)
VmbFrameRevoke
IMEXPORTC VmbError_t VMB_CALL VmbFrameRevoke(const VmbHandle_t cameraHandle, const VmbFrame_t *pFrame)
VmbFeatureInfo::displayName
const char * displayName
Definition: VimbaC.h:213
VmbFeatureInfo::featureDataType
VmbFeatureData_t featureDataType
Definition: VimbaC.h:210
VmbFeatureListSelected
IMEXPORTC VmbError_t VMB_CALL VmbFeatureListSelected(const VmbHandle_t handle, const char *name, VmbFeatureInfo_t *pFeatureInfoList, VmbUint32_t listLength, VmbUint32_t *pNumFound, VmbUint32_t sizeofFeatureInfo)
VmbFeaturePersistStreamable
@ VmbFeaturePersistStreamable
Definition: VimbaC.h:300
VmbFeatureVisibilityUnknown
@ VmbFeatureVisibilityUnknown
Definition: VimbaC.h:182
VmbFeatureEnumEntry::tooltip
const char * tooltip
Definition: VimbaC.h:234
VmbFrameStatusIncomplete
@ VmbFrameStatusIncomplete
Definition: VimbaC.h:246
VmbShutdown
IMEXPORTC void VMB_CALL VmbShutdown(void)
VmbFeatureInfo::name
const char * name
Definition: VimbaC.h:209
VmbFrame_t::bufferSize
VmbUint32_t bufferSize
Definition: VimbaC.h:272
VmbFrameFlags_t
VmbUint32_t VmbFrameFlags_t
Definition: VimbaC.h:263
VmbAncillaryDataClose
IMEXPORTC VmbError_t VMB_CALL VmbAncillaryDataClose(VmbHandle_t ancillaryDataHandle)
VmbFeatureRawGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawGet(const VmbHandle_t handle, const char *name, char *pBuffer, VmbUint32_t bufferSize, VmbUint32_t *pSizeFilled)
VmbFeaturePersistSettings_t
Definition: VimbaC.h:308
VmbFeatureInfo::tooltip
const char * tooltip
Definition: VimbaC.h:218
VmbInterfaceInfo_t::serialString
const char * serialString
Definition: VimbaC.h:142
VmbFeatureEnumEntry_t
struct VmbFeatureEnumEntry VmbFeatureEnumEntry_t
VmbFrame_t::buffer
void * buffer
Definition: VimbaC.h:271
VmbFeatureFlagsType
VmbFeatureFlagsType
Definition: VimbaC.h:193
VmbInterfaceUsb
@ VmbInterfaceUsb
Definition: VimbaC.h:112
VmbFrameStatusTooSmall
@ VmbFrameStatusTooSmall
Definition: VimbaC.h:247
VmbFeaturePersistType
VmbFeaturePersistType
Definition: VimbaC.h:297
VmbFeatureCommandRun
IMEXPORTC VmbError_t VMB_CALL VmbFeatureCommandRun(const VmbHandle_t handle, const char *name)
VmbFeaturePersistNoLUT
@ VmbFeaturePersistNoLUT
Definition: VimbaC.h:301
VmbCaptureEnd
IMEXPORTC VmbError_t VMB_CALL VmbCaptureEnd(const VmbHandle_t cameraHandle)
VmbFeaturesList
IMEXPORTC VmbError_t VMB_CALL VmbFeaturesList(const VmbHandle_t handle, VmbFeatureInfo_t *pFeatureInfoList, VmbUint32_t listLength, VmbUint32_t *pNumFound, VmbUint32_t sizeofFeatureInfo)
VmbCameraSettingsLoad
IMEXPORTC VmbError_t VMB_CALL VmbCameraSettingsLoad(const VmbHandle_t handle, const char *fileName, VmbFeaturePersistSettings_t *pSettings, VmbUint32_t sizeofSettings)
VmbUint64_t
unsigned long long VmbUint64_t
Definition: VmbCommonTypes.h:77
VmbInterfaceFirewire
@ VmbInterfaceFirewire
Definition: VimbaC.h:110
VmbFeatureVisibilityGuru
@ VmbFeatureVisibilityGuru
Definition: VimbaC.h:185
VmbFeatureBoolGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureBoolGet(const VmbHandle_t handle, const char *name, VmbBool_t *pValue)
VmbFrame_t::frameID
VmbUint64_t frameID
Definition: VimbaC.h:290
VmbFrame_t::pixelFormat
VmbPixelFormat_t pixelFormat
Definition: VimbaC.h:283
VmbFeatureFlagsWrite
@ VmbFeatureFlagsWrite
Definition: VimbaC.h:197
VmbCamerasList
IMEXPORTC VmbError_t VMB_CALL VmbCamerasList(VmbCameraInfo_t *pCameraInfo, VmbUint32_t listLength, VmbUint32_t *pNumFound, VmbUint32_t sizeofCameraInfo)
VmbFrameStatusComplete
@ VmbFrameStatusComplete
Definition: VimbaC.h:245
VmbFeaturePersistSettings_t::persistType
VmbFeaturePersist_t persistType
Definition: VimbaC.h:310
VmbFeatureVisibility_t
VmbUint32_t VmbFeatureVisibility_t
Definition: VimbaC.h:188
VmbFeatureFloatGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatGet(const VmbHandle_t handle, const char *name, double *pValue)
VmbFrame_t::receiveFlags
VmbFrameFlags_t receiveFlags
Definition: VimbaC.h:278
VmbInterfaceEthernet
@ VmbInterfaceEthernet
Definition: VimbaC.h:111
VmbFeatureDataNone
@ VmbFeatureDataNone
Definition: VimbaC.h:173
VmbInterface_t
VmbUint32_t VmbInterface_t
Definition: VimbaC.h:116
VmbFeatureFloatRangeQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureFloatRangeQuery(const VmbHandle_t handle, const char *name, double *pMin, double *pMax)
VmbFeatureFlagsNone
@ VmbFeatureFlagsNone
Definition: VimbaC.h:195
VmbFeatureEnumEntryGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumEntryGet(const VmbHandle_t handle, const char *featureName, const char *entryName, VmbFeatureEnumEntry_t *pFeatureEnumEntry, VmbUint32_t sizeofFeatureEnumEntry)
VmbFeatureDataFloat
@ VmbFeatureDataFloat
Definition: VimbaC.h:167
VmbFrameStatusInvalid
@ VmbFrameStatusInvalid
Definition: VimbaC.h:248
VmbFeatureStringMaxlengthQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringMaxlengthQuery(const VmbHandle_t handle, const char *name, VmbUint32_t *pMaxLength)
VmbFeatureEnumEntry::intValue
VmbInt64_t intValue
Definition: VimbaC.h:237
VmbInterfaceOpen
IMEXPORTC VmbError_t VMB_CALL VmbInterfaceOpen(const char *idString, VmbHandle_t *pInterfaceHandle)
VmbError_t
VmbInt32_t VmbError_t
Definition: VmbCommonTypes.h:130
VmbFeatureFlags_t
VmbUint32_t VmbFeatureFlags_t
Definition: VimbaC.h:201
VmbFeatureDataCommand
@ VmbFeatureDataCommand
Definition: VimbaC.h:171
VmbRegistersRead
IMEXPORTC VmbError_t VMB_CALL VmbRegistersRead(const VmbHandle_t handle, VmbUint32_t readCount, const VmbUint64_t *pAddressArray, VmbUint64_t *pDataArray, VmbUint32_t *pNumCompleteReads)
VmbCameraClose
IMEXPORTC VmbError_t VMB_CALL VmbCameraClose(const VmbHandle_t cameraHandle)
VmbCaptureStart
IMEXPORTC VmbError_t VMB_CALL VmbCaptureStart(const VmbHandle_t cameraHandle)
VmbFeatureInfo::hasAffectedFeatures
VmbBool_t hasAffectedFeatures
Definition: VimbaC.h:222
VmbFeatureListAffected
IMEXPORTC VmbError_t VMB_CALL VmbFeatureListAffected(const VmbHandle_t handle, const char *name, VmbFeatureInfo_t *pFeatureInfoList, VmbUint32_t listLength, VmbUint32_t *pNumFound, VmbUint32_t sizeofFeatureInfo)
VmbCameraInfo_t::interfaceIdString
const char * interfaceIdString
Definition: VimbaC.h:157
VmbFeatureVisibilityType
VmbFeatureVisibilityType
Definition: VimbaC.h:180
VmbHandle_t
void * VmbHandle_t
Definition: VmbCommonTypes.h:82
VmbFeatureFlagsRead
@ VmbFeatureFlagsRead
Definition: VimbaC.h:196
VmbCameraInfo_t::modelName
const char * modelName
Definition: VimbaC.h:154
VmbUint32_t
unsigned int VmbUint32_t
Definition: VmbCommonTypes.h:73
VmbFeatureRawSet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawSet(const VmbHandle_t handle, const char *name, const char *pBuffer, VmbUint32_t bufferSize)
VmbFeatureStringSet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringSet(const VmbHandle_t handle, const char *name, const char *value)
VmbFeatureIntIncrementQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureIntIncrementQuery(const VmbHandle_t handle, const char *name, VmbInt64_t *pValue)
VmbFeaturePersistAll
@ VmbFeaturePersistAll
Definition: VimbaC.h:299
VmbCameraInfo_t::serialString
const char * serialString
Definition: VimbaC.h:155
VmbCaptureQueueFlush
IMEXPORTC VmbError_t VMB_CALL VmbCaptureQueueFlush(const VmbHandle_t cameraHandle)
VmbFrameStatusType
VmbFrameStatusType
Definition: VimbaC.h:243
VmbFeatureVisibilityInvisible
@ VmbFeatureVisibilityInvisible
Definition: VimbaC.h:186
VmbFeatureEnumEntry::displayName
const char * displayName
Definition: VimbaC.h:232
VmbFrameCallback
void(VMB_CALL * VmbFrameCallback)(const VmbHandle_t cameraHandle, VmbFrame_t *pFrame)
Definition: VimbaC.h:349
VmbFrame_t::receiveStatus
VmbFrameStatus_t receiveStatus
Definition: VimbaC.h:277
VmbInt64_t
long long VmbInt64_t
Definition: VmbCommonTypes.h:75
VmbFeatureEnumRangeQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumRangeQuery(const VmbHandle_t handle, const char *name, const char **pNameArray, VmbUint32_t arrayLength, VmbUint32_t *pNumFilled)
VmbInterfaceInfo_t::interfaceIdString
const char * interfaceIdString
Definition: VimbaC.h:139
VmbAccessMode_t
VmbUint32_t VmbAccessMode_t
Definition: VimbaC.h:131
VmbFeatureDataType
VmbFeatureDataType
Definition: VimbaC.h:163
VmbFeatureInfo::hasSelectedFeatures
VmbBool_t hasSelectedFeatures
Definition: VimbaC.h:223
VmbCaptureFrameWait
IMEXPORTC VmbError_t VMB_CALL VmbCaptureFrameWait(const VmbHandle_t cameraHandle, const VmbFrame_t *pFrame, VmbUint32_t timeout)
VmbRegistersWrite
IMEXPORTC VmbError_t VMB_CALL VmbRegistersWrite(const VmbHandle_t handle, VmbUint32_t writeCount, const VmbUint64_t *pAddressArray, const VmbUint64_t *pDataArray, VmbUint32_t *pNumCompleteWrites)
VmbFeatureDataBool
@ VmbFeatureDataBool
Definition: VimbaC.h:170
VmbFrameFlagsType
VmbFrameFlagsType
Definition: VimbaC.h:255
VmbCameraSettingsSave
IMEXPORTC VmbError_t VMB_CALL VmbCameraSettingsSave(const VmbHandle_t handle, const char *fileName, VmbFeaturePersistSettings_t *pSettings, VmbUint32_t sizeofSettings)
VmbFeatureInfo::pollingTime
VmbUint32_t pollingTime
Definition: VimbaC.h:214
VmbFrame_t::height
VmbUint32_t height
Definition: VimbaC.h:286
VmbFeatureVisibilityExpert
@ VmbFeatureVisibilityExpert
Definition: VimbaC.h:184
VmbCaptureFrameQueue
IMEXPORTC VmbError_t VMB_CALL VmbCaptureFrameQueue(const VmbHandle_t cameraHandle, const VmbFrame_t *pFrame, VmbFrameCallback callback)
VmbFeatureDataEnum
@ VmbFeatureDataEnum
Definition: VimbaC.h:168
VmbFeatureStringGet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureStringGet(const VmbHandle_t handle, const char *name, char *buffer, VmbUint32_t bufferSize, VmbUint32_t *pSizeFilled)
VmbInvalidationCallback
void(VMB_CALL * VmbInvalidationCallback)(const VmbHandle_t handle, const char *name, void *pUserContext)
Definition: VimbaC.h:336
VmbFeatureInfo::sfncNamespace
const char * sfncNamespace
Definition: VimbaC.h:220
VmbFeatureFlagsModifyWrite
@ VmbFeatureFlagsModifyWrite
Definition: VimbaC.h:199
VmbFeatureDataRaw
@ VmbFeatureDataRaw
Definition: VimbaC.h:172
VmbMemoryRead
IMEXPORTC VmbError_t VMB_CALL VmbMemoryRead(const VmbHandle_t handle, VmbUint64_t address, VmbUint32_t bufferSize, char *dataBuffer, VmbUint32_t *pSizeComplete)
VmbFrame_t::ancillarySize
VmbUint32_t ancillarySize
Definition: VimbaC.h:281
VmbInterfaceInfo_t::interfaceName
const char * interfaceName
Definition: VimbaC.h:141
VmbFeatureAccessQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureAccessQuery(const VmbHandle_t handle, const char *name, VmbBool_t *pIsReadable, VmbBool_t *pIsWriteable)
VmbFeatureInvalidationRegister
IMEXPORTC VmbError_t VMB_CALL VmbFeatureInvalidationRegister(const VmbHandle_t handle, const char *name, VmbInvalidationCallback callback, void *pUserContext)
VmbFeatureInfo::representation
const char * representation
Definition: VimbaC.h:216
VmbFrameAnnounce
IMEXPORTC VmbError_t VMB_CALL VmbFrameAnnounce(const VmbHandle_t cameraHandle, const VmbFrame_t *pFrame, VmbUint32_t sizeofFrame)
VmbFrame_t::offsetY
VmbUint32_t offsetY
Definition: VimbaC.h:288
VmbAccessModeType
VmbAccessModeType
Definition: VimbaC.h:123
VmbFeatureVisibilityBeginner
@ VmbFeatureVisibilityBeginner
Definition: VimbaC.h:183
VmbFeatureEnumAsString
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumAsString(const VmbHandle_t handle, const char *name, VmbInt64_t intValue, const char **pStringValue)
VmbInterfaceCSI2
@ VmbInterfaceCSI2
Definition: VimbaC.h:114
VmbFrame_t
Definition: VimbaC.h:268
VmbCameraInfo_t
Definition: VimbaC.h:150
VmbFeatureRawLengthQuery
IMEXPORTC VmbError_t VMB_CALL VmbFeatureRawLengthQuery(const VmbHandle_t handle, const char *name, VmbUint32_t *pLength)
VmbCameraInfoQuery
IMEXPORTC VmbError_t VMB_CALL VmbCameraInfoQuery(const char *idString, VmbCameraInfo_t *pInfo, VmbUint32_t sizeofCameraInfo)
VmbFeatureDataString
@ VmbFeatureDataString
Definition: VimbaC.h:169
VmbInterfaceInfo_t::interfaceType
VmbInterface_t interfaceType
Definition: VimbaC.h:140
VmbInterfaceUnknown
@ VmbInterfaceUnknown
Definition: VimbaC.h:109
VmbInterfaceInfo_t
Definition: VimbaC.h:137
VmbBool_t
char VmbBool_t
Definition: VmbCommonTypes.h:89
VmbFeatureInfo::description
const char * description
Definition: VimbaC.h:219
gVimbaHandle
static const VmbHandle_t gVimbaHandle
Definition: VimbaC.h:102
VmbVersionInfo_t
Definition: VmbCommonTypes.h:135
VmbFeatureInfo::isStreamable
VmbBool_t isStreamable
Definition: VimbaC.h:221
VmbFeatureEnumEntry::sfncNamespace
const char * sfncNamespace
Definition: VimbaC.h:236
VmbFrameRevokeAll
IMEXPORTC VmbError_t VMB_CALL VmbFrameRevokeAll(const VmbHandle_t cameraHandle)
VmbCommonTypes.h
VmbAccessModeNone
@ VmbAccessModeNone
Definition: VimbaC.h:125
VmbInt32_t
int VmbInt32_t
Definition: VmbCommonTypes.h:71
VmbFeatureInfo
Definition: VimbaC.h:207
VmbFeatureCommandIsDone
IMEXPORTC VmbError_t VMB_CALL VmbFeatureCommandIsDone(const VmbHandle_t handle, const char *name, VmbBool_t *pIsDone)
VmbInterfacesList
IMEXPORTC VmbError_t VMB_CALL VmbInterfacesList(VmbInterfaceInfo_t *pInterfaceInfo, VmbUint32_t listLength, VmbUint32_t *pNumFound, VmbUint32_t sizeofInterfaceInfo)
VmbFeatureEnumSet
IMEXPORTC VmbError_t VMB_CALL VmbFeatureEnumSet(const VmbHandle_t handle, const char *name, const char *value)
VmbFeatureDataUnknown
@ VmbFeatureDataUnknown
Definition: VimbaC.h:165
VmbCameraInfo_t::cameraIdString
const char * cameraIdString
Definition: VimbaC.h:152
VmbFeatureFlagsVolatile
@ VmbFeatureFlagsVolatile
Definition: VimbaC.h:198
VmbFeatureEnumEntry::name
const char * name
Definition: VimbaC.h:231


avt_vimba_camera
Author(s): Allied Vision Technologies, Miquel Massot
autogenerated on Sat Jun 3 2023 02:14:12