debugutils: allow to hide/show pad status with graphdetails flag
authorStefan Kost <ensonic@users.sf.net>
Sun, 25 Oct 2009 19:35:09 +0000 (21:35 +0200)
committerStefan Kost <ensonic@users.sf.net>
Tue, 27 Oct 2009 10:06:35 +0000 (12:06 +0200)
gst/gstdebugutils.c

index 0e157977875995ac2bbff19118d8db1f3dc03415..0134fdb4a4ce83ba5e4f993bea2bb6ce8e4c0f54 100644 (file)
@@ -137,13 +137,11 @@ debug_dump_get_element_params (GstElement * element)
 
 static void
 debug_dump_pad (GstPad * pad, gchar * color_name, gchar * element_name,
-    FILE * out, const gint indent)
+    GstDebugGraphDetails details, FILE * out, const gint indent)
 {
   GstPadTemplate *pad_templ;
   GstPadPresence presence;
   gchar *pad_name, *style_name;
-  gchar pad_flags[6];
-  const gchar *activation_mode = "-><";
   const gchar *spc = &spaces[MAX (sizeof (spaces) - (1 + indent * 2), 0)];
 
   pad_name = debug_dump_make_object_name (GST_OBJECT (pad));
@@ -158,16 +156,28 @@ debug_dump_pad (GstPad * pad, gchar * color_name, gchar * element_name,
       style_name = "filled,dashed";
     }
   }
-  /* check if pad flags */
-  pad_flags[0] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKED) ? 'B' : 'b';
-  pad_flags[1] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLUSHING) ? 'F' : 'f';
-  pad_flags[2] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_IN_GETCAPS) ? 'G' : 'g';
-  pad_flags[3] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_IN_SETCAPS) ? 's' : 's';
-  pad_flags[4] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKING) ? 'B' : 'b';
-  pad_flags[5] = '\0';
+  if (details & GST_DEBUG_GRAPH_SHOW_STATES) {
+    gchar pad_flags[6];
+    const gchar *activation_mode = "-><";
+
+    /* check if pad flags */
+    pad_flags[0] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKED) ? 'B' : 'b';
+    pad_flags[1] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLUSHING) ? 'F' : 'f';
+    pad_flags[2] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_IN_GETCAPS) ? 'G' : 'g';
+    pad_flags[3] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_IN_SETCAPS) ? 's' : 's';
+    pad_flags[4] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_BLOCKING) ? 'B' : 'b';
+    pad_flags[5] = '\0';
 
-  fprintf (out, "%s  %s_%s [color=black, fillcolor=\"%s\", label=\"%s\\n[%c][%s]\", height=\"0.2\", style=\"%s\"];\n", spc, element_name, pad_name, color_name, GST_OBJECT_NAME (pad), activation_mode[pad->mode],      /* NONE/PUSH/PULL */
-      pad_flags, style_name);
+    fprintf (out,
+        "%s  %s_%s [color=black, fillcolor=\"%s\", label=\"%s\\n[%c][%s]\", height=\"0.2\", style=\"%s\"];\n",
+        spc, element_name, pad_name, color_name, GST_OBJECT_NAME (pad),
+        activation_mode[pad->mode], pad_flags, style_name);
+  } else {
+    fprintf (out,
+        "%s  %s_%s [color=black, fillcolor=\"%s\", label=\"%s\", height=\"0.2\", style=\"%s\"];\n",
+        spc, element_name, pad_name, color_name, GST_OBJECT_NAME (pad),
+        style_name);
+  }
 
   g_free (pad_name);
 }
@@ -198,8 +208,8 @@ debug_dump_element_pad (GstPad * pad, GstElement * element,
         } else {
           target_element_name = "";
         }
-        debug_dump_pad (target_pad, color_name, target_element_name, out,
-            indent);
+        debug_dump_pad (target_pad, color_name, target_element_name, details,
+            out, indent);
         if (target_element) {
           g_free (target_element_name);
           gst_object_unref (target_element);
@@ -214,7 +224,7 @@ debug_dump_element_pad (GstPad * pad, GstElement * element,
             GST_PAD_SINK) ? "#aaaaff" : "#cccccc");
   }
   /* pads */
-  debug_dump_pad (pad, color_name, element_name, out, indent);
+  debug_dump_pad (pad, color_name, element_name, details, out, indent);
   g_free (element_name);
 }