summaryrefslogtreecommitdiffstats
path: root/src/uca.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uca.h')
-rw-r--r--src/uca.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/uca.h b/src/uca.h
index 2f93093..0f3261e 100644
--- a/src/uca.h
+++ b/src/uca.h
@@ -1,15 +1,36 @@
#ifndef __UNIFIED_CAMERA_ACCESS_H
#define __UNIFIED_CAMERA_ACCESS_H
+#include <stdint.h>
+
struct uca_t;
/*
* \brief Camera probing and initialization
* \return 0 if camera is not found or could not be initialized
*/
-typedef int (*uca_cam_init) (struct uca_t *uca);
+typedef uint32_t (*uca_cam_init) (struct uca_t *uca);
+
+typedef uint32_t (*uca_cam_destroy) (struct uca_t *uca);
+
+typedef uint32_t (*uca_cam_set_dimensions) (struct uca_t *uca, uint32_t *width, uint32_t *height);
+
+typedef uint32_t (*uca_cam_set_bitdepth) (struct uca_t *uca, uint8_t *bitdepth);
+
+typedef uint32_t (*uca_cam_set_exposure) (struct uca_t *uca, uint32_t *exposure);
+
+typedef uint32_t (*uca_cam_set_delay) (struct uca_t *uca, uint32_t *delay);
+
+typedef uint32_t (*uca_cam_acquire_image) (struct uca_t *uca, void *buffer);
+
+
+
+#define UCA_ERR_INIT_NOT_FOUND 1 /**< camera probing failed */
+
+#define UCA_ERR_DIMENSION_NOT_SUPPORTED 1
+
+#define UCA_ERR_BITDEPTH_NOT_SUPPORTED 1
-typedef void (*uca_cam_destroy) (struct uca_t *uca);
#define UCA_BIG_ENDIAN 1
#define UCA_LITTLE_ENDIAN 2
@@ -22,7 +43,17 @@ struct uca_t {
unsigned int image_flags;
/* Function pointers to camera-specific methods */
+ uca_cam_set_dimensions cam_set_dimensions;
+ uca_cam_set_bitdepth cam_set_bitdepth;
+ uca_cam_set_exposure cam_set_exposure;
+ uca_cam_set_delay cam_set_delay;
+
+ uca_cam_acquire_image cam_acquire_image;
+
+ /* Private */
uca_cam_destroy cam_destroy;
+
+ void *user; /**< private user data to be used by the camera driver */
};
struct uca_t *uca_init();