diff options
author | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-10-09 15:43:10 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-10-09 15:43:10 +0200 |
commit | 4a27a2e95aa1a2312ad17404d7ab236b2fa6f1b7 (patch) | |
tree | 1016f4721a740d18dcb44e471c393531ef814232 /src | |
parent | 805129cf7452e37c6d1042a87fadd297098fac9c (diff) | |
download | libuca-4a27a2e95aa1a2312ad17404d7ab236b2fa6f1b7.tar.gz libuca-4a27a2e95aa1a2312ad17404d7ab236b2fa6f1b7.tar.bz2 libuca-4a27a2e95aa1a2312ad17404d7ab236b2fa6f1b7.tar.xz libuca-4a27a2e95aa1a2312ad17404d7ab236b2fa6f1b7.zip |
Fix #150: Add "frames-per-second" property
Right now, there is only information for the DIMAX camera about the actual
inherent system delay. For all other cameras fps = 1. / t_exp.
Diffstat (limited to 'src')
-rw-r--r-- | src/uca-camera.c | 26 | ||||
-rw-r--r-- | src/uca-camera.h | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/uca-camera.c b/src/uca-camera.c index f973355..14da820 100644 --- a/src/uca-camera.c +++ b/src/uca-camera.c @@ -66,6 +66,7 @@ const gchar *uca_camera_props[N_BASE_PROPERTIES] = { "sensor-max-frame-rate", "trigger-mode", "exposure-time", + "frames-per-second", "roi-x0", "roi-y0", "roi-width", @@ -102,6 +103,15 @@ uca_camera_set_property (GObject *object, guint property_id, const GValue *value priv->transfer_async = g_value_get_boolean(value); break; + case PROP_FRAMES_PER_SECOND: + { + gdouble frames_per_second; + + frames_per_second = g_value_get_double (value); + g_object_set (object, "exposure-time", 1. / frames_per_second, NULL); + } + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } @@ -125,6 +135,15 @@ uca_camera_get_property(GObject *object, guint property_id, GValue *value, GPara g_value_set_boolean(value, priv->transfer_async); break; + case PROP_FRAMES_PER_SECOND: + { + gdouble exposure_time; + + g_object_get (object, "exposure-time", &exposure_time, NULL); + g_value_set_double (value, 1. / exposure_time); + } + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); } @@ -267,6 +286,13 @@ uca_camera_class_init(UcaCameraClass *klass) 0.0, G_MAXDOUBLE, 1.0, G_PARAM_READWRITE); + camera_properties[PROP_FRAMES_PER_SECOND] = + g_param_spec_double(uca_camera_props[PROP_FRAMES_PER_SECOND], + "Frames per second", + "Frames per second", + 0.0, G_MAXDOUBLE, 1.0, + G_PARAM_READWRITE); + camera_properties[PROP_HAS_STREAMING] = g_param_spec_boolean(uca_camera_props[PROP_HAS_STREAMING], "Streaming capability", diff --git a/src/uca-camera.h b/src/uca-camera.h index bd89bc6..7d81dac 100644 --- a/src/uca-camera.h +++ b/src/uca-camera.h @@ -63,6 +63,7 @@ enum { PROP_SENSOR_MAX_FRAME_RATE, PROP_TRIGGER_MODE, PROP_EXPOSURE_TIME, + PROP_FRAMES_PER_SECOND, PROP_ROI_X, PROP_ROI_Y, PROP_ROI_WIDTH, |