diff options
author | Matthias Vogelgesang <matthias.vogelgesang@ipe.fzk.de> | 2011-02-28 15:11:51 +0100 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@ipe.fzk.de> | 2011-02-28 15:11:51 +0100 |
commit | b715cc76cfd8d972663bd2dd15c461f0e6ed5fc3 (patch) | |
tree | 4a0b4269bb557d2f9eca2b079da32e8320d0f91c /src/uca.h | |
parent | f588f10b6fc6e452d42a66abc56028fe21cd56c2 (diff) | |
download | libuca-b715cc76cfd8d972663bd2dd15c461f0e6ed5fc3.tar.gz libuca-b715cc76cfd8d972663bd2dd15c461f0e6ed5fc3.tar.bz2 libuca-b715cc76cfd8d972663bd2dd15c461f0e6ed5fc3.tar.xz libuca-b715cc76cfd8d972663bd2dd15c461f0e6ed5fc3.zip |
Complete frame grabber abstraction
Diffstat (limited to 'src/uca.h')
-rw-r--r-- | src/uca.h | 91 |
1 files changed, 91 insertions, 0 deletions
@@ -26,6 +26,97 @@ struct uca_t *uca_init(void); */ void uca_destroy(struct uca_t *uca); +/** + * \brief Convert a property string to the corresponding ID + */ +enum uca_property_ids uca_get_property_id(const char *property_name); + +/** + * \brief Convert a property ID to the corresponding string + */ +const char* uca_get_property_name(enum uca_property_ids property_id); + +/** + * \brief Return the full property structure for a given ID + */ +struct uca_property_t *uca_get_full_property(enum uca_property_ids property_id); + + +/* The property IDs must start with 0 and must be continuous. Whenever this + * library is released, the IDs must not change to guarantee binary compatibility! */ +enum uca_property_ids { + UCA_PROP_NAME = 0, + UCA_PROP_WIDTH, + UCA_PROP_WIDTH_MIN, + UCA_PROP_WIDTH_MAX, + UCA_PROP_HEIGHT, + UCA_PROP_HEIGHT_MIN, + UCA_PROP_HEIGHT_MAX, + UCA_PROP_X_OFFSET, + UCA_PROP_Y_OFFSET, + UCA_PROP_BITDEPTH, + UCA_PROP_EXPOSURE, + UCA_PROP_EXPOSURE_MIN, + UCA_PROP_EXPOSURE_MAX, + UCA_PROP_DELAY, + UCA_PROP_DELAY_MIN, + UCA_PROP_DELAY_MAX, + UCA_PROP_FRAMERATE, + UCA_PROP_TRIGGER_MODE, + + /* pco.edge specific */ + UCA_PROP_TIMESTAMP_MODE, + UCA_PROP_SCAN_MODE, + + /* IPE camera specific */ + UCA_PROP_INTERLACE_SAMPLE_RATE, + UCA_PROP_INTERLACE_PIXEL_THRESH, + UCA_PROP_INTERLACE_ROW_THRESH, + + /* Photon Focus specific */ + UCA_PROP_CORRECTION_MODE, + + UCA_PROP_LAST +}; + +/* Possible timestamp modes for UCA_PROP_TIMESTAMP_MODE */ +#define UCA_TIMESTAMP_ASCII 0x01 +#define UCA_TIMESTAMP_BINARY 0x02 + +/* Trigger mode for UCA_PROP_TRIGGERMODE */ +#define UCA_TRIGGER_AUTO 1 +#define UCA_TRIGGER_INTERNAL 2 +#define UCA_TRIGGER_EXTERNAL 3 + +/* Correction modes for UCA_PROP_CORRECTION_MODE */ +#define UCA_CORRECT_OFFSET 0x01 +#define UCA_CORRECT_HOTPIXEL 0x02 +#define UCA_CORRECT_GAIN 0x04 + +/** + * \brief Describe a property used by cameras and frame grabbers + */ +struct uca_property_t { + const char *name; + + enum uca_unit { + uca_pixel, + uca_bits, + uca_ns, + uca_us, + uca_ms, + uca_s, + uca_rows, + uca_na + } unit; + + enum uca_types { + uca_uint32t, + uca_uint8t, + uca_string + } type; +}; + #define UCA_NO_ERROR 0 #define UCA_ERR_INIT_NOT_FOUND 1 /**< camera probing or initialization failed */ |