diff --git a/gstdoc-scangobj b/gstdoc-scangobj index 2e84775a0f1b6606e85ac37de3235e2457081de1..9d9fee4169c3a8e8d2a35f98bcfb152905bb6c48 100755 --- a/gstdoc-scangobj +++ b/gstdoc-scangobj @@ -295,6 +295,7 @@ get_object_types (void) g_warning ("Could not load plugin feature %s", gst_plugin_feature_get_name (feature)); } + factories = g_list_prepend (factories, feature); if (GST_IS_ELEMENT_FACTORY (feature)) { const gchar *pad_dir[] = { "unknown","source","sink" }; @@ -304,7 +305,6 @@ get_object_types (void) $debug_log (" feature: %s", gst_plugin_feature_get_name (feature)); factory = GST_ELEMENT_FACTORY (feature); - factories = g_list_prepend (factories, factory); if (reinspect) { /* output element data */ @@ -332,6 +332,16 @@ get_object_types (void) g_list_free (pads); fputs (" </pads>\\n </element>\\n", inspect); } + } else if (GST_IS_TRACER_FACTORY (feature)) { + $debug_log (" feature: %s", gst_plugin_feature_get_name (feature)); + + if (reinspect) { + /* output element data */ + fputs (" <tracer>\\n", inspect); + fputs (xmlprint(6, "name", gst_plugin_feature_get_name (feature)),inspect); + + fputs (" </tracer>\\n", inspect); + } } features = g_list_next (features); } @@ -354,14 +364,22 @@ get_object_types (void) /* fill it */ while (l) { - factory = GST_ELEMENT_FACTORY (l->data); - type = gst_element_factory_get_element_type (factory); + const gchar *name = NULL; + type = 0; + if (GST_IS_ELEMENT_FACTORY (l->data)) { + factory = GST_ELEMENT_FACTORY (l->data); + type = gst_element_factory_get_element_type (factory); + name = gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME); + } else if (GST_IS_TRACER_FACTORY (l->data)) { + GstTracerFactory *t = GST_TRACER_FACTORY (l->data); + type = gst_tracer_factory_get_tracer_type (t); + name = gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (t)); + } if (type != 0) { - $debug_log ("adding type for factory %s", gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)); + $debug_log ("adding type for factory %s", name); object_types[i++] = type; } else { - g_message ("type info for factory %s not found", - gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_LONGNAME)); + g_message ("type info for factory %s not found", name); } l = g_list_next (l); } diff --git a/plugins.xsl b/plugins.xsl index 60515b6a9d69540da5814e199251b749c9b40489..2c5020383ff7542c5b59b4e30c7060061ebcdb9e 100644 --- a/plugins.xsl +++ b/plugins.xsl @@ -111,6 +111,45 @@ </exsl:document> </xsl:template> + <xsl:template match="tracer"> + <xsl:element name="varlistentry"> + <xsl:element name="term"> + <xsl:element name="link"> + <xsl:attribute name="linkend"><xsl:value-of select="$module" />-plugins-<xsl:value-of select="name"/>tracer</xsl:attribute> + <xsl:value-of select="name" /> + </xsl:element> + </xsl:element> + <!--<xsl:element name="listitem"> + <xsl:element name="simpara"><xsl:value-of select="description" /></xsl:element> + </xsl:element>--> + </xsl:element> + <xsl:variable name="name"><xsl:copy-of select="name"/></xsl:variable> + <exsl:document href="{concat ('xml/tracer-', $name, '-details.xml')}" method="xml" indent="yes"> + + <xsl:element name="refsynopsisdiv"> + <xsl:element name="refsect2"> + <xsl:element name="title">Tracer Information</xsl:element> + <xsl:element name="variablelist"> + + <!-- plugin name and link --> + <xsl:element name="varlistentry"> + <xsl:element name="term">plugin</xsl:element> + <xsl:element name="listitem"> + <xsl:element name="simpara"> + <xsl:element name="link"> + <xsl:attribute name="linkend">plugin-<xsl:value-of select="../../name"/></xsl:attribute> + <xsl:value-of select="../../name" /> + </xsl:element> + </xsl:element> + </xsl:element> + </xsl:element> + </xsl:element> <!-- variablelist --> + </xsl:element> <!-- refsect2 --> + </xsl:element> <!-- refsynopsisdiv --> + + </exsl:document> + </xsl:template> + <xsl:template match="plugin"> <xsl:element name="refentry"> <xsl:attribute name="id"><xsl:value-of select="$module" />-plugins-plugin-<xsl:value-of select="name"/></xsl:attribute>