00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 #ifndef GC_TLI_CLIENT_H_
00083 #define GC_TLI_CLIENT_H_ 1
00084
00085 #ifndef GC_USER_DEFINED_TYPES
00086
00087
00088 # if defined(_WIN32)
00089 # if defined(_MSC_VER) && _MSC_VER >= 1600
00090 # include <stdint.h>
00091 # elif !defined _STDINT_H && !defined _STDINT
00092
00093 typedef unsigned char uint8_t;
00094 typedef __int32 int32_t;
00095 typedef unsigned __int32 uint32_t;
00096 typedef unsigned __int64 uint64_t;
00097 # endif
00098 # else
00099 # include <stdint.h>
00100 # endif
00101
00102 # ifdef __cplusplus
00103 typedef bool bool8_t;
00104 # else
00105 typedef uint8_t bool8_t;
00106 # endif
00107 #endif
00108
00109 #include <stddef.h>
00110
00111
00112
00113 #if defined (_WIN32)
00114 # ifndef GCTLI_NO_DECLSPEC_STATEMENTS
00115 # ifdef GCTLIDLL
00116 # define GC_IMPORT_EXPORT __declspec(dllexport)
00117 # else
00118 # define GC_IMPORT_EXPORT __declspec(dllimport)
00119 # endif
00120 # else
00121 # define GC_IMPORT_EXPORT
00122 # endif
00123 # if defined (_M_IX86) || defined (__i386__)
00124 # define GC_CALLTYPE __stdcall
00125 # else
00126 # define GC_CALLTYPE
00127 # endif
00128 # ifndef EXTERN_C
00129 # define EXTERN_C extern "C"
00130 # endif
00131
00132 #elif defined (__GNUC__) && (__GNUC__ >= 4) && (defined (__linux__) || defined (__APPLE__))
00133 # define GC_IMPORT_EXPORT __attribute__((visibility("default")))
00134 # if defined (__i386__)
00135 # define GC_CALLTYPE __attribute__((stdcall))
00136 # else
00137 # define GC_CALLTYPE
00138 # endif
00139 # ifndef EXTERN_C
00140 # define EXTERN_C extern "C"
00141 # endif
00142
00143 #else
00144 # error Unknown platform, file needs adaption
00145 #endif
00146
00147 #ifdef __cplusplus
00148 extern "C" {
00149 namespace GenTL {
00150 #endif
00151
00152
00153 enum GC_ERROR_LIST
00154 {
00155 GC_ERR_SUCCESS = 0,
00156 GC_ERR_ERROR = -1001,
00157 GC_ERR_NOT_INITIALIZED = -1002,
00158 GC_ERR_NOT_IMPLEMENTED = -1003,
00159 GC_ERR_RESOURCE_IN_USE = -1004,
00160 GC_ERR_ACCESS_DENIED = -1005,
00161 GC_ERR_INVALID_HANDLE = -1006,
00162 GC_ERR_INVALID_ID = -1007,
00163 GC_ERR_NO_DATA = -1008,
00164 GC_ERR_INVALID_PARAMETER = -1009,
00165 GC_ERR_IO = -1010,
00166 GC_ERR_TIMEOUT = -1011,
00167 GC_ERR_ABORT = -1012,
00168 GC_ERR_INVALID_BUFFER = -1013,
00169 GC_ERR_NOT_AVAILABLE = -1014,
00170 GC_ERR_INVALID_ADDRESS = -1015,
00171 GC_ERR_BUFFER_TOO_SMALL = -1016,
00172 GC_ERR_INVALID_INDEX = -1017,
00173 GC_ERR_PARSING_CHUNK_DATA = -1018,
00174 GC_ERR_INVALID_VALUE = -1019,
00175 GC_ERR_RESOURCE_EXHAUSTED = -1020,
00176 GC_ERR_OUT_OF_MEMORY = -1021,
00177 GC_ERR_BUSY = -1022,
00178
00179 GC_ERR_CUSTOM_ID = -10000
00180 };
00181 typedef int32_t GC_ERROR;
00182
00183 # ifndef GC_GENTL_HEADER_VERSION
00184
00185 # define GenTLMajorVersion 1
00186 # define GenTLMinorVersion 5
00187 # define GenTLSubMinorVersion 0
00188
00189 # define GC_GENTL_HEADER_VERSION_CODE(major,minor,subminor) (((major)<<24)+((minor)<<16)+(subminor))
00190 # define GC_GENTL_HEADER_VERSION GC_GENTL_HEADER_VERSION_CODE(GenTLMajorVersion,GenTLMinorVersion,GenTLSubMinorVersion)
00191
00192 # endif
00193
00194 # ifndef GC_GENTL_DONT_USE_TYPE_DEFINITIONS
00195 # define TLTypeMixedName "Mixed"
00196 # define TLTypeCustomName "Custom"
00197 # define TLTypeGEVName "GEV"
00198 # define TLTypeCLName "CL"
00199 # define TLTypeIIDCName "IIDC"
00200 # define TLTypeUVCName "UVC"
00201 # define TLTypeCXPName "CXP"
00202 # define TLTypeCLHSName "CLHS"
00203 # define TLTypeU3VName "U3V"
00204 # define TLTypeETHERNETName "Ethernet"
00205 # define TLTypePCIName "PCI"
00206 # endif
00207
00208 # ifndef GC_GENTL_DONT_USE_MODULE_NAMES
00209 # define TLSystemModuleName "TLSystem"
00210 # define TLInterfaceModuleName "TLInterface"
00211 # define TLDeviceModuleName "TLDevice"
00212 # define TLDataStreamModuleName "TLDataStream"
00213 # define TLBufferModuleName "TLBuffer"
00214 # define TLRemoteDeviceModuleName "Device"
00215 # endif
00216
00217
00218 typedef void * TL_HANDLE;
00219 typedef void * IF_HANDLE;
00220 typedef void * DEV_HANDLE;
00221 typedef void * DS_HANDLE;
00222 typedef void * PORT_HANDLE;
00223
00224
00225
00226
00227 typedef void * BUFFER_HANDLE;
00228 typedef void * EVENTSRC_HANDLE;
00229
00230
00231
00232 typedef void * EVENT_HANDLE;
00233
00234 # define GENTL_INVALID_HANDLE NULL
00235 # define GENTL_INFINITE 0xFFFFFFFFFFFFFFFFULL
00236
00237
00238 enum INFO_DATATYPE_LIST
00239 {
00240 INFO_DATATYPE_UNKNOWN = 0,
00241 INFO_DATATYPE_STRING = 1,
00242 INFO_DATATYPE_STRINGLIST = 2,
00243 INFO_DATATYPE_INT16 = 3,
00244 INFO_DATATYPE_UINT16 = 4,
00245 INFO_DATATYPE_INT32 = 5,
00246 INFO_DATATYPE_UINT32 = 6,
00247 INFO_DATATYPE_INT64 = 7,
00248 INFO_DATATYPE_UINT64 = 8,
00249 INFO_DATATYPE_FLOAT64 = 9,
00250 INFO_DATATYPE_PTR = 10,
00251 INFO_DATATYPE_BOOL8 = 11,
00252 INFO_DATATYPE_SIZET = 12,
00253 INFO_DATATYPE_BUFFER = 13,
00254 INFO_DATATYPE_PTRDIFF = 14,
00255
00256 INFO_DATATYPE_CUSTOM_ID = 1000
00257 };
00258 typedef int32_t INFO_DATATYPE;
00259
00260
00261 enum TL_CHAR_ENCODING_LIST
00262 {
00263 TL_CHAR_ENCODING_ASCII = 0,
00264 TL_CHAR_ENCODING_UTF8 = 1
00265 };
00266 typedef int32_t TL_CHAR_ENCODING;
00267
00268
00269 enum TL_INFO_CMD_LIST
00270 {
00271 TL_INFO_ID = 0,
00272 TL_INFO_VENDOR = 1,
00273 TL_INFO_MODEL = 2,
00274 TL_INFO_VERSION = 3,
00275 TL_INFO_TLTYPE = 4,
00276 TL_INFO_NAME = 5,
00277 TL_INFO_PATHNAME = 6,
00278 TL_INFO_DISPLAYNAME = 7,
00279 TL_INFO_CHAR_ENCODING = 8,
00280 TL_INFO_GENTL_VER_MAJOR = 9,
00281 TL_INFO_GENTL_VER_MINOR = 10,
00282 TL_INFO_CUSTOM_ID = 1000
00283 };
00284 typedef int32_t TL_INFO_CMD;
00285
00286
00287 enum INTERFACE_INFO_CMD_LIST
00288 {
00289 INTERFACE_INFO_ID = 0,
00290 INTERFACE_INFO_DISPLAYNAME = 1,
00291 INTERFACE_INFO_TLTYPE = 2,
00292
00293 INTERFACE_INFO_CUSTOM_ID = 1000
00294 };
00295 typedef int32_t INTERFACE_INFO_CMD;
00296
00297
00298 enum DEVICE_ACCESS_FLAGS_LIST
00299 {
00300 DEVICE_ACCESS_UNKNOWN = 0,
00301 DEVICE_ACCESS_NONE = 1,
00302 DEVICE_ACCESS_READONLY = 2,
00303 DEVICE_ACCESS_CONTROL = 3,
00304 DEVICE_ACCESS_EXCLUSIVE = 4,
00305
00306 DEVICE_ACCESS_CUSTOM_ID = 1000
00307 };
00308 typedef int32_t DEVICE_ACCESS_FLAGS;
00309
00310
00311 enum DEVICE_ACCESS_STATUS_LIST
00312 {
00313 DEVICE_ACCESS_STATUS_UNKNOWN = 0,
00314 DEVICE_ACCESS_STATUS_READWRITE = 1,
00315 DEVICE_ACCESS_STATUS_READONLY = 2,
00316 DEVICE_ACCESS_STATUS_NOACCESS = 3,
00317 DEVICE_ACCESS_STATUS_BUSY = 4,
00318 DEVICE_ACCESS_STATUS_OPEN_READWRITE = 5,
00319 DEVICE_ACCESS_STATUS_OPEN_READONLY = 6,
00320
00321 DEVICE_ACCESS_STATUS_CUSTOM_ID = 1000
00322 };
00323 typedef int32_t DEVICE_ACCESS_STATUS;
00324
00325
00326 enum DEVICE_INFO_CMD_LIST
00327 {
00328 DEVICE_INFO_ID = 0,
00329 DEVICE_INFO_VENDOR = 1,
00330 DEVICE_INFO_MODEL = 2,
00331 DEVICE_INFO_TLTYPE = 3,
00332 DEVICE_INFO_DISPLAYNAME = 4,
00333 DEVICE_INFO_ACCESS_STATUS = 5,
00334 DEVICE_INFO_USER_DEFINED_NAME = 6,
00335 DEVICE_INFO_SERIAL_NUMBER = 7,
00336 DEVICE_INFO_VERSION = 8,
00337 DEVICE_INFO_TIMESTAMP_FREQUENCY = 9,
00338
00339 DEVICE_INFO_CUSTOM_ID = 1000
00340 };
00341 typedef int32_t DEVICE_INFO_CMD;
00342
00343
00344 enum ACQ_STOP_FLAGS_LIST
00345 {
00346 ACQ_STOP_FLAGS_DEFAULT = 0,
00347 ACQ_STOP_FLAGS_KILL = 1,
00348
00349 ACQ_STOP_FLAGS_CUSTOM_ID = 1000
00350 };
00351 typedef int32_t ACQ_STOP_FLAGS;
00352
00353
00354 enum ACQ_START_FLAGS_LIST
00355 {
00356 ACQ_START_FLAGS_DEFAULT = 0,
00357
00358 ACQ_START_FLAGS_CUSTOM_ID = 1000
00359 };
00360 typedef int32_t ACQ_START_FLAGS;
00361
00362
00363 enum ACQ_QUEUE_TYPE_LIST
00364 {
00365 ACQ_QUEUE_INPUT_TO_OUTPUT = 0,
00366 ACQ_QUEUE_OUTPUT_DISCARD = 1,
00367 ACQ_QUEUE_ALL_TO_INPUT = 2,
00368 ACQ_QUEUE_UNQUEUED_TO_INPUT = 3,
00369 ACQ_QUEUE_ALL_DISCARD = 4,
00370
00371 ACQ_QUEUE_CUSTOM_ID = 1000
00372 };
00373 typedef int32_t ACQ_QUEUE_TYPE;
00374
00375
00376 enum STREAM_INFO_CMD_LIST
00377 {
00378 STREAM_INFO_ID = 0,
00379 STREAM_INFO_NUM_DELIVERED = 1,
00380 STREAM_INFO_NUM_UNDERRUN = 2,
00381 STREAM_INFO_NUM_ANNOUNCED = 3,
00382 STREAM_INFO_NUM_QUEUED = 4,
00383 STREAM_INFO_NUM_AWAIT_DELIVERY = 5,
00384 STREAM_INFO_NUM_STARTED = 6,
00385 STREAM_INFO_PAYLOAD_SIZE = 7,
00386 STREAM_INFO_IS_GRABBING = 8,
00387 STREAM_INFO_DEFINES_PAYLOADSIZE = 9,
00388 STREAM_INFO_TLTYPE = 10,
00389 STREAM_INFO_NUM_CHUNKS_MAX = 11,
00390 STREAM_INFO_BUF_ANNOUNCE_MIN = 12,
00391 STREAM_INFO_BUF_ALIGNMENT = 13,
00392
00393 STREAM_INFO_CUSTOM_ID = 1000
00394 };
00395 typedef int32_t STREAM_INFO_CMD;
00396
00397
00398 enum BUFFER_INFO_CMD_LIST
00399 {
00400 BUFFER_INFO_BASE = 0,
00401 BUFFER_INFO_SIZE = 1,
00402 BUFFER_INFO_USER_PTR = 2,
00403 BUFFER_INFO_TIMESTAMP = 3,
00404 BUFFER_INFO_NEW_DATA = 4,
00405 BUFFER_INFO_IS_QUEUED = 5,
00406 BUFFER_INFO_IS_ACQUIRING = 6,
00407 BUFFER_INFO_IS_INCOMPLETE = 7,
00408 BUFFER_INFO_TLTYPE = 8,
00409 BUFFER_INFO_SIZE_FILLED = 9,
00410 BUFFER_INFO_WIDTH = 10,
00411 BUFFER_INFO_HEIGHT = 11,
00412 BUFFER_INFO_XOFFSET = 12,
00413 BUFFER_INFO_YOFFSET = 13,
00414 BUFFER_INFO_XPADDING = 14,
00415 BUFFER_INFO_YPADDING = 15,
00416 BUFFER_INFO_FRAMEID = 16,
00417 BUFFER_INFO_IMAGEPRESENT = 17,
00418 BUFFER_INFO_IMAGEOFFSET = 18,
00419 BUFFER_INFO_PAYLOADTYPE = 19,
00420 BUFFER_INFO_PIXELFORMAT = 20,
00421 BUFFER_INFO_PIXELFORMAT_NAMESPACE = 21,
00422 BUFFER_INFO_DELIVERED_IMAGEHEIGHT = 22,
00423 BUFFER_INFO_DELIVERED_CHUNKPAYLOADSIZE = 23,
00424 BUFFER_INFO_CHUNKLAYOUTID = 24,
00425 BUFFER_INFO_FILENAME = 25,
00426 BUFFER_INFO_PIXEL_ENDIANNESS = 26,
00427 BUFFER_INFO_DATA_SIZE = 27,
00428 BUFFER_INFO_TIMESTAMP_NS = 28,
00429 BUFFER_INFO_DATA_LARGER_THAN_BUFFER = 29,
00430 BUFFER_INFO_CONTAINS_CHUNKDATA = 30,
00431
00432 BUFFER_INFO_CUSTOM_ID = 1000
00433 };
00434 typedef int32_t BUFFER_INFO_CMD;
00435
00436
00437
00438 enum BUFFER_PART_INFO_CMD_LIST
00439 {
00440 BUFFER_PART_INFO_BASE = 0,
00441 BUFFER_PART_INFO_DATA_SIZE = 1,
00442 BUFFER_PART_INFO_DATA_TYPE = 2,
00443 BUFFER_PART_INFO_DATA_FORMAT = 3,
00444 BUFFER_PART_INFO_DATA_FORMAT_NAMESPACE = 4,
00445 BUFFER_PART_INFO_WIDTH = 5,
00446 BUFFER_PART_INFO_HEIGHT = 6,
00447 BUFFER_PART_INFO_XOFFSET = 7,
00448 BUFFER_PART_INFO_YOFFSET = 8,
00449 BUFFER_PART_INFO_XPADDING = 9,
00450 BUFFER_PART_INFO_SOURCE_ID = 10,
00451 BUFFER_PART_INFO_DELIVERED_IMAGEHEIGHT = 11,
00452 BUFFER_PART_INFO_CUSTOM_ID = 1000
00453 };
00454 typedef int32_t BUFFER_PART_INFO_CMD;
00455
00456
00457 enum PAYLOADTYPE_INFO_IDS
00458 {
00459 PAYLOAD_TYPE_UNKNOWN = 0,
00460 PAYLOAD_TYPE_IMAGE = 1,
00461 PAYLOAD_TYPE_RAW_DATA = 2,
00462 PAYLOAD_TYPE_FILE = 3,
00463 PAYLOAD_TYPE_CHUNK_DATA = 4,
00464 PAYLOAD_TYPE_JPEG = 5,
00465 PAYLOAD_TYPE_JPEG2000 = 6,
00466 PAYLOAD_TYPE_H264 = 7,
00467 PAYLOAD_TYPE_CHUNK_ONLY = 8,
00468 PAYLOAD_TYPE_DEVICE_SPECIFIC = 9,
00469 PAYLOAD_TYPE_MULTI_PART = 10,
00470
00471 PAYLOAD_TYPE_CUSTOM_ID = 1000
00472 };
00473 typedef int32_t PAYLOADTYPE_INFO_ID;
00474
00475
00476 enum PIXELFORMAT_NAMESPACE_IDS
00477 {
00478 PIXELFORMAT_NAMESPACE_UNKNOWN = 0,
00479 PIXELFORMAT_NAMESPACE_GEV = 1,
00480 PIXELFORMAT_NAMESPACE_IIDC = 2,
00481 PIXELFORMAT_NAMESPACE_PFNC_16BIT = 3,
00482 PIXELFORMAT_NAMESPACE_PFNC_32BIT = 4,
00483
00484 PIXELFORMAT_NAMESPACE_CUSTOM_ID = 1000
00485 };
00486 typedef int32_t PIXELFORMAT_NAMESPACE_ID;
00487
00488
00489 enum PIXELENDIANNESS_IDS
00490 {
00491 PIXELENDIANNESS_UNKNOWN = 0,
00492 PIXELENDIANNESS_LITTLE = 1,
00493 PIXELENDIANNESS_BIG = 2
00494 };
00495 typedef int32_t PIXELENDIANNESS_ID;
00496
00497
00498 enum PARTDATATYPE_IDS
00499 {
00500 PART_DATATYPE_UNKNOWN = 0,
00501 PART_DATATYPE_2D_IMAGE = 1,
00502 PART_DATATYPE_2D_PLANE_BIPLANAR = 2,
00503 PART_DATATYPE_2D_PLANE_TRIPLANAR = 3,
00504 PART_DATATYPE_2D_PLANE_QUADPLANAR = 4,
00505 PART_DATATYPE_3D_IMAGE = 5,
00506 PART_DATATYPE_3D_PLANE_BIPLANAR = 6,
00507 PART_DATATYPE_3D_PLANE_TRIPLANAR = 7,
00508 PART_DATATYPE_3D_PLANE_QUADPLANAR = 8,
00509 PART_DATATYPE_CONFIDENCE_MAP = 9,
00510
00511 PART_DATATYPE_CUSTOM_ID = 1000
00512 };
00513 typedef int32_t PARTDATATYPE_ID;
00514
00515
00516 enum PORT_INFO_CMD_LIST
00517 {
00518 PORT_INFO_ID = 0,
00519 PORT_INFO_VENDOR = 1,
00520 PORT_INFO_MODEL = 2,
00521 PORT_INFO_TLTYPE = 3,
00522 PORT_INFO_MODULE = 4,
00523 PORT_INFO_LITTLE_ENDIAN = 5,
00524 PORT_INFO_BIG_ENDIAN = 6,
00525 PORT_INFO_ACCESS_READ = 7,
00526 PORT_INFO_ACCESS_WRITE = 8,
00527 PORT_INFO_ACCESS_NA = 9,
00528 PORT_INFO_ACCESS_NI = 10,
00529 PORT_INFO_VERSION = 11,
00530 PORT_INFO_PORTNAME = 12,
00531
00532 PORT_INFO_CUSTOM_ID = 1000
00533 };
00534 typedef int32_t PORT_INFO_CMD;
00535
00536
00537
00538 enum URL_SCHEME_IDS
00539 {
00540 URL_SCHEME_LOCAL = 0,
00541 URL_SCHEME_HTTP = 1,
00542 URL_SCHEME_FILE = 2,
00543
00544 URL_SCHEME_CUSTOM_ID = 1000
00545 };
00546 typedef int32_t URL_SCHEME_ID;
00547
00548
00549
00550 enum URL_INFO_CMD_LIST
00551 {
00552 URL_INFO_URL = 0,
00553 URL_INFO_SCHEMA_VER_MAJOR = 1,
00554 URL_INFO_SCHEMA_VER_MINOR = 2,
00555 URL_INFO_FILE_VER_MAJOR = 3,
00556 URL_INFO_FILE_VER_MINOR = 4,
00557 URL_INFO_FILE_VER_SUBMINOR = 5,
00558 URL_INFO_FILE_SHA1_HASH = 6,
00559 URL_INFO_FILE_REGISTER_ADDRESS = 7,
00560 URL_INFO_FILE_SIZE = 8,
00561 URL_INFO_SCHEME = 9,
00562 URL_INFO_FILENAME = 10,
00563
00564 URL_INFO_CUSTOM_ID = 1000
00565 };
00566 typedef int32_t URL_INFO_CMD;
00567
00568
00569 enum EVENT_TYPE_LIST
00570 {
00571 EVENT_ERROR = 0,
00572 EVENT_NEW_BUFFER = 1,
00573 EVENT_FEATURE_INVALIDATE = 2,
00574 EVENT_FEATURE_CHANGE = 3,
00575 EVENT_REMOTE_DEVICE = 4,
00576 EVENT_MODULE = 5,
00577
00578 EVENT_CUSTOM_ID = 1000
00579 };
00580 typedef int32_t EVENT_TYPE;
00581
00582
00583 enum EVENT_INFO_CMD_LIST
00584 {
00585 EVENT_EVENT_TYPE = 0,
00586 EVENT_NUM_IN_QUEUE = 1,
00587 EVENT_NUM_FIRED = 2,
00588 EVENT_SIZE_MAX = 3,
00589 EVENT_INFO_DATA_SIZE_MAX = 4,
00590
00591 EVENT_INFO_CUSTOM_ID = 1000
00592 };
00593 typedef int32_t EVENT_INFO_CMD;
00594
00595
00596 enum EVENT_DATA_INFO_CMD_LIST
00597 {
00598 EVENT_DATA_ID = 0,
00599 EVENT_DATA_VALUE = 1,
00600 EVENT_DATA_NUMID = 2,
00601
00602 EVENT_DATA_CUSTOM_ID = 1000
00603 };
00604 typedef int32_t EVENT_DATA_INFO_CMD;
00605
00606
00607 # pragma pack (push, 1)
00608 typedef struct S_EVENT_NEW_BUFFER
00609 {
00610 BUFFER_HANDLE BufferHandle;
00611 void* pUserPointer;
00612 } EVENT_NEW_BUFFER_DATA;
00613 # pragma pack (pop)
00614
00615
00616 # pragma pack (push, 1)
00617 typedef struct S_PORT_REGISTER_STACK_ENTRY
00618 {
00619 uint64_t Address;
00620 void* pBuffer;
00621 size_t Size;
00622 } PORT_REGISTER_STACK_ENTRY;
00623 # pragma pack (pop)
00624
00625 # pragma pack (push, 1)
00626
00627 typedef struct S_SINGLE_CHUNK_DATA
00628 {
00629 uint64_t ChunkID;
00630 ptrdiff_t ChunkOffset;
00631 size_t ChunkLength;
00632 } SINGLE_CHUNK_DATA;
00633 # pragma pack (pop)
00634
00635
00636
00637 # define GC_API GC_IMPORT_EXPORT GC_ERROR GC_CALLTYPE
00638 GC_API GCGetInfo ( TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00639
00640 GC_API GCGetLastError ( GC_ERROR *piErrorCode, char *sErrText, size_t *piSize );
00641
00642 GC_API GCInitLib ( void );
00643 GC_API GCCloseLib ( void );
00644
00645 GC_API GCReadPort ( PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize );
00646 GC_API GCWritePort ( PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize );
00647 GC_API GCGetPortURL ( PORT_HANDLE hPort, char *sURL, size_t *piSize );
00648
00649 GC_API GCGetPortInfo ( PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00650
00651 GC_API GCRegisterEvent ( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent );
00652 GC_API GCUnregisterEvent ( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID );
00653
00654 GC_API EventGetData ( EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout );
00655 GC_API EventGetDataInfo ( EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize );
00656 GC_API EventGetInfo ( EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00657 GC_API EventFlush ( EVENT_HANDLE hEvent );
00658 GC_API EventKill ( EVENT_HANDLE hEvent );
00659
00660 GC_API TLOpen ( TL_HANDLE *phTL );
00661 GC_API TLClose ( TL_HANDLE hTL );
00662 GC_API TLGetInfo ( TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00663
00664 GC_API TLGetNumInterfaces ( TL_HANDLE hTL, uint32_t *piNumIfaces );
00665 GC_API TLGetInterfaceID ( TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize );
00666 GC_API TLGetInterfaceInfo ( TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00667 GC_API TLOpenInterface ( TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface );
00668 GC_API TLUpdateInterfaceList ( TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout );
00669
00670 GC_API IFClose ( IF_HANDLE hIface );
00671 GC_API IFGetInfo ( IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00672
00673 GC_API IFGetNumDevices ( IF_HANDLE hIface, uint32_t *piNumDevices );
00674 GC_API IFGetDeviceID ( IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize );
00675 GC_API IFUpdateDeviceList ( IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout );
00676 GC_API IFGetDeviceInfo ( IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00677 GC_API IFOpenDevice ( IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice );
00678
00679 GC_API DevGetPort ( DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice );
00680 GC_API DevGetNumDataStreams ( DEV_HANDLE hDevice, uint32_t *piNumDataStreams );
00681 GC_API DevGetDataStreamID ( DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize );
00682 GC_API DevOpenDataStream ( DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream );
00683 GC_API DevGetInfo ( DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00684 GC_API DevClose ( DEV_HANDLE hDevice );
00685
00686 GC_API DSAnnounceBuffer ( DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
00687 GC_API DSAllocAndAnnounceBuffer( DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
00688 GC_API DSFlushQueue ( DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation );
00689 GC_API DSStartAcquisition ( DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire );
00690 GC_API DSStopAcquisition ( DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags );
00691 GC_API DSGetInfo ( DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00692 GC_API DSGetBufferID ( DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer );
00693 GC_API DSClose ( DS_HANDLE hDataStream );
00694
00695 GC_API DSRevokeBuffer ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate );
00696 GC_API DSQueueBuffer ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer );
00697 GC_API DSGetBufferInfo ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00698
00699
00700 GC_API GCGetNumPortURLs ( PORT_HANDLE hPort, uint32_t *piNumURLs );
00701 GC_API GCGetPortURLInfo ( PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00702 GC_API GCReadPortStacked ( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
00703 GC_API GCWritePortStacked ( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
00704
00705
00706 GC_API DSGetBufferChunkData ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks );
00707
00708
00709 GC_API IFGetParentTL ( IF_HANDLE hIface, TL_HANDLE *phSystem );
00710 GC_API DevGetParentIF ( DEV_HANDLE hDevice, IF_HANDLE *phIface );
00711 GC_API DSGetParentDev ( DS_HANDLE hDataStream, DEV_HANDLE *phDevice );
00712
00713
00714 GC_API DSGetNumBufferParts ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts );
00715 GC_API DSGetBufferPartInfo ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00716
00717
00718 # define GC_API_P(function) typedef GC_ERROR( GC_CALLTYPE *function )
00719 GC_API_P(PGCGetInfo )( TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00720 GC_API_P(PGCGetLastError )( GC_ERROR *piErrorCode, char *sErrText, size_t *piSize );
00721 GC_API_P(PGCInitLib )( void );
00722 GC_API_P(PGCCloseLib )( void );
00723 GC_API_P(PGCReadPort )( PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize );
00724 GC_API_P(PGCWritePort )( PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize );
00725 GC_API_P(PGCGetPortURL )( PORT_HANDLE hPort, char *sURL, size_t *piSize );
00726 GC_API_P(PGCGetPortInfo )( PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00727
00728 GC_API_P(PGCRegisterEvent )( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent );
00729 GC_API_P(PGCUnregisterEvent )( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID );
00730 GC_API_P(PEventGetData )( EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout );
00731 GC_API_P(PEventGetDataInfo )( EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize );
00732 GC_API_P(PEventGetInfo )( EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00733 GC_API_P(PEventFlush )( EVENT_HANDLE hEvent );
00734 GC_API_P(PEventKill )( EVENT_HANDLE hEvent );
00735 GC_API_P(PTLOpen )( TL_HANDLE *phTL );
00736 GC_API_P(PTLClose )( TL_HANDLE hTL );
00737 GC_API_P(PTLGetInfo )( TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00738 GC_API_P(PTLGetNumInterfaces )( TL_HANDLE hTL, uint32_t *piNumIfaces );
00739 GC_API_P(PTLGetInterfaceID )( TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize );
00740 GC_API_P(PTLGetInterfaceInfo )( TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00741 GC_API_P(PTLOpenInterface )( TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface );
00742 GC_API_P(PTLUpdateInterfaceList )( TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout );
00743 GC_API_P(PIFClose )( IF_HANDLE hIface );
00744 GC_API_P(PIFGetInfo )( IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00745 GC_API_P(PIFGetNumDevices )( IF_HANDLE hIface, uint32_t *piNumDevices );
00746 GC_API_P(PIFGetDeviceID )( IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize );
00747 GC_API_P(PIFUpdateDeviceList )( IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout );
00748 GC_API_P(PIFGetDeviceInfo )( IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00749 GC_API_P(PIFOpenDevice )( IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice );
00750
00751 GC_API_P(PDevGetPort )( DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice );
00752 GC_API_P(PDevGetNumDataStreams )( DEV_HANDLE hDevice, uint32_t *piNumDataStreams );
00753 GC_API_P(PDevGetDataStreamID )( DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize );
00754 GC_API_P(PDevOpenDataStream )( DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream );
00755 GC_API_P(PDevGetInfo )( DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00756 GC_API_P(PDevClose )( DEV_HANDLE hDevice );
00757
00758 GC_API_P(PDSAnnounceBuffer )( DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
00759 GC_API_P(PDSAllocAndAnnounceBuffer)( DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
00760 GC_API_P(PDSFlushQueue )( DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation );
00761 GC_API_P(PDSStartAcquisition )( DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire );
00762 GC_API_P(PDSStopAcquisition )( DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags );
00763 GC_API_P(PDSGetInfo )( DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00764 GC_API_P(PDSGetBufferID )( DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer );
00765 GC_API_P(PDSClose )( DS_HANDLE hDataStream );
00766 GC_API_P(PDSRevokeBuffer )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate );
00767 GC_API_P(PDSQueueBuffer )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer );
00768 GC_API_P(PDSGetBufferInfo )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00769
00770
00771 GC_API_P(PGCGetNumPortURLs )( PORT_HANDLE hPort, uint32_t *iNumURLs );
00772 GC_API_P(PGCGetPortURLInfo )( PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00773 GC_API_P(PGCReadPortStacked )( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
00774 GC_API_P(PGCWritePortStacked )( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
00775
00776
00777 GC_API_P(PDSGetBufferChunkData )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks );
00778
00779
00780 GC_API_P(PIFGetParentTL )( IF_HANDLE hIface, TL_HANDLE *phSystem );
00781 GC_API_P(PDevGetParentIF )( DEV_HANDLE hDevice, IF_HANDLE *phIface );
00782 GC_API_P(PDSGetParentDev )( DS_HANDLE hDataStream, DEV_HANDLE *phDevice );
00783
00784
00785 GC_API_P(PDSGetNumBufferParts )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts );
00786 GC_API_P(PDSGetBufferPartInfo )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
00787 #ifdef __cplusplus
00788 }
00789 }
00790 #endif
00791 #endif