gst/gstpreset.c: Fix bogus warning and make the property type specific code more...
authorStefan Kost <ensonic@users.sourceforge.net>
Mon, 19 Nov 2007 11:54:13 +0000 (11:54 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Mon, 19 Nov 2007 11:54:13 +0000 (11:54 +0000)
Original commit message from CVS:
* gst/gstpreset.c:
Fix bogus warning and make the property type specific code more
similar.

ChangeLog
gst/gstpreset.c

index e74608a9aac4a89c29086384d356be1dd9f0f5ab..5471b68c969f391ce04260a32d4bcdd2b1a85e73 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-19  Stefan Kost  <ensonic@users.sf.net>
+
+       * gst/gstpreset.c:
+         Fix bogus warning and make the property type specific code more
+         similar.
+
 2007-11-19  Julien MOUTTE  <julien@moutte.net>
 
        * gst/gstpreset.c: (gst_preset_default_create_preset): Make
index cb1b8c1247cb19fd2ba4d51829b3a7154fbe9f82..6cb72059e0e2492c21f56fa945cf6eac4caeefe4 100644 (file)
@@ -351,9 +351,9 @@ gst_preset_default_load_preset (GstPreset * self, const gchar * name)
                 property->name);
             /* get base type */
             base = property->value_type;
-            while ((parent = g_type_parent (base))) {
+            while ((parent = g_type_parent (base)))
               base = parent;
-            }
+
             switch (base) {
               case G_TYPE_INT:
               case G_TYPE_UINT:
@@ -528,12 +528,12 @@ gst_preset_default_save_preset (GstPreset * self, const gchar * name)
 
       /* get base type */
       base = property->value_type;
-      while ((parent = g_type_parent (base))) {
+      while ((parent = g_type_parent (base)))
         base = parent;
-      }
       /* get value and serialize */
       GST_INFO ("  storing property: %s (type is %s)", property->name,
           g_type_name (base));
+
       switch (base) {
         case G_TYPE_BOOLEAN:
         case G_TYPE_ENUM:
@@ -768,7 +768,7 @@ gst_preset_default_create_preset (GstPreset * self)
 {
   GParamSpec **properties, *property;
   guint i, number_of_properties;
-  GType param_type, base_type;
+  GType base, parent;
 
   if ((properties =
           g_object_class_list_properties (G_OBJECT_CLASS (GST_OBJECT_GET_CLASS
@@ -794,15 +794,16 @@ gst_preset_default_create_preset (GstPreset * self)
          }
        */
 
-      GST_INFO ("property '%s' (GType=%lu)", property->name,
-          property->value_type);
+      rnd = ((gdouble) rand ()) / (RAND_MAX + 1.0);
 
-      param_type = property->value_type;
-      while ((base_type = g_type_parent (param_type)))
-        param_type = base_type;
+      /* get base type */
+      base = property->value_type;
+      while ((parent = g_type_parent (base)))
+        base = parent;
+      GST_INFO ("set random value for property: %s (type is %s)",
+          property->name, g_type_name (base));
 
-      rnd = ((gdouble) rand ()) / (RAND_MAX + 1.0);
-      switch (param_type) {
+      switch (base) {
         case G_TYPE_BOOLEAN:{
           g_object_set (self, property->name, (gboolean) (2.0 * rnd), NULL);
         }
@@ -838,7 +839,8 @@ gst_preset_default_create_preset (GstPreset * self)
                           enum_class->minimum) * rnd)), NULL);
         } break;
         default:
-          GST_WARNING ("unhandled GType=%lu", param_type);
+          GST_WARNING ("incomplete implementation for GParamSpec type '%s'",
+              G_PARAM_SPEC_TYPE_NAME (property));
       }
     }
     /* @todo: handle childproxy properties as well */