Moved "Filter Writer's Guide" to "Plugin Writer's Guide". Divided existing info from old guide into several files, on...

Original commit message from CVS:
Moved "Filter Writer's Guide" to "Plugin Writer's Guide". Divided existing info
from old guide into several files, one per chapter. The guide still needs much
work ...
diff --git a/docs/pwg/gst-plugin-writers-guide.xml b/docs/pwg/gst-plugin-writers-guide.xml
new file mode 100644
index 0000000..dfee7db
--- /dev/null
+++ b/docs/pwg/gst-plugin-writers-guide.xml
@@ -0,0 +1,156 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+                  "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+<!ENTITY % magic-entities SYSTEM "magic">
+%magic-entities;
+
+<!ENTITY TITLEPAGE            SYSTEM "titlepage.xml">
+
+<!ENTITY INTRO_PREFACE        SYSTEM "intro_preface.xml">
+<!ENTITY INTRO_BASICS         SYSTEM "intro_basics.xml">
+
+<!ENTITY BUILDING_BOILER      SYSTEM "building_boiler.xml">
+<!ENTITY BUILDING_PADS        SYSTEM "building_pads.xml">
+<!ENTITY BUILDING_CHAINFN     SYSTEM "building_chainfn.xml">
+<!ENTITY BUILDING_STATE       SYSTEM "building_state.xml">
+<!ENTITY BUILDING_PROPS       SYSTEM "building_props.xml">
+<!ENTITY BUILDING_SIGNALS     SYSTEM "building_signals.xml">
+<!ENTITY BUILDING_TESTAPP     SYSTEM "building_testapp.xml">
+
+<!ENTITY ADVANCED_SCHEDULING  SYSTEM "advanced_scheduling.xml">
+<!ENTITY ADVANCED_TYPES       SYSTEM "advanced_types.xml">
+<!ENTITY ADVANCED_REQUEST     SYSTEM "advanced_request.xml">
+<!ENTITY ADVANCED_CLOCK       SYSTEM "advanced_clock.xml">
+<!ENTITY ADVANCED_DPARAMS     SYSTEM "advanced_dparams.xml">
+<!ENTITY ADVANCED_MIDI        SYSTEM "advanced_midi.xml">
+
+<!ENTITY OTHER_SOURCE         SYSTEM "other_source.xml">
+<!ENTITY OTHER_SINK           SYSTEM "other_sink.xml">
+<!ENTITY OTHER_AUTOPLUGGER    SYSTEM "other_autoplugger.xml">
+
+<!ENTITY APPENDIX_CHECKLIST   SYSTEM "appendix_checklist.xml">
+<!ENTITY APPENDIX_PYTHON      SYSTEM "appendix_python.xml">
+
+<!ENTITY GStreamer    "<application>GStreamer</application>">
+<!ENTITY GstVersion   "0.4.1">
+<!ENTITY GstAppDevMan "<emphasis>GStreamer Application Development Manual</emphasis>">
+<!ENTITY GstLibRef    "<emphasis>GStreamer Library Reference</emphasis>">
+]>
+
+<book id="book-gst-plugin-writers-guide">
+  &TITLEPAGE;
+
+  <!-- ############# part ############### -->
+
+  <part id="part-introduction" xreflabel="Introduction">
+    <title>Introduction</title>
+    <partintro>
+      <para>
+        &GStreamer; is an exremely powerful and versatile framework for creating
+        streaming media applications. Many of the virtues of the &GStreamer;
+        framework come from its modularity: &GStreamer; can seamlessly
+        incorporate new plugin modules. But because modularity and power often
+        come at a cost of greater complexity (consider, for example, <ulink
+        type="http" url="http://www.omg.org/">CORBA</ulink>), writing new
+        plugins is not always easy.
+      </para>
+      <para>
+        This guide is intended to help you understand the &GStreamer; framework
+        so you can develop new plugins to extend &GStreamer;'s functionality.
+        This guide introduces most of the basic plugin writing issues in version
+        &GstVersion; of &GStreamer;. This guide presents most issues in the
+        context of an example audio filter plugin written in C. However, the
+        guide also addresses some issues involved in writing other types of
+        plugins, and the end of the guide also describes some of the Python
+        bindings for &GStreamer;.
+      </para>
+    </partintro>
+
+    &INTRO_PREFACE;
+    &INTRO_BASICS;
+  </part>
+
+  <!-- ############ part ############# -->
+
+  <part id="part-building" xreflabel="Building a Filter">
+    <title>Building a Filter</title>
+    <partintro>
+      <para>
+        You now have the neccessary concepts to build your first plugin. In this
+        part of the guide, you will learn how to apply these concepts to write a
+        simple audio filter plugin. The previous parts of the guide have
+        contained no explicit example code, perhaps making things a bit abstract
+        and difficult to understand. In contrast, this section will present both
+        applications and code by following the development of an example audio
+        filter plugin called <quote>ExampleFilter</quote>.
+      </para>
+      <para>
+        The example filter will begin with a single input pad and a single
+        output pad. The filter will, at first, simply pass data through without
+        modification. But by the end of this part of the guide, you will learn
+        to add some more interesting functionality, including properties and
+        signal handlers. And after reading the next part of the guide, <xref
+        linkend="part-advanced"/>, you will be able to add even more
+        functionality to your plugins.
+      </para>
+      <para>
+        The example code used in this part of the guide can be found in
+        <filename class="directory">examples/pwg/examplefilter/</filename> in
+        your &GStreamer; directory.
+      </para>
+    </partintro>
+
+    &BUILDING_BOILER;
+    &BUILDING_PADS;
+    &BUILDING_CHAINFN;
+    &BUILDING_STATE;
+    &BUILDING_PROPS;
+    &BUILDING_SIGNALS;
+    &BUILDING_TESTAPP;
+  </part>
+
+  <!-- ############ part ############# -->
+
+  <part id="part-advanced" xreflabel="Advanced Filter Concepts">
+    <title>Advanced Filter Concepts</title>
+    <partintro>
+      <para>
+      </para>
+    </partintro>
+
+    &ADVANCED_SCHEDULING;
+    &ADVANCED_TYPES;
+    &ADVANCED_REQUEST;
+    &ADVANCED_CLOCK;
+    &ADVANCED_DPARAMS;
+    &ADVANCED_MIDI;
+  </part>
+
+  <!-- ############ part ############# -->
+
+  <part id="part-other" xreflabel="Other Element Types">
+    <title>Other Element Types</title>
+    <partintro>
+      <para>
+      </para>
+    </partintro>
+
+    &OTHER_SOURCE;
+    &OTHER_SINK;
+    &OTHER_AUTOPLUGGER;
+  </part>
+
+  <!-- ############ part ############# -->
+
+  <part id="part-appendix" xreflabel="Appendices">
+    <title>Appendices</title>
+    <partintro>
+      <para>
+      </para>
+    </partintro>
+
+      &APPENDIX_CHECKLIST;
+      &APPENDIX_PYTHON;
+  </part>
+
+</book>