From ccaf5dfc7727ea32920527a7622509b9724ae42f Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Fri, 21 Oct 2011 11:25:46 +0200 Subject: Add: readout state --- src/grabbers/me4.c | 5 ++++- src/uca.c | 3 ++- src/uca.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/grabbers/me4.c b/src/grabbers/me4.c index 48d0756..a157206 100644 --- a/src/grabbers/me4.c +++ b/src/grabbers/me4.c @@ -215,8 +215,10 @@ static uint32_t uca_me4_grab(struct uca_grabber_priv *grabber, void **buffer, ui else last_frame = Fg_getLastPicNumberEx(me4->fg, PORT_A, me4->mem); - if (last_frame <= 0) + if (last_frame <= 0) { + *buffer = NULL; return UCA_ERR_GRABBER | UCA_ERR_FRAME_TRANSFER; + } *frame_number = (uint64_t) last_frame; *buffer = Fg_getImagePtrEx(me4->fg, last_frame, PORT_A, me4->mem); @@ -274,6 +276,7 @@ uint32_t uca_me4_init(struct uca_grabber_priv **grabber) Fg_getParameter(fg, FG_TIMEOUT, &me4->timeout, PORT_A); + me4->timeout = 1; uca->user = me4; uca->destroy = &uca_me4_destroy; uca->set_property = &uca_me4_set_property; diff --git a/src/uca.c b/src/uca.c index 191092c..59155cc 100644 --- a/src/uca.c +++ b/src/uca.c @@ -327,7 +327,7 @@ uint32_t uca_cam_register_callback(struct uca_camera *cam, uca_cam_grab_callback uint32_t uca_cam_grab(struct uca_camera *cam, char *buffer, void *meta_data) { struct uca_camera_priv *priv = cam->priv; - if (priv->state != UCA_CAM_RECORDING) + if ((priv->state != UCA_CAM_RECORDING) && (priv->state != UCA_CAM_READOUT)) return UCA_ERR_CAMERA | UCA_ERR_NOT_RECORDING; return priv->grab(priv, buffer, meta_data); } @@ -339,6 +339,7 @@ uint32_t uca_cam_readout(struct uca_camera *cam) return UCA_ERR_CAMERA | UCA_ERR_IS_RECORDING; if (priv->readout == NULL) return UCA_ERR_CAMERA | UCA_ERR_NOT_IMPLEMENTED; + priv->state = UCA_CAM_READOUT; return priv->readout(priv); } diff --git a/src/uca.h b/src/uca.h index 03d0f4f..c4a9128 100644 --- a/src/uca.h +++ b/src/uca.h @@ -196,6 +196,7 @@ enum uca_cam_state { UCA_CAM_CONFIGURABLE, /**< Camera can be configured and is not recording */ UCA_CAM_ARMED, /**< Camera is ready for recording */ UCA_CAM_RECORDING, /**< Camera is currently recording */ + UCA_CAM_READOUT /**< Camera recorded and is currently in readout mode */ }; -- cgit v1.2.3