diff options
author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2012-07-13 15:38:28 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@gmail.com> | 2012-07-13 16:42:45 +0200 |
commit | daeca509cc60e977855187f81aea9ca2803527c1 (patch) | |
tree | 16055876e8843a60d10755cb87d12db5731007fd | |
parent | 4289804f6c89554e59b8be6823de9dab18172d6a (diff) | |
download | libuca-daeca509cc60e977855187f81aea9ca2803527c1.tar.gz libuca-daeca509cc60e977855187f81aea9ca2803527c1.tar.bz2 libuca-daeca509cc60e977855187f81aea9ca2803527c1.tar.xz libuca-daeca509cc60e977855187f81aea9ca2803527c1.zip |
Fix: saving the bits correctly
-rw-r--r-- | src/cameras/uca-ufo-camera.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/cameras/uca-ufo-camera.c b/src/cameras/uca-ufo-camera.c index 55439cc..1f1eca8 100644 --- a/src/cameras/uca-ufo-camera.c +++ b/src/cameras/uca-ufo-camera.c @@ -84,7 +84,6 @@ static gint base_overrideables[] = { typedef struct _RegisterInfo { gchar *name; guint cached_value; - guint n_bits; } RegisterInfo; static GParamSpec *ufo_properties[N_MAX_PROPERTIES] = { NULL, }; @@ -94,6 +93,7 @@ static GHashTable *ufo_property_table; /* maps from prop_id to RegisterInfo* */ struct _UcaUfoCameraPrivate { pcilib_t *handle; + guint n_bits; }; static void ignore_messages(const char *format, ...) @@ -101,11 +101,11 @@ static void ignore_messages(const char *format, ...) } static guint -read_register_value (UcaUfoCameraPrivate *priv, const gchar *name) +read_register_value (pcilib_t *handle, const gchar *name) { pcilib_register_value_t reg_value; - pcilib_read_register(priv->handle, NULL, name, ®_value); + pcilib_read_register(handle, NULL, name, ®_value); return (guint) reg_value; } @@ -145,9 +145,6 @@ UcaUfoCamera *uca_ufo_camera_new(GError **error) pcilib_set_error_handler(&ignore_messages, &ignore_messages); - bit_mode = read_register_value (priv, "bit_mode"); - priv->n_bits = bit_mode == 2 ? 12 : 10; - /* Generate properties from model description */ model_description = pcilib_get_model_description(handle); ufo_property_table = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free); @@ -194,6 +191,9 @@ UcaUfoCamera *uca_ufo_camera_new(GError **error) UcaUfoCamera *camera = g_object_new(UCA_TYPE_UFO_CAMERA, NULL); UcaUfoCameraPrivate *priv = UCA_UFO_CAMERA_GET_PRIVATE(camera); + + bit_mode = read_register_value (handle, "bit_mode"); + priv->n_bits = bit_mode == 2 ? 12 : 10; priv->handle = handle; return camera; @@ -325,7 +325,7 @@ uca_ufo_camera_get_property(GObject *object, guint property_id, GValue *value, G g_value_set_uint(value, SENSOR_HEIGHT); break; case PROP_SENSOR_BITDEPTH: - g_value_set_uing (value, priv->n_bits); + g_value_set_uint (value, priv->n_bits); break; case PROP_SENSOR_HORIZONTAL_BINNING: g_value_set_uint(value, 1); @@ -337,10 +337,10 @@ uca_ufo_camera_get_property(GObject *object, guint property_id, GValue *value, G g_value_set_float(value, 340.0); break; case PROP_SENSOR_TEMPERATURE: - g_value_set_double (value, 0.17537 * read_register_value (priv, "cmosis_temperature") - 198.03733); + g_value_set_double (value, 0.17537 * read_register_value (priv->handle, "cmosis_temperature") - 198.03733); break; case PROP_EXPOSURE_TIME: - g_value_set_double (value, read_register_value (priv, "exp_time") / EXPOSURE_TIME_SCALE); + g_value_set_double (value, read_register_value (priv->handle, "exp_time") / EXPOSURE_TIME_SCALE); break; case PROP_HAS_STREAMING: g_value_set_boolean(value, TRUE); |