More documentation changes, a couple configure.in and Makefile.am fixes.
authorErik Walthinsen <omega@temple-baptist.org>
Wed, 2 Feb 2000 06:26:44 +0000 (06:26 +0000)
committerErik Walthinsen <omega@temple-baptist.org>
Wed, 2 Feb 2000 06:26:44 +0000 (06:26 +0000)
Original commit message from CVS:
More documentation changes, a couple configure.in and Makefile.am fixes.

12 files changed:
configure.in
docs/Makefile.am
docs/gst/Makefile.am
docs/gst/gstreamer-decl.txt
docs/gst/gstreamer-sections.txt
docs/gst/tmpl/gstelement.sgml
docs/gst/tmpl/gstpipeline.sgml
gst/gst.c
gst/gstelement.c
gst/gstelement.h
gst/gstobject.c
gst/gstpipeline.c

index 2100ae3..9ad6fdc 100644 (file)
@@ -188,20 +188,20 @@ esac],
 AC_ARG_ENABLE(debug,
 [  --enable-debug               spews lots of useless info at runtime],
 [case "${enableval}" in
-  yes) use_debug=yes ;;
-  no)  use_debug=no ;;
+  yes) USE_DEBUG=yes ;;
+  no)  USE_DEBUG=no ;;
   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
 esac], 
-[use_debug=no]) dnl Default value
+[USE_DEBUG=no]) dnl Default value
 
 AC_ARG_ENABLE(profiling,
 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
 [case "${enableval}" in
-  yes) use_profiling=yes ;;
-  no)  use_profiling=no ;;
+  yes) USE_PROFILING=yes ;;
+  no)  UES_PROFILING=no ;;
   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
 esac], 
-[use_profiling=no]) dnl Default value
+[USE_PROFILING=no]) dnl Default value
 
 
 dnl ################################################
index 278dc65..fd03b09 100644 (file)
@@ -1,3 +1,7 @@
-SUBDIRS = gst
+if HAVE_GTK_DOC
+  SUBDIRS += gst manual
+endif
+
+DIST_SUBDIRS = gst manual
 
 #EXTRA_DIST = random slides
index 6c0b276..186922b 100644 (file)
@@ -37,13 +37,34 @@ tmpl_sources =                              \
        tmpl/gsttype.sgml               \
        tmpl/gstutils.sgml              \
        tmpl/gstxml.sgml                \
-       tmpl/plugin.sgml                
+       tmpl/plugin.sgml
+
+gstreamer_docdir = $(HTML_DIR)
+gstreamer_doc_DATA =           \
+       gstreamer.html          \
+       gstreamer.hierarchy     \
+       gstreamer.types         \
+       gstreamer-decl.txt      \
+       gstreamer-sections.txt
 
 SCANOBJS_FILES =               \
        $(DOC_MODULE).signals   \
        $(DOC_MODULE).hierarchy \
        $(DOC_MODULE).args
 
+if HAVE_GTK_DOC
+gstreamer.html: html/book1.html
+       -cd $(srcdir) && cp html/book1.html gstreamer.html
+else
+gstreamer.html:
+endif
+
+html/book1.html: sgml/gstreamer-doc.bottom
+       $(MAKE) html
+
+sgml/gstreamer-doc.bottom: $(tmpl_sources)
+       $(MAKE) sgml
+
 scanobj:
        env CC="$(LIBTOOL) --mode=link $(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
                gtkdoc-scanobj --module=$(DOC_MODULE) \
@@ -63,15 +84,34 @@ html:
        -cd html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
 
 clean-local:
-       rm -f *~ *.bak *.hierarchy *.signals *.args *-unused.txt
+       rm -f *~ *.bak *.signals *-unused.txt
 
 maintainer-clean-local: clean
        rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt 
 
 install-data-local:
-       install -d -m 0755 $(TARGET_DIR)
-       install -m 0644 html/*.html $(TARGET_DIR)
-       install -m 0644 html/index.sgml $(TARGET_DIR)
-       gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)
+       $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR)
+       (installfiles=`echo $(srcdir)/html/*.html`; \
+       if test "$$installfiles" = '$(srcdir)/html/*.html'; \
+       then echo '-- Nothing to install' ; \
+       else \
+         for i in $$installfiles; do \
+           echo '-- Installing '$$i ; \
+           $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
+         done; \
+         echo '-- Installing $(srcdir)/html/index.sgml' ; \
+         $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
+         echo '-- Fixing Crossreferences' ; \
+         gtkdoc-fixxref --module=$(DOC_MODULE) --html-dir=$(HTML_DIR)|| true; \
+       fi)
+
+dist-hook:
+       mkdir $(distdir)/html
+       mkdir $(distdir)/sgml
+       mkdir $(distdir)/tmpl
+       -cp $(srcdir)/html/*.html $(srcdir)/html/*.css $(distdir)/html
+       -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
+       -cp $(srcdir)/sgml/*.sgml $(distdir)/sgml
+       -cp $(srcdir)/sgml/*.bottom $(srcdir)/sgml/*.top $(distdir)/sgml
 
 .PHONY : html sgml templates scan
index 7693f04..ecf6df0 100644 (file)
@@ -501,10 +501,10 @@ struct GstElementDetails {
 <STRUCT>
 <NAME>GstElementFactory</NAME>
 struct GstElementFactory {
-  gchar *name;
-  GtkType type;
+  gchar *name;                 /* name of element */
+  GtkType type;                        /* unique GtkType of element */
 
-  GstElementDetails *details;
+  GstElementDetails *details;  /* pointer to details struct */
 };
 </STRUCT>
 <FUNCTION>
index 70ee6ec..76869e1 100644 (file)
@@ -26,6 +26,49 @@ GST_IS_OBJECT_CLASS
 </SECTION>
 
 <SECTION>
+<FILE>gstelement</FILE>
+GstElement
+GstElementState
+GST_STATE
+GST_STATE_IS_SET
+GST_STATE_SET
+GST_STATE_UNSET
+GstElementDetails
+GstElementFactory
+GstElementLoopFunction
+<TITLE>GstElement</TITLE>
+gst_element_new
+gst_element_set_loop_function
+gst_element_set_name
+gst_element_get_name
+gst_element_set_manager
+gst_element_get_manager
+gst_element_add_pad
+gst_element_add_ghost_pad
+gst_element_get_pad
+gst_element_get_pad_list
+gst_element_connect
+gst_element_set_state
+gst_element_error
+gst_element_change_state
+gst_element_destroy
+gst_element_save_thyself
+gst_elementfactory_new
+gst_elementfactory_register
+gst_elementfactory_find
+gst_elementfactory_get_list
+gst_elementfactory_create
+gst_elementfactory_make
+gst_element_loopfunc_wrapper
+<SUBSECTION Standard>
+gst_element_get_type
+GST_TYPE_ELEMENT
+GST_IS_ELEMENT
+GST_ELEMENT_CLASS
+GST_IS_ELEMENT_CLASS
+</SECTION>
+
+<SECTION>
 <FILE>gstbin</FILE>
 GST_BIN
 <TITLE>GstBin</TITLE>
@@ -91,49 +134,6 @@ GST_IS_CONNECTION_CLASS
 </SECTION>
 
 <SECTION>
-<FILE>gstelement</FILE>
-GstElementState
-GST_STATE
-GST_STATE_IS_SET
-GST_STATE_SET
-GST_STATE_UNSET
-GST_ELEMENT
-GstElementDetails
-GstElementFactory
-GstElementLoopFunction
-<TITLE>GstElement</TITLE>
-gst_element_new
-gst_element_set_loop_function
-gst_element_set_name
-gst_element_get_name
-gst_element_set_manager
-gst_element_get_manager
-gst_element_add_pad
-gst_element_add_ghost_pad
-gst_element_get_pad
-gst_element_get_pad_list
-gst_element_connect
-gst_element_set_state
-gst_element_error
-gst_element_change_state
-gst_element_destroy
-gst_element_save_thyself
-gst_elementfactory_new
-gst_elementfactory_register
-gst_elementfactory_find
-gst_elementfactory_get_list
-gst_elementfactory_create
-gst_elementfactory_make
-gst_element_loopfunc_wrapper
-<SUBSECTION Standard>
-GST_TYPE_ELEMENT
-GST_IS_ELEMENT
-gst_element_get_type
-GST_ELEMENT_CLASS
-GST_IS_ELEMENT_CLASS
-</SECTION>
-
-<SECTION>
 <FILE>gstfilter</FILE>
 GST_FILTER
 <TITLE>GstFilter</TITLE>
@@ -199,15 +199,15 @@ GST_IS_PAD_CLASS
 
 <SECTION>
 <FILE>gstpipeline</FILE>
-GST_PIPELINE
+GstPipeline
 <TITLE>GstPipeline</TITLE>
 gst_pipeline_new
 gst_pipeline_destroy
 gst_pipeline_iterate
 <SUBSECTION Standard>
+gst_pipeline_get_type
 GST_TYPE_PIPELINE
 GST_IS_PIPELINE
-gst_pipeline_get_type
 GST_PIPELINE_CLASS
 GST_IS_PIPELINE_CLASS
 </SECTION>
index e86d117..d222783 100644 (file)
@@ -28,11 +28,18 @@ simpler to connect pads of two elements together.
 
 </para>
 
-<!-- ##### ENUM GstElementState ##### -->
+<!-- ##### STRUCT GstElement ##### -->
 <para>
 
 </para>
 
+
+<!-- ##### ENUM GstElementState ##### -->
+<para>
+This enum defines the standard states an element may be in.  GST_STATE_MAX
+is the highest bit that can be set, and is used internally.
+</para>
+
 @GST_STATE_COMPLETE: 
 @GST_STATE_RUNNING: 
 @GST_STATE_DISCOVERY: 
@@ -43,50 +50,43 @@ simpler to connect pads of two elements together.
 
 <!-- ##### MACRO GST_STATE ##### -->
 <para>
-
+This macro returns the entire state of the element.
 </para>
 
-@obj: 
+@obj: Element to return state for.
 
 
 <!-- ##### MACRO GST_STATE_IS_SET ##### -->
 <para>
-
+This macro checks to see if the given state is set.
 </para>
 
-@obj: 
-@flag: 
+@obj: Element to check for state.
+@flag: State to check for, must be a single bit in guint32.
 
 
 <!-- ##### MACRO GST_STATE_SET ##### -->
 <para>
-
+This macro sets the given state on the element.
 </para>
 
-@obj: 
-@flag: 
+@obj: Element to set state of.
+@flag: State to set, can be any number of bits in guint32.
 
 
 <!-- ##### MACRO GST_STATE_UNSET ##### -->
 <para>
-
+This macro unsets the given state on the element.
 </para>
 
-@obj: 
-@flag: 
-
-
-<!-- ##### MACRO GST_ELEMENT ##### -->
-<para>
-
-</para>
-
-@obj: 
+@obj: Element to unset state of.
+@flag: State to unset, can be any number of bits in guint32.
 
 
 <!-- ##### STRUCT GstElementDetails ##### -->
 <para>
-
+This struct is used to define public information about the element.  It
+describes the element, mostly for the benefit of editors.
 </para>
 
 @longname: 
@@ -98,7 +98,9 @@ simpler to connect pads of two elements together.
 
 <!-- ##### STRUCT GstElementFactory ##### -->
 <para>
-
+This factory is used when registering the element, and contains the name
+of the element, the GtkType value for it, as well as a pointer to the
+GstElementDetails struct for the element.
 </para>
 
 @name: 
@@ -107,10 +109,12 @@ simpler to connect pads of two elements together.
 
 <!-- ##### USER_FUNCTION GstElementLoopFunction ##### -->
 <para>
-
+This function type is used to specify a loop function for the element.  It
+is passed the element in question, and is expect to return only in error
+circumstances.
 </para>
 
-@element: 
+@element: The element in question.
 
 
 <!-- ##### FUNCTION gst_element_new ##### -->
@@ -320,16 +324,6 @@ simpler to connect pads of two elements together.
 @Returns: 
 
 
-<!-- ##### FUNCTION gst_element_loopfunc_wrapper ##### -->
-<para>
-
-</para>
-
-@argc: 
-@argv: 
-@Returns: 
-
-
 <!-- ##### SIGNAL GstElement::state-change ##### -->
 <para>
 
index 6921c66..09b7740 100644 (file)
@@ -2,25 +2,28 @@
 GstPipeline
 
 <!-- ##### SECTION Short_Description ##### -->
-
+Top-level bin with scheduling and pipeline management functionality.
 
 <!-- ##### SECTION Long_Description ##### -->
 <para>
-
+In almost all cases, you'll want to use a GstPipeline when creating a
+filter graph.  The GstPipeline will manage all the scheduling issues,
+including threading, as well as provide simple interfaces to common
+functions, like 'Play'.
 </para>
 
+<para>FIXME: this is entirely blue-sky</para>
+
 <!-- ##### SECTION See_Also ##### -->
 <para>
 
 </para>
 
-<!-- ##### MACRO GST_PIPELINE ##### -->
+<!-- ##### STRUCT GstPipeline ##### -->
 <para>
 
 </para>
 
-@obj: 
-
 
 <!-- ##### FUNCTION gst_pipeline_new ##### -->
 <para>
index 3872136..f12f6aa 100644 (file)
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -26,8 +26,8 @@ extern gint _gst_trace_on;
  * @argc: pointer to application's argc
  * @argv: pointer to application's argv
  *
- * Initializes the GStreamer system, setting up internal lists and loading
- * standard plugins.
+ * Initializes the GStreamer library, setting up internal path lists,
+ * registering built-in elements, and loading standard plugins.
  */
 void gst_init(int *argc,char **argv[]) {
   GstTrace *gst_trace;
index 941973d..1d8d365 100644 (file)
@@ -110,7 +110,7 @@ static void gst_element_init(GstElement *element) {
 /**
  * gst_element_new:
  *
- * Create a new element.
+ * Create a new element.  Should never be used, as it does no good.
  *
  * Returns: new element
  */
@@ -256,6 +256,14 @@ void gst_element_connect(GstElement *src,gchar *srcpadname,
   }
 }
 
+/**
+ * gst_element_error:
+ * @element: Element with the error
+ * @error: String describing the error
+ *
+ * This function is used internally by elements to signal an error
+ * condition.  It results in the "error" signal.
+ */
 void gst_element_error(GstElement *element,gchar *error) {
   g_error("error in element '%s': %s\n",element->name,error);
 
@@ -484,10 +492,26 @@ xmlNodePtr gst_element_save_thyself(GstElement *element,xmlNodePtr parent) {
   return self;
 }
 
+/**
+ * gst_element_set_manager:
+ * @element: Element to set manager of.
+ * @manager: Element to be the manager.
+ *
+ * Sets the manager of the element.  For internal use only, unless you're
+ * writing a new bin subclass.
+ */
 void gst_element_set_manager(GstElement *element,GstElement *manager) {
   element->manager = manager;
 }
 
+/**
+ * gst_element_get_manager:
+ * @element: Element to get manager of.
+ *
+ * Returns the manager of the element.
+ *
+ * Returns: Element's manager
+ */
 GstElement *gst_element_get_manager(GstElement *element) {
   return element->manager;
 }
@@ -498,6 +522,15 @@ int gst_element_loopfunc_wrapper(int argc,char **argv) {
   element->loopfunc(element);
 }
 
+/**
+ * gst_element_set_loop_function:
+ * @element: Element to set loop function of.
+ * @loop: Pointer to loop function.
+ *
+ * This sets the loop function for the element.  The function pointed to
+ * can deviate from the GstElementLoopFunction definition in type of
+ * pointer only.
+ */
 void gst_element_set_loop_function(GstElement *element,
                                    GstElementLoopFunction loop) {
   element->loopfunc = loop;
index 8490ce1..6c92ebd 100644 (file)
@@ -128,10 +128,10 @@ struct _GstElementDetails {
 };
 
 struct _GstElementFactory {
-  gchar *name;
-  GtkType type;
+  gchar *name;                 /* name of element */
+  GtkType type;                        /* unique GtkType of element */
 
-  GstElementDetails *details;
+  GstElementDetails *details;  /* pointer to details struct */
 };
 
 
index 3028e5a..05c9d8c 100644 (file)
@@ -88,7 +88,7 @@ static void gst_object_init(GstObject *object) {
 /**
  * gst_object_new:
  *
- * Create a new object with
+ * Create a new, empty object.  Not very useful, should never be used.
  *
  * Returns: new object
  */
@@ -150,6 +150,12 @@ void gst_object_unparent(GstObject *object) {
   gst_object_unref(object);
 }
 
+/**
+ * gst_object_ref:
+ * @object: GstObject to reference
+ *
+ * Increments the refence count on the object.
+ */
 #ifndef gst_object_ref
 void gst_object_ref (GstObject *object) {
   g_return_if_fail(object != NULL);
@@ -167,6 +173,13 @@ void gst_object_ref (GstObject *object) {
 }
 #endif /* gst_object_ref */
 
+/**
+ * gst_object_unref:
+ * @object: GstObject to unreference
+ *
+ * Decrements the refence count on the object.  If reference count hits
+ * zero, destroy the object.
+ */
 #ifndef gst_object_unref
 void gst_object_unref (GstObject *object) {
   int reftest;
@@ -209,6 +222,14 @@ void gst_object_unref (GstObject *object) {
 }
 #endif /* gst_object_unref */
 
+/**
+ * gst_object_sink:
+ * @object: GstObject to sink
+ *
+ * Removes floating reference on an object.  Any newly created object has
+ * a refcount of 1 and is FLOATING.  This function should be used when
+ * creating a new object to symbolically 'take ownership of' the object.
+ */
 #ifndef gst_object_sink
 void gst_object_sink(GstObject *object) {
   g_return_if_fail(object != NULL);
index 54d9f6f..e778c21 100644 (file)
@@ -87,6 +87,15 @@ gst_pipeline_class_init(GstPipelineClass *klass) {
 static void gst_pipeline_init(GstPipeline *pipeline) {
 }
 
+
+/**
+ * gst_pipeline_new:
+ * @name: name of new pipeline
+ *
+ * Create a new pipeline with the given name.
+ *
+ * Returns: newly created GstPipeline
+ */
 GstPipeline *gst_pipeline_new(guchar *name) {
   GstPipeline *pipeline;
 
@@ -128,6 +137,12 @@ static gboolean gst_pipeline_change_state(GstElement *element,
 }
 
 
+/**
+ * gst_pipeline_iterate:
+ * @pipeline: GstPipeline to iterate
+ *
+ * Cause the pipeline's contents to be run through one full 'iteration'.
+ */
 void gst_pipeline_iterate(GstPipeline *pipeline) {
   g_return_if_fail(pipeline != NULL);
   g_return_if_fail(GST_IS_PIPELINE(pipeline));