123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- /*-----------------------------------------------------------------------------
- Basler pylon C SDK
- Copyright (c) 2012-2021 Basler AG
- http://www.baslerweb.com
- -----------------------------------------------------------------------------*/
- #ifndef PYLON_ENUMS_H
- #define PYLON_ENUMS_H
- #include <genapic/GenApiCDefines.h>
- /**
- * \file
- * \brief pylon enumeration types.
- *
- * Definitions of enumerated types used by pylon C functions.
- */
- /**
- * \addtogroup pylon pylon Interface
- * @{
- */
- /**
- * \brief The reason why a wait operation terminated.
- */
- typedef enum
- {
- waitex_timeout = 0, /*!< \brief The time-out interval elapsed */
- waitex_signaled = 1, /*!< \brief The wait operation completed successfully */
- waitex_abandoned = 2, /*!< \brief Windows only (see MSDN for more information) */
- waitex_alerted = -1 /*!< \brief The wait was interrupted (Windows: queued APC or I/O completion routine; UNIX: signal) */
- } EPylonWaitExResult;
- /**
- * \brief The grab status.
- */
- typedef enum
- {
- UndefinedGrabStatus = -1, /*!< \brief status not defined */
- Idle, /*!< \brief currently not used */
- Queued, /*!< \brief in the input queue */
- Grabbed, /*!< \brief filled with data */
- Canceled, /*!< \brief request was canceled */
- Failed /*!< \brief request failed */
- } EPylonGrabStatus;
- /**
- * \brief PayloadType for PylonGrabResult_t
- */
- typedef enum
- {
- PayloadType_Undefined = -1, /*!< \brief The buffer content is undefined. */
- PayloadType_Image, /*!< \brief The buffer contains image data. */
- PayloadType_RawData, /*!< \brief The buffer contains raw data. */
- PayloadType_File, /*!< \brief The buffer contains file data. */
- PayloadType_ChunkData, /*!< \brief The buffer contains chunk data. */
- PayloadType_GenDC, /*!< \brief The buffer contains GenDC container. */
- PayloadType_DeviceSpecific = 0x8000 /*!< \brief The buffer contains device specific data. */
- } EPylonPayloadType;
- #define PIXEL_MONO (0x01000000)
- #define PIXEL_COLOR (0x02000000)
- #define PIXEL_CUSTOMTYPE (0x80000000)
- #define PIXEL_BIT_COUNT(n) ((n) << 16)
- /*! \brief List all possible pixel formats. See the camera User's Manual for a detailed description of the available pixel formats. */
- typedef enum
- {
- PixelType_Undefined = -1, /*!< \brief Indicates that the pixel format is undefined or not valid. */
- PixelType_Mono8 = PIXEL_MONO | PIXEL_BIT_COUNT( 8 ) | 0x0001, /*!< \brief Indicates the Mono 8 pixel format. */
- PixelType_Mono8signed = PIXEL_MONO | PIXEL_BIT_COUNT( 8 ) | 0x0002, /*!< \brief Indicates the Mono 8 Signed pixel format. */
- PixelType_Mono10 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0003, /*!< \brief Indicates the Mono 10 pixel format. */
- PixelType_Mono10packed = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0004, /*!< \brief Indicates the Mono 10 Packed pixel format. The memory layout of PixelType_Mono10packed and PixelType_Mono10p is different*/
- PixelType_Mono10p = PIXEL_MONO | PIXEL_BIT_COUNT( 10 ) | 0x0046, /*!< \brief Indicates the Mono10p pixel format. The memory layout of PixelType_Mono10packed and PixelType_Mono10p is different*/
- PixelType_Mono12 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0005, /*!< \brief Indicates the Mono 12 pixel format. */
- PixelType_Mono12packed = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0006, /*!< \brief Indicates the Mono 12 Packed pixel format. The memory layout of PixelType_Mono12packed and PixelType_Mono12p is different.*/
- PixelType_Mono12p = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0047, /*!< \brief Indicates the Mono12p pixel format. The memory layout of PixelType_Mono12packed and PixelType_Mono12p is different.*/
- PixelType_Mono16 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0007, /*!< \brief Indicates the Mono 16 pixel format. */
- PixelType_BayerGR8 = PIXEL_MONO | PIXEL_BIT_COUNT( 8 ) | 0x0008, /*!< \brief Indicates the Bayer GR 8 pixel format. */
- PixelType_BayerRG8 = PIXEL_MONO | PIXEL_BIT_COUNT( 8 ) | 0x0009, /*!< \brief Indicates the Bayer RG 8 pixel format. */
- PixelType_BayerGB8 = PIXEL_MONO | PIXEL_BIT_COUNT( 8 ) | 0x000a, /*!< \brief Indicates the Bayer GB 8 pixel format. */
- PixelType_BayerBG8 = PIXEL_MONO | PIXEL_BIT_COUNT( 8 ) | 0x000b, /*!< \brief Indicates the Bayer BG 8 pixel format. */
- PixelType_BayerGR10 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x000c, /*!< \brief Indicates the Bayer GR 10 pixel format. */
- PixelType_BayerRG10 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x000d, /*!< \brief Indicates the Bayer RG 10 pixel format. */
- PixelType_BayerGB10 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x000e, /*!< \brief Indicates the Bayer GB 10 pixel format. */
- PixelType_BayerBG10 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x000f, /*!< \brief Indicates the Bayer BG 10 pixel format. */
- PixelType_BayerGR12 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0010, /*!< \brief Indicates the Bayer GR 12 pixel format. */
- PixelType_BayerRG12 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0011, /*!< \brief Indicates the Bayer RG 12 pixel format. */
- PixelType_BayerGB12 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0012, /*!< \brief Indicates the Bayer GB 12 pixel format. */
- PixelType_BayerBG12 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0013, /*!< \brief Indicates the Bayer BG 12 pixel format. */
- PixelType_RGB8packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 24 ) | 0x0014, /*!< \brief Indicates the RGB 8 Packed pixel format. */
- PixelType_BGR8packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 24 ) | 0x0015, /*!< \brief Indicates the BGR 8 Packed pixel format. */
- PixelType_RGBA8packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 32 ) | 0x0016, /*!< \brief Indicates the RGBA 8 Packed pixel format. */
- PixelType_BGRA8packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 32 ) | 0x0017, /*!< \brief Indicates the BGRA 8 Packed pixel format. */
- PixelType_RGB10packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x0018, /*!< \brief Indicates the RGB 10 Packed pixel format. */
- PixelType_BGR10packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x0019, /*!< \brief Indicates the BGR 10 Packed pixel format. */
- PixelType_RGB12packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x001a, /*!< \brief Indicates the RGB 12 Packed pixel format. */
- PixelType_BGR12packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x001b, /*!< \brief Indicates the BGR 12 Packed pixel format. */
- PixelType_RGB16packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x0033, /*!< \brief Indicates the RGB 16 Packed pixel format. */
- PixelType_BGR10V1packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 32 ) | 0x001c, /*!< \brief Indicates the BGR 10 V1 Packed pixel format. */
- PixelType_BGR10V2packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 32 ) | 0x001d, /*!< \brief Indicates the BGR 10 V2 Packed pixel format. */
- PixelType_YUV411packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 12 ) | 0x001e, /*!< \brief Indicates the YUV 411 Packed pixel format. */
- PixelType_YUV422packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 16 ) | 0x001f, /*!< \brief Indicates the YUV 422 Packed pixel format. */
- PixelType_YUV444packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 24 ) | 0x0020, /*!< \brief Indicates the YUV 444 Packed pixel format. */
- PixelType_RGB8planar = PIXEL_COLOR | PIXEL_BIT_COUNT( 24 ) | 0x0021, /*!< \brief Indicates the RGB 8 Planar pixel format. */
- PixelType_RGB10planar = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x0022, /*!< \brief Indicates the RGB 10 Planar pixel format. */
- PixelType_RGB12planar = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x0023, /*!< \brief Indicates the RGB 12 Planar pixel format. */
- PixelType_RGB16planar = PIXEL_COLOR | PIXEL_BIT_COUNT( 48 ) | 0x0024, /*!< \brief Indicates the RGB 16 Planar pixel format. */
- PixelType_YUV422_YUYV_Packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 16 ) | 0x0032, /*!< \brief Indicates the YUV 422 (YUYV) Packed pixel format. */
- PixelType_YUV444planar = PIXEL_CUSTOMTYPE | PIXEL_COLOR | PIXEL_BIT_COUNT( 24 ) | 0x0044, /*!< \brief Indicates the 8 bit / channel YUV 444 planar YY YY UU UU VV VV pixel format. */
- PixelType_YUV422planar = PIXEL_COLOR | PIXEL_BIT_COUNT( 16 ) | 0x0042, /*!< \brief Indicates the 8 bit / channel YUV 422 planar YY YY U U V V pixel format. */
- PixelType_YUV420planar = PIXEL_COLOR | PIXEL_BIT_COUNT( 12 ) | 0x0040, /*!< \brief Indicates the 8 bit / channel YUV 420 planar YY YY U V pixel format. */
- PixelType_YCbCr422_8_YY_CbCr_Semiplanar = PIXEL_COLOR | PIXEL_BIT_COUNT( 16 ) | 0x0113, /*!< \brief Indicates the 8 bit / channel YUV 422 semiplanar YY YY UV UV pixel format previously known as PixelType_YCbCr422_8_YY_CbCr_Semiplanar 4:2:2 image with a plane of 8 bit Y samples followed by an interleaved U/V plane. */
- PixelType_YCbCr420_8_YY_CbCr_Semiplanar = PIXEL_COLOR | PIXEL_BIT_COUNT( 12 ) | 0x0112, /*!< \brief Indicates the 8 bit / channel YUV 420 semiplanar YY YY UV pixel format. */
- PixelType_BayerGR12Packed = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x002A, /*!< \brief Indicates the Bayer GR 12 Packed pixel format. The memory layout of PixelType_BayerGR12Packed and PixelType_BayerGR12p is different.*/
- PixelType_BayerRG12Packed = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x002B, /*!< \brief Indicates the Bayer RG 12 Packed pixel format. The memory layout of PixelType_BayerRG12Packed and PixelType_BayerRG12p is different.*/
- PixelType_BayerGB12Packed = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x002C, /*!< \brief Indicates the Bayer GB 12 Packed pixel format. The memory layout of PixelType_BayerGB12Packed and PixelType_BayerGB12p is different.*/
- PixelType_BayerBG12Packed = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x002D, /*!< \brief Indicates the Bayer BG 12 Packed pixel format. The memory layout of PixelType_BayerBG12Packed and PixelType_BayerBG12p is different.*/
- PixelType_BayerGR10p = PIXEL_MONO | PIXEL_BIT_COUNT( 10 ) | 0x0056, /*!< \brief Indicates the BayerGR10p pixel format. */
- PixelType_BayerRG10p = PIXEL_MONO | PIXEL_BIT_COUNT( 10 ) | 0x0058, /*!< \brief Indicates the BayerRG10p pixel format. */
- PixelType_BayerGB10p = PIXEL_MONO | PIXEL_BIT_COUNT( 10 ) | 0x0054, /*!< \brief Indicates the BayerGB10p pixel format. */
- PixelType_BayerBG10p = PIXEL_MONO | PIXEL_BIT_COUNT( 10 ) | 0x0052, /*!< \brief Indicates the BayerBG10p pixel format. */
- PixelType_BayerGR12p = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0057, /*!< \brief Indicates the BayerGR12p pixel format. The memory layout of PixelType_BayerGR12Packed and PixelType_BayerGR12p is different.*/
- PixelType_BayerRG12p = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0059, /*!< \brief Indicates the BayerRG12p pixel format. The memory layout of PixelType_BayerRG12Packed and PixelType_BayerRG12p is different.*/
- PixelType_BayerGB12p = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0055, /*!< \brief Indicates the BayerGB12p pixel format. The memory layout of PixelType_BayerGB12Packed and PixelType_BayerGB12p is different.*/
- PixelType_BayerBG12p = PIXEL_MONO | PIXEL_BIT_COUNT( 12 ) | 0x0053, /*!< \brief Indicates the BayerBG12p pixel format. The memory layout of PixelType_BayerBG12Packed and PixelType_BayerBG12p is different.*/
- PixelType_BayerGR16 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x002E, /*!< \brief Indicates the Bayer GR 16 pixel format. */
- PixelType_BayerRG16 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x002F, /*!< \brief Indicates the Bayer RG 16 pixel format. */
- PixelType_BayerGB16 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0030, /*!< \brief Indicates the Bayer GB 16 pixel format. */
- PixelType_BayerBG16 = PIXEL_MONO | PIXEL_BIT_COUNT( 16 ) | 0x0031, /*!< \brief Indicates the Bayer BG 16 pixel format. */
- PixelType_RGB12V1packed = PIXEL_COLOR | PIXEL_BIT_COUNT( 36 ) | 0X0034, /*!< \brief Indicates the RGB 12 V1 packed pixel format. */
- /* floating point*/
- PixelType_Data32f = PIXEL_MONO | PIXEL_BIT_COUNT( 32 ) | 0x011C, /*!< \brief Indicates the 32 bit floating point pixel format. */
- /* custom codes */
- PixelType_Double = PIXEL_CUSTOMTYPE | PIXEL_MONO | PIXEL_BIT_COUNT( 64 ) | 0x100 /*!< \brief Indicates the Double pixel format. */
- } EPylonPixelType;
- /*! \brief Lists the available file formats */
- #if defined(GENAPIC_WIN_BUILD)
- typedef enum
- {
- ImageFileFormat_Bmp = 0, /*!< \brief Windows Bitmap, no compression. */
- ImageFileFormat_Tiff = 1, /*!< \brief Tagged Image File Format, no compression, supports mono images with more than 8 bit bit depth. */
- ImageFileFormat_Jpeg = 2, /*!< \brief Joint Photographic Experts Group, lossy data compression. */
- ImageFileFormat_Png = 3, /*!< \brief Portable Network Graphics, lossless data compression. */
- ImageFileFormat_Raw = 4 /*!< \brief Saves the raw image buffer data. Packed image formats are unpacked. In the format used for saving, the data cannot be loaded using PylonImagePersistenceLoad. */
- ///< The data cannot be loaded in this format.
- } EPylonImageFileFormat;
- #elif defined(GENAPIC_LINUX_BUILD)
- typedef enum
- {
- ImageFileFormat_Tiff = 1, /*!< \brief Tagged Image File Format, no compression, supports mono images with more than 8 bit bit depth. */
- ImageFileFormat_Png = 3, /*!< \brief Portable Network Graphics, lossless data compression. */
- ImageFileFormat_Raw = 4 /*!< \brief Saves the raw image buffer data. Packed image formats are unpacked. This format cannot be loaded using PylonImagePersistenceLoad.*/
- } EPylonImageFileFormat;
- #else
- # error unsupported platform
- #endif
- /*! \brief Defines the vertical orientation of an image in memory. */
- typedef enum
- {
- ImageOrientation_TopDown, /*!< \brief The first row of the image is located at the start of the image buffer. This is the default for images taken by a camera. */
- ImageOrientation_BottomUp /*!< \brief The last row of the image is located at the start of the image buffer. */
- } EPylonImageOrientation;
- #if defined(GENAPIC_WIN_BUILD)
- /*! \brief Lists the possibilities for selecting a key frame when using compression. */
- typedef enum
- {
- KeyFrameSelection_NoKeyFrame, /*!< \brief Indicates that an image is not a key frame. */
- KeyFrameSelection_KeyFrame, /*!< \brief Indicates that an image is a key frame. */
- KeyFrameSelection_Auto /*!< \brief Every nth frame is a key frame. The value of n is specified by passing its value in the SAviCompressionOptions in the autoKeyFrameInsertionRate member when opening the AVI Writer. */
- } EPylonKeyFrameSelection;
- /*! \brief Lists the possibilities for selecting a show window command. */
- typedef enum
- {
- EPylonShowWindow_SW_HIDE = 0, /*!< \brief Same as SW_HIDE in WinUser.h */
- EPylonShowWindow_SW_SHOWNORMAL = 1, /*!< \brief Same as SW_SHOWNORMAL and SW_NORMAL in WinUser.h */
- EPylonShowWindow_SW_SHOWMINIMIZED = 2, /*!< \brief Same as SW_SHOWMINIMIZED in WinUser.h */
- EPylonShowWindow_SW_SHOWMAXIMIZED = 3, /*!< \brief Same as SW_SHOWMAXIMIZED and SW_MAXIMIZE in WinUser.h */
- EPylonShowWindow_SW_SHOWNOACTIVATE = 4, /*!< \brief Same as SW_SHOWNOACTIVATE in WinUser.h */
- EPylonShowWindow_SW_SHOW = 5, /*!< \brief Same as SW_SHOWNOACTIVATE in WinUser.h */
- EPylonShowWindow_SW_MINIMIZE = 6, /*!< \brief Same as SW_MINIMIZE in WinUser.h */
- EPylonShowWindow_SW_SHOWMINNOACTIVE = 7, /*!< \brief Same as SW_SHOWMINNOACTIVE in WinUser.h */
- EPylonShowWindow_SW_SHOWNA = 8, /*!< \brief Same as SW_SHOWNA in WinUser.h */
- EPylonShowWindow_SW_RESTORE = 9, /*!< \brief Same as SW_RESTORE in WinUser.h */
- EPylonShowWindow_SW_SHOWDEFAULT = 10, /*!< \brief Same as SW_SHOWDEFAULT in WinUser.h */
- EPylonShowWindow_SW_FORCEMINIMIZE = 11 /*!< \brief Same as SW_FORCEMINIMIZE in WinUser.h */
- } EPylonShowWindow;
- #endif
- /*!
- \brief Lists possible status codes returned by PylonGigEIssueActionCommand() or PylonGigEIssueScheduledActionCommand().
- */
- typedef enum
- {
- /**
- \brief The device acknowledged the command.
- */
- PylonGigEActionCommandStatus_Ok = 0,
- /**
- \brief The device is not synchronized to a master clock to be used as time reference.
- Typically used when scheduled action commands cannot be scheduled for
- a future time since the reference time coming from IEEE 1588 is not locked.
- The action command has been ignored by the device.
- */
- PylonGigEActionCommandStatus_NoRefTime = -519995373,
- /**
- \brief Returned when the scheduled action commands queue is full and the device cannot accept the additional request.
- The action command has been discarded by the device.
- */
- PylonGigEActionCommandStatus_Overflow = -519995371,
- /**
- \brief The requested scheduled action command was requested at a point in time that is in the past.
- If the time tag of the scheduled action command is in the past (relative to the device timestamp), and if it is a valid action
- command, then the device will execute this action command immediately and return \c PylonGigEActionCommandStatus_ActionLate.
- This status code is used as an indicator to the application requesting the action command that a mis-synchronization might have
- occurred.
- */
- PylonGigEActionCommandStatus_ActionLate = -519995370
- } EPylonGigEActionCommandStatus;
- /*!
- \brief Status of a compressed grab buffer/result in PylonCompressionInfo_t.
- */
- typedef enum
- {
- CompressionStatus_Ok, /*!< Buffer was compressed properly. */
- CompressionStatus_BufferOverflow, /*!< Size of compressed image exceeded desired compression ratio. */
- CompressionStatus_Error /*!< Generic error. */
- } EPylonCompressionStatus;
- /*!
- \brief Mode used for transferring images.
- The compression mode can have three states. Either compression is disabled in the camera (CompressionMode_Off)
- or the camera compresses the images in one of two ways (CompressionMode_BaslerLossless or CompressionMode_BaslerFixRatio).
- */
- typedef enum tag_EPylonCompressionMode
- {
- CompressionMode_Off, /*!< Images are transferred uncompressed. */
- CompressionMode_BaslerLossless, /*!< Images are transferred with Basler lossless compression. */
- CompressionMode_BaslerFixRatio /*!< Images are transferred with Basler fixed ratio compression (which may lead to lossily compressed images). */
- } EPylonCompressionMode;
- /**
- * @}
- */
- #endif /* PYLON_ENUMS_H */
|