summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cameras/uca_pco.c10
-rw-r--r--src/uca.c6
-rw-r--r--src/uca.h77
3 files changed, 48 insertions, 45 deletions
diff --git a/src/cameras/uca_pco.c b/src/cameras/uca_pco.c
index 8a89fa0..cd727b9 100644
--- a/src/cameras/uca_pco.c
+++ b/src/cameras/uca_pco.c
@@ -58,7 +58,7 @@ static uint32_t uca_pco_destroy(struct uca_camera_t *cam)
return UCA_NO_ERROR;
}
-static uint32_t uca_pco_set_property(struct uca_camera_t *cam, int32_t property, void *data)
+static uint32_t uca_pco_set_property(struct uca_camera_t *cam, enum uca_property_ids property, void *data)
{
switch (property) {
case UCA_PROP_WIDTH:
@@ -94,7 +94,7 @@ static uint32_t uca_pco_set_property(struct uca_camera_t *cam, int32_t property,
}
-static uint32_t uca_pco_get_property(struct uca_camera_t *cam, int32_t property, void *data)
+static uint32_t uca_pco_get_property(struct uca_camera_t *cam, enum uca_property_ids property, void *data)
{
struct pco_edge_t *pco = GET_PCO(cam);
@@ -201,7 +201,6 @@ uint32_t uca_pco_init(struct uca_camera_t **cam)
struct uca_camera_t *uca = (struct uca_camera_t *) malloc(sizeof(struct uca_camera_t));
uca->user = pco_cam;
- *cam = uca;
/* Camera found, set function pointers... */
uca->destroy = &uca_pco_destroy;
@@ -238,7 +237,8 @@ uint32_t uca_pco_init(struct uca_camera_t **cam)
Fg_setParameter(fg, FG_WIDTH, &width, PORT_A);
Fg_setParameter(fg, FG_HEIGHT, &height, PORT_A);
- pco_set_rec_state(pco, 1);
+ uca->state = UCA_CAM_CONFIGURABLE;
+ *cam = uca;
- return 0;
+ return UCA_NO_ERROR;
}
diff --git a/src/uca.c b/src/uca.c
index 17a7ae2..f86864c 100644
--- a/src/uca.c
+++ b/src/uca.c
@@ -112,7 +112,7 @@ static struct uca_property_t property_map[UCA_PROP_LAST+1] = {
{ NULL, 0, 0 }
};
-int32_t uca_get_property_id(const char *property_name)
+enum uca_property_ids uca_get_property_id(const char *property_name)
{
char *name;
int i = 0;
@@ -124,14 +124,14 @@ int32_t uca_get_property_id(const char *property_name)
return UCA_ERR_PROP_INVALID;
}
-struct uca_property_t *uca_get_full_property(int32_t property_id)
+struct uca_property_t *uca_get_full_property(enum uca_property_ids property_id)
{
if ((property_id >= 0) && (property_id < UCA_PROP_LAST))
return &property_map[property_id];
return NULL;
}
-const char* uca_get_property_name(int32_t property_id)
+const char* uca_get_property_name(enum uca_property_ids property_id)
{
if ((property_id >= 0) && (property_id < UCA_PROP_LAST))
return property_map[property_id].name;
diff --git a/src/uca.h b/src/uca.h
index 3f31bdb..4034457 100644
--- a/src/uca.h
+++ b/src/uca.h
@@ -18,6 +18,7 @@ struct uca_camera_t;
struct uca_property_t;
enum uca_camera_state;
+enum uca_property_ids;
/**
* \brief Camera probing and initialization
@@ -36,14 +37,14 @@ typedef uint32_t (*uca_cam_destroy) (struct uca_camera_t *cam);
* \return UCA_ERR_PROP_INVALID if property is not supported on the camera or
* UCA_ERR_PROP_VALUE_OUT_OF_RANGE if value cannot be set.
*/
-typedef uint32_t (*uca_cam_set_property) (struct uca_camera_t *cam, int32_t property, void *data);
+typedef uint32_t (*uca_cam_set_property) (struct uca_camera_t *cam, enum uca_property_ids property, void *data);
/**
* \brief Set a property
* \param[in] property_name Name of the property as defined in XXX
* \return UCA_ERR_PROP_INVALID if property is not supported on the camera
*/
-typedef uint32_t (*uca_cam_get_property) (struct uca_camera_t *cam, int32_t property, void *data);
+typedef uint32_t (*uca_cam_get_property) (struct uca_camera_t *cam, enum uca_property_ids property, void *data);
/** \brief Allocate number of buffers
*
@@ -73,14 +74,14 @@ enum uca_cam_state uca_get_camera_state(struct uca_camera_t *cam);
/**
* \brief Convert a property string to the corresponding ID
*/
-int32_t uca_get_property_id(const char *property_name);
+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(int32_t property_id);
+const char* uca_get_property_name(enum uca_property_ids property_id);
-struct uca_property_t *uca_get_full_property(int32_t property_id);
+struct uca_property_t *uca_get_full_property(enum uca_property_ids property_id);
#define UCA_NO_ERROR 0
#define UCA_ERR_INIT_NOT_FOUND 1 /**< camera probing or initialization failed */
@@ -91,38 +92,40 @@ struct uca_property_t *uca_get_full_property(int32_t 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! */
-#define UCA_PROP_NAME 0
-#define UCA_PROP_WIDTH 1
-#define UCA_PROP_WIDTH_MIN 2
-#define UCA_PROP_WIDTH_MAX 3
-#define UCA_PROP_HEIGHT 4
-#define UCA_PROP_HEIGHT_MIN 5
-#define UCA_PROP_HEIGHT_MAX 6
-#define UCA_PROP_X_OFFSET 7
-#define UCA_PROP_Y_OFFSET 8
-#define UCA_PROP_BITDEPTH 9
-#define UCA_PROP_EXPOSURE 10
-#define UCA_PROP_EXPOSURE_MIN 11
-#define UCA_PROP_EXPOSURE_MAX 12
-#define UCA_PROP_DELAY 13
-#define UCA_PROP_DELAY_MIN 14
-#define UCA_PROP_DELAY_MAX 15
-#define UCA_PROP_FRAMERATE 16
-#define UCA_PROP_TRIGGER_MODE 17
-
-/* pco.edge specific */
-#define UCA_PROP_TIMESTAMP_MODE 18
-#define UCA_PROP_SCAN_MODE 19
-
-/* IPE camera specific */
-#define UCA_PROP_INTERLACE_SAMPLE_RATE 20
-#define UCA_PROP_INTERLACE_PIXEL_THRESH 21
-#define UCA_PROP_INTERLACE_ROW_THRESH 22
-
-/* Photon Focus specific */
-#define UCA_PROP_CORRECTION_MODE 23
-
-#define UCA_PROP_LAST 24
+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