From 184fc22ce23f8ab7c8127b5ac0657fc20ddea924 Mon Sep 17 00:00:00 2001 From: Matthias Vogelgesang Date: Thu, 18 Oct 2012 16:07:00 +0200 Subject: Add "recorded-frames" property --- plugins/pco/uca-pco-camera.c | 9 +++++++++ src/uca-camera.c | 20 ++++++++++++++++++++ src/uca-camera.h | 1 + 3 files changed, 30 insertions(+) diff --git a/plugins/pco/uca-pco-camera.c b/plugins/pco/uca-pco-camera.c index 03a1a17..d34e0f4 100644 --- a/plugins/pco/uca-pco-camera.c +++ b/plugins/pco/uca-pco-camera.c @@ -139,6 +139,7 @@ static gint base_overrideables[] = { PROP_ROI_HEIGHT_MULTIPLIER, PROP_HAS_STREAMING, PROP_HAS_CAMRAM_RECORDING, + PROP_RECORDED_FRAMES, 0 }; @@ -504,6 +505,9 @@ uca_pco_camera_stop_recording(UcaCamera *camera, GError **error) err = Fg_setStatusEx(priv->fg, FG_UNBLOCK_ALL, 0, priv->fg_port, priv->fg_mem); if (err == FG_INVALID_PARAMETER) g_warning(" Unable to unblock all\n"); + + err = pco_get_num_images(priv->pco, priv->active_segment, &priv->num_recorded_images); + HANDLE_PCO_ERROR(err); } static void @@ -1024,6 +1028,10 @@ uca_pco_camera_get_property(GObject *object, guint property_id, GValue *value, G g_value_set_boolean(value, priv->camera_description->has_camram); break; + case PROP_RECORDED_FRAMES: + g_value_set_uint(value, priv->num_recorded_images); + break; + case PROP_RECORD_MODE: { guint16 mode; @@ -1440,6 +1448,7 @@ uca_camera_impl_new (GError **error) priv->roi_y = roi[1] - 1; priv->roi_width = roi[2] - roi[0] + 1; priv->roi_height = roi[3] - roi[1] + 1; + priv->num_recorded_images = 0; guint16 camera_type, camera_subtype; pco_get_camera_type(priv->pco, &camera_type, &camera_subtype); diff --git a/src/uca-camera.c b/src/uca-camera.c index 053dcca..53b2d7a 100644 --- a/src/uca-camera.c +++ b/src/uca-camera.c @@ -103,6 +103,7 @@ const gchar *uca_camera_props[N_BASE_PROPERTIES] = { "roi-height-multiplier", "has-streaming", "has-camram-recording", + "recorded-frames", "transfer-asynchronously", "is-recording", "is-readout" @@ -182,6 +183,10 @@ uca_camera_get_property(GObject *object, guint property_id, GValue *value, GPara } break; + case PROP_RECORDED_FRAMES: + g_value_set_uint (value, 0); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } @@ -350,6 +355,20 @@ uca_camera_class_init (UcaCameraClass *klass) "Is the camera able to record the data in-camera", FALSE, G_PARAM_READABLE); + /** + * UcaCamera:recorded-frames + * + * Number of frames that are recorded into internal camera memory. + * + * Since: 1.1 + */ + camera_properties[PROP_RECORDED_FRAMES] = + g_param_spec_uint(uca_camera_props[PROP_RECORDED_FRAMES], + "Number of frames recorded into internal camera memory", + "Number of frames recorded into internal camera memory", + 0, G_MAXUINT, 0, + G_PARAM_READABLE); + camera_properties[PROP_TRANSFER_ASYNCHRONOUSLY] = g_param_spec_boolean(uca_camera_props[PROP_TRANSFER_ASYNCHRONOUSLY], "Specify whether data should be transfered asynchronously", @@ -398,6 +417,7 @@ uca_camera_init (UcaCamera *camera) uca_camera_set_property_unit (camera_properties[PROP_ROI_HEIGHT], UCA_UNIT_PIXEL); uca_camera_set_property_unit (camera_properties[PROP_ROI_WIDTH_MULTIPLIER], UCA_UNIT_COUNT); uca_camera_set_property_unit (camera_properties[PROP_ROI_HEIGHT_MULTIPLIER], UCA_UNIT_COUNT); + uca_camera_set_property_unit (camera_properties[PROP_RECORDED_FRAMES], UCA_UNIT_COUNT); } /** diff --git a/src/uca-camera.h b/src/uca-camera.h index 78edd95..87996c6 100644 --- a/src/uca-camera.h +++ b/src/uca-camera.h @@ -85,6 +85,7 @@ enum { PROP_ROI_HEIGHT_MULTIPLIER, PROP_HAS_STREAMING, PROP_HAS_CAMRAM_RECORDING, + PROP_RECORDED_FRAMES, /* These properties are handled internally */ PROP_TRANSFER_ASYNCHRONOUSLY, -- cgit v1.2.3