</screen>
<para>
After the first command, you will have to press <keycap>ENTER</keycap> to
- log in to the CVS server. (You might have to log in twice.) The second
- command will check out a series of files and directories into <filename
+ log in to the CVS server. The second command will check out a series of
+ files and directories into <filename
class="directory">./gst-template</filename>. The template you will be
using is in <filename
class="directory">./gst-template/gst-plugin/</filename> directory. You
<sect1 id="section-boiler-project-stamp" xreflabel="Using the Project Stamp">
<title>Using the Project Stamp</title>
- <!-- FIXME
- This section needs some fixing from someone that is aware of how this
- works. The only tool that looks like the ones cited there is
- <filename>gst-plugins/tools/filterstamp.sh</filename>
- -->
<para>
The first thing to do when making a new element is to specify some basic
details about it: what its name is, who wrote it, what version number it
easiest way to do this is to copy a template and add functionality
according to your needs. To help you do so, there is a tool in the
<filename class="directory">./gst-plugins/tools/</filename> directory.
- This tool, <filename>make_element</filename>, is a quick command line
- tool.
+ This tool, <filename>make_element</filename>, is a command line utillity
+ that creates the boilerplate code for you.
</para>
<para>
To use <command>make_element</command>, first open up a terminal window.
<listitem>
<para>
the source file that the tool will use. By default,
- gstplugin.{c,h} is used.
+ <filename>gstplugin</filename> is used.
</para>
</listitem>
</orderedlist>
<filename>gstexamplefilter.c</filename> and
<filename>gstexamplefilter.h</filename>.
</para>
+ <note>
+ <para>
+ It is recommened that you reate a copy of the <filename
+ class="directory">gst-plugin</filename>
+ directory before continuing. Do not copy the <filename
+ class="directory">CVS</filename> direcories though.
+ </para>
+ </note>
</sect1>
<!-- ############ sect1 ############# -->
} GstMyFilterClass;
/* Standard macros for defining types for this element. */
-#define GST_TYPE_MY_FILTER \
- (gst_my_filter_get_type())
+#define GST_TYPE_MY_FILTER (gst_my_filter_get_type())
#define GST_MY_FILTER(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MY_FILTER,GstMyFilter))
#define GST_MY_FILTER_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MY_FILTER,GstMyFilterClass))
#define GST_IS_MY_FILTER(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MY_FILTER))
-#define GST_IS_MY_FILTER_CLASS(obj) \
+#define GST_IS_MY_FILTER_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MY_FILTER))
/* Standard function returning type information. */
For example:
</para>
<programlisting><!-- example-begin boilerplate.c b -->
-static GstElementDetails my_filter_details = {
+static const GstElementDetails my_filter_details = {
"An example plugin",
"Example/FirstExample",
"Shows the basic structure of a plugin",
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
<!-- example-end boilerplate.c c -->
- static GstElementDetails my_filter_details = {
+ static const GstElementDetails my_filter_details = {
[..]
};