diff options
| author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2014-08-07 12:33:47 +0200 | 
|---|---|---|
| committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2014-08-07 12:33:47 +0200 | 
| commit | b4beea2f9337014d522436cdf645291e0163d51a (patch) | |
| tree | dde1ee691608daf3f3e7708e7e7ac2796ac38ebe | |
| parent | 9938d9a5d31dba215f9a4cd623b145f12b4ecd2c (diff) | |
| download | libuca-b4beea2f9337014d522436cdf645291e0163d51a.tar.gz libuca-b4beea2f9337014d522436cdf645291e0163d51a.tar.bz2 libuca-b4beea2f9337014d522436cdf645291e0163d51a.tar.xz libuca-b4beea2f9337014d522436cdf645291e0163d51a.zip  | |
Reset all property units and warn on override
| -rw-r--r-- | src/uca-camera.c | 11 | ||||
| -rw-r--r-- | test/test-mock.c | 10 | 
2 files changed, 21 insertions, 0 deletions
diff --git a/src/uca-camera.c b/src/uca-camera.c index ae8fea9..8bb7201 100644 --- a/src/uca-camera.c +++ b/src/uca-camera.c @@ -306,11 +306,22 @@ static void  uca_camera_finalize (GObject *object)  {      UcaCameraPrivate *priv; +    GParamSpec **props; +    guint n_props;      priv = UCA_CAMERA_GET_PRIVATE (object);      g_value_array_free (priv->h_binnings);      g_value_array_free (priv->v_binnings); +    /* We will reset property units of all subclassed objects  */ +    props = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), &n_props); + +    for (guint i = 0; i < n_props; i++) { +        g_param_spec_set_qdata (props[i], UCA_UNIT_QUARK, NULL); +    } + +    g_free (props); +      G_OBJECT_CLASS (uca_camera_parent_class)->finalize (object);  } diff --git a/test/test-mock.c b/test/test-mock.c index facae53..de1e18d 100644 --- a/test/test-mock.c +++ b/test/test-mock.c @@ -221,6 +221,16 @@ test_signal (Fixture *fixture, gconstpointer data)      g_assert (success == TRUE);  } +static void +test_overwriting_units (Fixture *fixture, gconstpointer data) +{ +    UcaUnit unit; + +    uca_camera_register_unit (fixture->camera, "frames-per-second", UCA_UNIT_PIXEL); +    unit = uca_camera_get_unit (fixture->camera, "frames-per-second"); +    g_assert (unit != UCA_UNIT_PIXEL); +} +  int main (int argc, char *argv[])  {  #if !(GLIB_CHECK_VERSION (2, 36, 0))  | 
